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:22   worked.

00:01:23   [laughter]

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:57   Yeah.

00:01:58   No one knows what Million Dollar Homepages are, do they, these days?

00:02:01   Of course.

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:05   I hope.

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:36   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:44   Wow.

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:22   Yeah.

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:34   Oh, yeah.

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:03:59   - C-A-L-M.

00:04:00   - They probably spent a million dollars in that domain.

00:04:03   - Probably.

00:04:03   (laughing)

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:27   [laughter]

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:32   So—

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   - Sure.

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:54   Nice.

00:23:55   It'll come to me in a second.

00:23:58   Go on.

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:07   Right?

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:18   calling it?

00:24:19   Auto Android, is that right?

00:24:20   Yeah.

00:24:21   Android Auto, other way.

00:24:22   Okay.

00:24:23   It seemed like, so the first 45 minutes, here's what's new in Android, basically.

00:24:26   Good.

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:02   is fine.

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:25   And--

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:08   So...

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   Oh, good.

00:39:12   Tell us about your second thing.

00:39:14   We're also sponsored-- just kidding.

00:39:16   Too early.

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:57   thing.

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:08   week.

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:26   Logic.

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:52   - Yeah.

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:00   - Yeah.

00:51:01   - Crap.

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:15   You know?

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:13   right.

00:53:14   They rambled, their slides had too much stuff on them, they tried demos that didn't work

00:53:17   well.

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:00   (laughing)

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:41   actually.

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:06   Exactly.

00:58:07   Right.

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:13   - Yes.

01:02:16   - Why?

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:38   door on us.

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:18   Is it?

01:11:19   Yep.

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:34   about us?

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:14   Right.

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:44   Who cares?

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:25   Why not?

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:40   Sorry.

01:24:41   Luigi follow only the Ferrari.

01:24:44   What?

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:48   Oh.

01:24:49   I get it.

01:24:50   Because I've seen that movie a million times.

01:24:51   Yay!

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:48   9

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:58   But anyway.

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:07   Nope.

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:12   Nope.

01:28:13   The alley?

01:28:14   Is there an alley even?

01:28:15   Nope.

01:28:16   You can't like throw something off the fire escape?

01:28:17   No, Marco.

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:24   (laughing)

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   Leave--

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:28   You don't.

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:28   - Exactly.

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:53   - Jeez.

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:22   they did.

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:31   (laughing)

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]