PodSearch

ATP

98: Landmines, Pitfalls, and Bottomless Pits

 

00:00:00 ◼   ► Happy new year and stuff.

00:00:01 ◼   ► And happy birthday, John Syracuse, of 40 years old.

00:00:04 ◼   ► How's it feel to be an old man, John?

00:00:06 ◼   ► It's not my birthday today.

00:00:07 ◼   ► It's the first time I've spoken to you since your birthday.

00:00:10 ◼   ► It's close enough.

00:00:10 ◼   ► Beginning of the year with a technicality.

00:00:12 ◼   ► [LAUGHTER]

00:00:15 ◼   ► So we have some follow up.

00:00:16 ◼   ► Let's talk about John's OS X app window layering policy.

00:00:20 ◼   ► Yeah, I should have done a little bit of research

00:00:22 ◼   ► of this, but I'll have you do the real time research for me.

00:00:25 ◼   ► So in our discussion in like episode a couple episodes ago about windows and window

00:00:32 ◼   ► management stuff like that one of the things that didn't come up that probably should have

00:00:36 ◼   ► Was the OS 10 window layering policy now when you get OS 10 if you've only ever used OS 10

00:00:43 ◼   ► You probably just accept this as the way things work because it's sort of like how Windows works as in capital W Microsoft Windows

00:00:50 ◼   ► You got a bunch of windows on the screen

00:00:52 ◼   ► I mean, if you click on a window,

00:00:53 ◼   ► that window comes to the front

00:00:55 ◼   ► and it comes to the, and then you click another window

00:00:57 ◼   ► and that window comes to the front of the other ones.

00:00:58 ◼   ► And you know, it changes,

00:01:00 ◼   ► the window layering changes in that way.

00:01:02 ◼   ► On OS X, if you click on the dock icon,

00:01:04 ◼   ► all windows from that application come to the front.

00:01:07 ◼   ► All right, and this is,

00:01:08 ◼   ► again, if you've only ever used OS X,

00:01:10 ◼   ► you're like, yeah, so what?

00:01:11 ◼   ► That's just how everything works.

00:01:12 ◼   ► And there are menu commands for hide others.

00:01:14 ◼   ► And you can option click on something

00:01:17 ◼   ► to hide the previous thing to show the new thing.

00:01:19 ◼   ► And there's all sorts of shortcuts like that

00:01:21 ◼   ► that people know.

00:01:22 ◼   ► Basically plain old unadorned click just brings the window to the front and the the doc click brings all the windows the app to

00:01:28 ◼   ► Fund now back in the olden days if my memory serves correctly

00:01:32 ◼   ► When you clicked on the window all the windows belonging to that application came to the front

00:01:37 ◼   ► so it was sort of the opposite of the behavior in OS 10 where a

00:01:42 ◼   ► special click in this case a click on a doc icon brings them all to the front but a plain old regular click just brings the

00:01:47 ◼   ► particular window

00:01:49 ◼   ► Now since I am an old person as we've already established

00:01:52 ◼   ► And I come from the old school Mac world when OS X came out

00:01:57 ◼   ► I didn't like the fact that when I clicked a single window only that window came to the front and because my

00:02:02 ◼   ► Window arranging habits wouldn't have been built up over years and years of using a regular Mac and classic Mac OS

00:02:08 ◼   ► I was used to the idea of being able to pull all the windows of an application forward by

00:02:14 ◼   ► snagging a corner of one of the windows and then they would all come to the front and sort of be like a two-layer policy

00:02:18 ◼   ► where I'd snag a corner of visible window and then within all the windows of that application which are now visible pick one that I

00:02:23 ◼   ► Wanted because they'd be tiled according to you know, whatever

00:02:25 ◼   ► And so there's a whole bunch of utilities that came out for OS X

00:02:29 ◼   ► in the early days of OS X that lets you

00:02:32 ◼   ► switch this policy to make it so regular click brings all the windows to the front and a modifier click does the other behavior and

00:02:39 ◼   ► I've used lots of those utilities over the years. I think the one I'm using now is

00:02:43 ◼   ► is, I'm still using ASM, which was supposed to give you an application switcher menu,

00:02:48 ◼   ► which is like a classic Mac OS thing in the upper right corner of the screen.

00:02:51 ◼   ► I think that part doesn't work anymore, or even if it does, I have it disabled.

00:02:54 ◼   ► I just have the, you know, they call it classic window setting set to on.

00:03:00 ◼   ► And shift key is the suppression key.

00:03:02 ◼   ► So if I click any Safari window, all the Safari windows come to the front.

00:03:06 ◼   ► And if I click any terminal window, all the terminal windows come to the front.

00:03:10 ◼   ► But if I shift click a window, only that window comes to the front.

00:03:15 ◼   ► And I'm not saying one of these policies is the right one or the wrong one, because I

00:03:19 ◼   ► think both behaviors are useful.

00:03:20 ◼   ► It's just a question of which one do you think should be the default.

00:03:24 ◼   ► And the defaults don't really matter that much either.

00:03:26 ◼   ► I suppose I could have got used to just going down to the dock icon and clicking, but I

00:03:29 ◼   ► was just so used to arranging my windows and using them as these big click areas to do

00:03:34 ◼   ► stuff, that this is one of the few sort of classic Mac OS policies that I still haven't

00:03:39 ◼   ► given up. I guess it's probably like a little bit of a system hack to do this

00:03:44 ◼   ► window layering. It's not a really big system hack. I think drag_thing also

00:03:47 ◼   ► either had or still has this feature and there may be other utilities that do it

00:03:51 ◼   ► and it may be like a global plist thing. I don't even know what this thing is

00:03:54 ◼   ► doing whether it's a system hack or not. But anyway, if my window management

00:03:59 ◼   ► sounded strange to you and you've only ever used OS X, that may be a piece of

00:04:02 ◼   ► information you're missing. And I would imagine that both of you have never done

00:04:07 ◼   ► this or use any utilities like this and would probably drive you crazy if you clicked on

00:04:10 ◼   ► a single window and they all came to the front from that app.

00:04:13 ◼   ► Yep.

00:04:14 ◼   ► Yeah, you should try it.

00:04:15 ◼   ► It's actually kind of neat.

00:04:16 ◼   ► I mean, you obviously have to adjust your habits because you're not losing the ability

00:04:20 ◼   ► to do the other thing.

00:04:21 ◼   ► You just have to, you know, shift click or option click or whatever modifier click you

00:04:24 ◼   ► decide to make it.

00:04:25 ◼   ► But it does change the way things work and it makes, I think it makes the way I manage

00:04:30 ◼   ► windows a little bit more viable.

00:04:32 ◼   ► Like I think it's the correct default for the way I manage windows.

00:04:37 ◼   ► not the correct default for yours, but a lot of people have emailed and tweeted at me since

00:04:41 ◼   ► that show to say they were intrigued by my theories and would like to subscribe to my

00:04:47 ◼   ► newsletter and so are trying out different window maps.

00:04:52 ◼   ► And I didn't have a chance to respond to most of the people who sent in emails and tweets

00:04:56 ◼   ► saying they wanted to try it, but what I felt like telling them is if you're going to try

00:05:00 ◼   ► it you may not know this, but here's the setting that I have had on my Mac since the dawn of

00:05:04 ◼   ► OS X that you probably don't have, and I think it's probably essential to the way I work.

00:05:09 ◼   ► The other thing I saw a lot of requests for was a screenshot of your Mac.

00:05:15 ◼   ► And I'm assuming people wanted perhaps like an expose screenshot so they could see the

00:05:20 ◼   ► 11 gazillion windows that you have open.

00:05:23 ◼   ► And I don't want to necessarily formally request that because you would probably have to obscure

00:05:29 ◼   ► a bunch of things.

00:05:31 ◼   ► But should you decide that you would like to share that?

00:05:33 ◼   ► I'm sure the world at large would love to see it.

00:05:36 ◼   ► - Yeah, there were requests, but I can't,

00:05:37 ◼   ► I mean, I can't take screenshots of my screen

00:05:39 ◼   ► because all my stuff is on my screen

00:05:40 ◼   ► and I don't wanna go through blanking out the windows.

00:05:42 ◼   ► And in the end, it just looks like a bunch of windows.

00:05:44 ◼   ► Like there's nothing to see.

00:05:46 ◼   ► - To you, maybe.

00:05:47 ◼   ► - Right, to you, that's all it looks like.

00:05:49 ◼   ► - Then it's like, why don't you set a video, make a video?

00:05:51 ◼   ► It's like, well then again, in a video,

00:05:53 ◼   ► you'd be seeing all my stuff.

00:05:54 ◼   ► I don't show you all my stuff, all my email,

00:05:56 ◼   ► all my tabs that I have open and stuff like that.

00:05:59 ◼   ► But on the feedback,

00:06:00 ◼   ► I don't know how much you've been following the feedback,

00:06:02 ◼   ► but I tried to be vaguely scientific

00:06:04 ◼   ► with following the feedback.

00:06:06 ◼   ► And I have to say, of the feedback

00:06:07 ◼   ► that has come directly to me, mostly through tweets,

00:06:09 ◼   ► but also through email that's not to the list thing,

00:06:12 ◼   ► it has been overwhelmingly positive

00:06:15 ◼   ► in terms of people saying,

00:06:16 ◼   ► "Yes, that's exactly how I work."

00:06:17 ◼   ► All the old Mac users sent in those emails.

00:06:19 ◼   ► They said, "Yes, you're right, that's how I work too."

00:06:21 ◼   ► And then the curious people who are like,

00:06:23 ◼   ► "I'd never thought of working that way,

00:06:24 ◼   ► but it sounds interesting to me."

00:06:26 ◼   ► Very little negativity about it,

00:06:30 ◼   ► which is surprising considering how negative you two were.

00:06:32 ◼   ► And I keep coming back to the idea that,

00:06:34 ◼   ► how many windows was it in Safari?

00:06:37 ◼   ► 19 or something?

00:06:38 ◼   ► Like that was astronomical.

00:06:40 ◼   ► Like that I might as well have said 10,000.

00:06:43 ◼   ► But the reaction you guys had to,

00:06:45 ◼   ► 'cause 19 windows is just not that much.

00:06:47 ◼   ► And I thought, maybe I'm crazy, maybe 19 windows is a lot.

00:06:50 ◼   ► But then everyone's like, are you kidding me?

00:06:51 ◼   ► I have, always have tons of windows open.

00:06:54 ◼   ► It's like having a computer with like 32 gigs of RAM,

00:06:56 ◼   ► but you keep four windows open per app.

00:06:58 ◼   ► It's like, what?

00:06:59 ◼   ► Anyway, I don't wanna rehash the entire thing,

00:07:01 ◼   ► but it's probably better than whatever we have planned today.

00:07:04 ◼   ► - It's probably true.

00:07:05 ◼   ► - Maybe you've gotten different feedback than I have,

00:07:07 ◼   ► but I have been very surprised

00:07:09 ◼   ► that it has been overwhelmingly essentially on my side,

00:07:12 ◼   ► whether decisively on my side,

00:07:15 ◼   ► like, yes, that's exactly how I do things

00:07:16 ◼   ► and it's the one way you should do things,

00:07:17 ◼   ► or people saying, "That sounds interesting.

00:07:19 ◼   ► I'd like to try it."

00:07:20 ◼   ► - Okay, so the feedback I have seen,

00:07:22 ◼   ► the feedback I have seen, there has certainly been some,

00:07:25 ◼   ► and I shouldn't even say some,

00:07:26 ◼   ► a pretty decent amount of people saying,

00:07:29 ◼   ► yes, that's exactly what I do.

00:07:32 ◼   ► The John approach is exactly what I do.

00:07:36 ◼   ► But the overwhelming majority of feedback that I saw

00:07:40 ◼   ► was my goodness, that was hysterical.

00:07:43 ◼   ► That was my favorite episode of ATP so far.

00:07:45 ◼   ► So for all of you who said that, thank you.

00:07:47 ◼   ► That's very nice of you.

00:07:47 ◼   ► - Yeah, but you can't categorize that

00:07:49 ◼   ► because most of that was just like,

00:07:50 ◼   ► hey, I enjoy listening to the podcast,

00:07:51 ◼   ► which is like, great, thumbs up.

00:07:52 ◼   ► But it's not like they're not taking a side

00:07:55 ◼   ► position commenting on the substance of it. And yes, I did see a lot of it, but I didn't

00:07:58 ◼   ► categorize that. What I did was I favorited as a form of tracking. So all the ones that

00:08:03 ◼   ► were all the tweets that were sent to me about it. So if you go back through my favorites

00:08:05 ◼   ► and skip over the other stuff, it looks like it's not related. Like, I don't even know

00:08:08 ◼   ► if you can do this on stupid Twitter, but scroll back to like the week following the

00:08:12 ◼   ► show and just look at the huge amount of favorites that are in there that, and I favorited the

00:08:16 ◼   ► ones that were against as well. And you'll have a hard time finding a tweet anyway that

00:08:20 ◼   ► was against. And the email to the feedback forums we all saw on the email directly to

00:08:24 ◼   ► to me was basically 100% that people thought it was not crazy to have 19 windows open.

00:08:30 ◼   ► And by the way, I will add, and this is another thing that people seem to forget, like the

00:08:34 ◼   ► idea that I'm not closing windows, as I think I said on the show, as I think I actually

00:08:38 ◼   ► did in real time on the show when we were going through like, "Oh, I can close this

00:08:42 ◼   ► window now because I'm done researching like the date that these things are released or

00:08:45 ◼   ► whatever."

00:08:46 ◼   ► The windows close when I'm done with them.

00:08:47 ◼   ► It's not like I'm keeping them around like for the hell of it, right?

00:08:50 ◼   ► And so for example, I have two Safari windows open now.

00:08:53 ◼   ► Why do I have two Safari windows open?

00:08:54 ◼   ► Because I've been off work for like a week and I've been at home and everything is cleared

00:08:58 ◼   ► out.

00:08:59 ◼   ► And the only Safari windows open I have right now are stats windows that are sort of things

00:09:02 ◼   ► that I'm currently monitoring.

00:09:04 ◼   ► And even those will close when I'm not currently monitoring them anymore.

00:09:07 ◼   ► Like I'm still looking at the stats of my OS X review just to see as it slowly tails

00:09:11 ◼   ► off in the long tail how it's doing.

00:09:14 ◼   ► Anyway, and Chrome windows.

00:09:18 ◼   ► Two minimize, three non-minimize.

00:09:20 ◼   ► Minimize ones are, yeah.

00:09:22 ◼   ► Using, this is sort of like the Merlin man

00:09:25 ◼   ► using your inbox as a to-do list, which is a bad idea.

00:09:27 ◼   ► Using Safari Windows as a to-do list,

00:09:30 ◼   ► probably also a bad idea, but I think it works pretty well.

00:09:34 ◼   ► And the difference between your email inbox and Safari

00:09:37 ◼   ► is your email inbox is subject to anything

00:09:40 ◼   ► that anyone wants to send to you,

00:09:41 ◼   ► whereas your Safari Windows, you have to open yourself.

00:09:45 ◼   ► Oh, that was the other, before we get off this topic,

00:09:47 ◼   ► the other interesting thing,

00:09:48 ◼   ► Rupert did a post some time the week after saying

00:09:51 ◼   ► he'd had this tab open since October to remind him

00:09:53 ◼   ► to read his article and he finally got around to it

00:09:55 ◼   ► and then he posted a little link list thing

00:09:57 ◼   ► on Daring Fireball.

00:09:58 ◼   ► And then everyone jumped on him and said,

00:10:00 ◼   ► you're using the Syracuse window technique too.

00:10:02 ◼   ► 'Cause he essentially had this window thing open in a tab,

00:10:06 ◼   ► like I'll get around to it someday and he did.

00:10:08 ◼   ► And I bet he read it and he posted it

00:10:09 ◼   ► and I bet he closed that window.

00:10:11 ◼   ► - I can't do it.

00:10:15 ◼   ► I'm not gonna let myself get roped into this again.

00:10:18 ◼   ► So instead, I'm gonna move on to another piece of follow up unless Marco, you have something

00:10:21 ◼   ► to add.

00:10:22 ◼   ► Nope.

00:10:23 ◼   ► All right.

00:10:24 ◼   ► How do you add to that?

00:10:25 ◼   ► Yeah, exactly.

00:10:26 ◼   ► So the next week's follow up we have, I brought up the question, I believe it was last episode.

00:10:31 ◼   ► Why would you run SSL on a site like caseylist.com that all it does is display content?

00:10:38 ◼   ► And many people wrote in with what in retrospect was a reasonably obvious answer that I certainly

00:10:44 ◼   ► didn't think of, which is you're, you could use SSL to prevent injection.

00:10:51 ◼   ► So say you're on an airplane and you're using one of the airplane wifi setups, they could

00:10:57 ◼   ► choose to inject ads into my website because they can't, there's no reason they couldn't.

00:11:04 ◼   ► Whereas if I was running SSL, there's nothing they could do to intercept that.

00:11:08 ◼   ► And there's also a bunch of like tinfoil hat conspiracy theories that go along with that.

00:11:12 ◼   ► But the most obvious one that I saw,

00:11:15 ◼   ► or the most reasonable one I saw,

00:11:16 ◼   ► was preventing like ad injection

00:11:19 ◼   ► or any other sort of man in the middle sort of scenario

00:11:22 ◼   ► with even something that's brochureware,

00:11:25 ◼   ► so to speak, like my site is.

00:11:26 ◼   ► - Yeah, what's even worse is some wireless carriers

00:11:30 ◼   ► are starting to inject ad tracking codes

00:11:32 ◼   ► or like actual ads into the pages themselves.

00:11:36 ◼   ► So it isn't just if you're on a plane occasionally,

00:11:38 ◼   ► it might just be like if you're an AT&T or Verizon customer.

00:11:41 ◼   ► Like we've seen certain things,

00:11:43 ◼   ► I don't know if they're widely deployed yet,

00:11:45 ◼   ► but we've seen reports of like them rolling out or testing

00:11:49 ◼   ► or like trying certain things with certain wireless carriers

00:11:51 ◼   ► like injecting ad tracking code into every HTML page

00:11:55 ◼   ► that's viewed over their data networks.

00:11:56 ◼   ► And that's really, really horrible on so many levels.

00:11:59 ◼   ► And so this could also help defend against that.

00:12:03 ◼   ► - Yeah, it's not tinfoil hat.

00:12:04 ◼   ► Like people send us screenshots that I didn't know

00:12:06 ◼   ► 'cause I don't travel a lot,

00:12:07 ◼   ► but like that airline wifi,

00:12:09 ◼   ► like when you're on the plane, puts a, you know,

00:12:11 ◼   ► Southwest banner over every single page that you're on.

00:12:14 ◼   ► Like this is not speculative.

00:12:16 ◼   ► This is apparently a thing that happens

00:12:18 ◼   ► and not in like a secret kind of like Verizon secretly

00:12:20 ◼   ► putting in an HTTP header or a cookie or something

00:12:22 ◼   ► as in a giant banner for like, in case you didn't realize

00:12:25 ◼   ► that you're on a Southwest flight right now.

00:12:27 ◼   ► Terrible, super terrible.

00:12:29 ◼   ► The idea that if you use SSL, that no one can,

00:12:32 ◼   ► you know, one can see the traffic or man in the middle

00:12:35 ◼   ► you again with lots of unpatched, perhaps unknown vulnerabilities out there, I'm not

00:12:40 ◼   ► sure how secure that is, but I can tell you that in the corporate world it is not uncommon

00:12:47 ◼   ► for corporations to either do this and not tell anybody or do it and tell everybody or

00:12:53 ◼   ► try to do it until the employees revolt depending on what kind of company you're in, to basically

00:12:57 ◼   ► man in the middle every single employee of the company by putting in an SSL proxy, making

00:13:03 ◼   ► every computer in the company trusts the certificate and they're basically man in the middle

00:13:07 ◼   ► in all your SSL traffic.

00:13:09 ◼   ► So you can't do online banking from home unless you're okay with the IT department

00:13:15 ◼   ► at your work knowing all of your passwords and everything.

00:13:17 ◼   ► So SSL is not a panacea.

00:13:21 ◼   ► Excellent.

00:13:22 ◼   ► And then a final note which may bleed from follow up into an actual topic.

00:13:28 ◼   ► Marco, you have reverted to your normal comfortable ways and you hate new things again.

00:13:33 ◼   ► Can you tell us about that?

00:13:34 ◼   ► We are sponsored this week by Harry's.

00:13:36 ◼   ► Go to harrys.com and use promo code ATP to save $5 off your first purchase.

00:13:42 ◼   ► The holidays are over and here's the chance to start fresh and start making smarter decisions.

00:13:47 ◼   ► Overpaying for drugstore razor blades is a bad habit that you should definitely leave

00:13:50 ◼   ► behind this year.

00:13:51 ◼   ► Harry's offers high quality razors and blades for a fraction of the price of the big razor

00:13:56 ◼   ► brands.

00:13:57 ◼   ► Harry's was started by two guys who wanted a better product without paying an arm and

00:14:00 ◼   ► a leg.

00:14:01 ◼   ► no pun intended for those of you who shave your arms and legs.

00:14:04 ◼   ► They make their own blades from their own factory, an old blade factory in Germany that

00:14:07 ◼   ► they liked so much that they bought it.

00:14:09 ◼   ► These are high quality, high performing German blades crafted by shaving experts, giving

00:14:13 ◼   ► you a better shave that respects your face and your wallet.

00:14:17 ◼   ► Harry's offers factory direct pricing at a fraction of the big brands prices.

00:14:21 ◼   ► Harry's blades are about half the price of things like Gillette Fusion and stuff like

00:14:26 ◼   ► that.

00:14:27 ◼   ► Plus you don't have to wait around for the guy to come to unlock the anti-shoplifting

00:14:29 ◼   ► case at the drug store to buy them, that's a terrible experience.

00:14:32 ◼   ► They ship them directly to your door and shipping is free for any order above $10.

00:14:37 ◼   ► So the starter set is an amazing deal.

00:14:40 ◼   ► For $15 you get a razor, moisturizing shave cream or gel, your choice, and three razor

00:14:46 ◼   ► blades.

00:14:47 ◼   ► When you need more blades they're just $2 or less each.

00:14:50 ◼   ► And for example, an 8 pack is $15, a 16 pack is just $25.

00:14:55 ◼   ► So it's like, what is that like $1.50 each?

00:14:58 ◼   ► So I would say, so I've tried these before, I like them a lot, I would say they are comparable

00:15:02 ◼   ► to the Gillette Fusion non-proglide blades.

00:15:05 ◼   ► The best price I see today on Amazon for those Fusions is a 12 pack for about 40 bucks.

00:15:11 ◼   ► 12 Harry's blades are 20 bucks.

00:15:13 ◼   ► So it's really half the price of Fusions.

00:15:16 ◼   ► I'm very impressed by the quality they achieve here and the economy just can't be beat.

00:15:21 ◼   ► They have great packaging, they have nice heavy handles, like the handles are all like

00:15:24 ◼   ► fancy nice metal stuff really classy designs like that you know like the stuff

00:15:28 ◼   ► the the like the the Gillette handles look like they're from those droid

00:15:33 ◼   ► commercials remember those I think I already made this joke but they they you

00:15:36 ◼   ► know they're like all like covered in like blue accents and like rubber and

00:15:40 ◼   ► plastic and it's all really weird Harry's razors and Harry's blades are

00:15:44 ◼   ► just classy they're these nice classy handles nice you know weighty metal stuff

00:15:48 ◼   ► it's just so much so much nicer with Harry's you get the convenience and ease

00:15:52 ◼   ► of ordering online, you get these high quality blades, a great handle and shaving cream,

00:15:56 ◼   ► and excellent customer service at half the price of the big brands.

00:16:00 ◼   ► Get started today with a set that includes a handle, three blades, and shaving cream

00:16:03 ◼   ► for just $15 shipped to your door.

00:16:07 ◼   ► Go to harrys.com and then you can also use promo code ATP to save $5 off your first purchase.

00:16:14 ◼   ► Really this is a fantastic deal.

00:16:15 ◼   ► Go to harrys.com, H-A-R-R-Y-S.com.

00:16:18 ◼   ► Use promo code ATP for $5 off your first purchase.

00:16:21 ◼   ► Thanks a lot to Harry's.

00:16:22 ◼   ► So Marco, tell us about why you hate new things again,

00:16:25 ◼   ► other than that being your natural state.

00:16:28 ◼   ► - So last week, I discussed that I had tried

00:16:32 ◼   ► a new programming language, sort of.

00:16:34 ◼   ► I had written the beginnings of a feed crawler

00:16:38 ◼   ► to replace overcast PHP feed crawler or to augment it.

00:16:42 ◼   ► I had written the beginnings of that in Node.

00:16:45 ◼   ► And I already knew enough JavaScript to get by,

00:16:48 ◼   ► so it wasn't entirely learning a new language,

00:16:50 ◼   ► but it was at least in a new context

00:16:51 ◼   ► using a new platform and stuff like that.

00:16:55 ◼   ► And first I'm certainly using JavaScript

00:16:57 ◼   ► outside of the browser.

00:16:58 ◼   ► I've been trying to make it work, really until today.

00:17:02 ◼   ► And this afternoon, I think I finally am giving up now.

00:17:05 ◼   ► The problem I was trying to solve, as I mentioned last week,

00:17:07 ◼   ► so I won't go too far into it,

00:17:09 ◼   ► is that Overcast's feed crawlers basically have to pull

00:17:14 ◼   ► about 250,000 feeds now.

00:17:16 ◼   ► And I like to pull them no less than once an hour each.

00:17:21 ◼   ► and the ones that are popular,

00:17:22 ◼   ► I like to pull every few minutes.

00:17:24 ◼   ► So we're talking about probably, I don't know,

00:17:26 ◼   ► a million feeds an hour, something like that,

00:17:28 ◼   ► or more than that maybe.

00:17:30 ◼   ► So it's a good number of feed fetches per hour.

00:17:34 ◼   ► And right now, I use 240 PHP processes

00:17:39 ◼   ► that are pulling things off of the Beanstalk queue.

00:17:41 ◼   ► It takes tons of CPU power, it takes tons of RAM.

00:17:45 ◼   ► And this is obviously not made for this,

00:17:47 ◼   ► whereas the node event loop kind of model

00:17:50 ◼   ► is way better suited for this kind of like

00:17:53 ◼   ► large parallel crawling of network things

00:17:56 ◼   ► and then occasionally doing some work on them.

00:17:57 ◼   ► Like it's way better for that.

00:17:59 ◼   ► It's so much better suited for that.

00:18:01 ◼   ► Anyway, so I tried Node and I've been playing with it

00:18:04 ◼   ► for the last week or so and I just can't get it

00:18:08 ◼   ► to work properly.

00:18:09 ◼   ► I have the crawler functioning perfectly fine

00:18:13 ◼   ► but I keep hitting either weird limits

00:18:15 ◼   ► that cause weird performance issues

00:18:17 ◼   ► or the more common problem is memory leaks

00:18:19 ◼   ► and that's the one that I've been able to solve

00:18:22 ◼   ► all the performance problems, all the weird little edge cases

00:18:24 ◼   ► all the weird exceptions thrown from odd places

00:18:27 ◼   ► that I can't quite figure out where they're coming from,

00:18:30 ◼   ► fixed all that, I still can't fix the memory leaks.

00:18:33 ◼   ► And so I could just post the script online

00:18:36 ◼   ► and ask people, "Hey, fix the memory leak for me."

00:18:39 ◼   ► But ultimately I don't want to depend on a platform

00:18:43 ◼   ► that seems so weird and hacky.

00:18:46 ◼   ► And what I found, last week I mentioned how

00:18:49 ◼   ► I didn't foresee myself rewriting the whole backend

00:18:52 ◼   ► or wanting to make a whole web app in Node

00:18:54 ◼   ► just because of the nature of web apps.

00:18:56 ◼   ► You make a database request and then you make a couple more

00:18:59 ◼   ► and then you put things together.

00:19:01 ◼   ► Doing all that in a pure asynchronous framework

00:19:05 ◼   ► is really clumsy and it leads to all sorts of spaghetti code

00:19:08 ◼   ► and callback hell and everything like that.

00:19:10 ◼   ► And so I, and not only that,

00:19:12 ◼   ► but I just don't like JavaScript.

00:19:13 ◼   ► I really don't respect it as a language.

00:19:15 ◼   ► I really don't like its crazy object system.

00:19:18 ◼   ► there's a whole lot about JavaScript

00:19:19 ◼   ► that I really don't like.

00:19:20 ◼   ► Granted, this is a little early for me

00:19:22 ◼   ► to judge a whole language like this,

00:19:24 ◼   ► but it certainly seems like Node and JavaScript,

00:19:28 ◼   ► that combo is really just as hacky as PHP in many ways.

00:19:33 ◼   ► And it seems like I'm taking a step sideways

00:19:36 ◼   ► rather than a step forward.

00:19:38 ◼   ► And I don't have a lot of faith in this combo

00:19:41 ◼   ► for the future of my programming needs and career.

00:19:46 ◼   ► So instead, tonight I started trying Go,

00:19:51 ◼   ► and I'm gonna see how that goes.

00:19:52 ◼   ► I literally have, I've written like 10 lines of code

00:19:54 ◼   ► in it so far, I haven't had a chance to do any more.

00:19:56 ◼   ► So maybe ask me next week how that's going, but,

00:19:59 ◼   ► and the reason I'm picking Go right now to try next,

00:20:03 ◼   ► it seems like the kind of thing that I would enjoy

00:20:07 ◼   ► based on their philosophies,

00:20:08 ◼   ► some of the decisions they've made.

00:20:10 ◼   ► I mean, obviously the language looks really weird to me

00:20:11 ◼   ► 'cause it doesn't use C-style syntax for everything,

00:20:13 ◼   ► and you know, this is the first non-C syntax language

00:20:16 ◼   ► that I'm learning in a very, very long time.

00:20:18 ◼   ► I used to say that if I had to pick a new language today,

00:20:21 ◼   ► it would be Python.

00:20:23 ◼   ► And looking around the landscape today,

00:20:25 ◼   ► I think that would still be a reasonable choice,

00:20:28 ◼   ► but there's no question that Python is aging.

00:20:31 ◼   ► And there's all these new languages that are coming out

00:20:34 ◼   ► that do things differently,

00:20:35 ◼   ► that are more advanced in certain ways.

00:20:38 ◼   ► And I feel like I learn new languages so infrequently,

00:20:42 ◼   ► and the way I do it is I prefer to like really deeply master

00:20:46 ◼   ► a very small number of them,

00:20:47 ◼   ► rather than try a whole bunch of them

00:20:49 ◼   ► and have some familiarity with all of them.

00:20:51 ◼   ► Because of that, I'm afraid that Python

00:20:53 ◼   ► will fall out of favor sooner by possibly

00:20:57 ◼   ► as much as a decade than compared to something like Go,

00:21:01 ◼   ► or Node, or Rust, or any of these newer languages.

00:21:04 ◼   ► I could go that route, and I might still go that route,

00:21:07 ◼   ► I don't know, we'll see where this experiment ends.

00:21:09 ◼   ► But I think what I'm doing right now,

00:21:11 ◼   ► making this thing that has to crawl

00:21:12 ◼   ► a whole bunch of feeds in parallel,

00:21:13 ◼   ► and then read stuff out of the database

00:21:15 ◼   ► to know what to crawl and then write stuff

00:21:17 ◼   ► into some kind of queue to hand it off

00:21:19 ◼   ► to the rest of the app to do the rest of the processing,

00:21:21 ◼   ► I'm getting a pretty good feel.

00:21:24 ◼   ► I think this might be a good task to try

00:21:26 ◼   ► in three or four different languages

00:21:28 ◼   ► and just get some idea of what the language is like to use

00:21:33 ◼   ► on this kind of scale and how appropriate is it

00:21:35 ◼   ► for this kind of task.

00:21:36 ◼   ► Right now I'm gonna try this in Go.

00:21:38 ◼   ► I don't know if this is gonna be the last language

00:21:39 ◼   ► I use for this task.

00:21:40 ◼   ► I hope it is.

00:21:41 ◼   ► I like the way Go keeps the language itself

00:21:45 ◼   ► seemingly fairly simple.

00:21:47 ◼   ► It doesn't have things like generics

00:21:49 ◼   ► and a whole bunch of new things like that,

00:21:52 ◼   ► all these meta-programming type features.

00:21:54 ◼   ► It doesn't seem to have all those things.

00:21:56 ◼   ► I like that a lot.

00:21:57 ◼   ► I really prefer a language that can fit in my head

00:22:00 ◼   ► and a language that is as easy to read as it is to write.

00:22:05 ◼   ► And it seems like a lot of the new languages these days

00:22:08 ◼   ► are throwing that balance a little more

00:22:10 ◼   ► towards the other directions.

00:22:10 ◼   ► They're making all these really, really crazy

00:22:14 ◼   ► little features, little exceptions, little conveniences

00:22:16 ◼   ► to make the code look really cool when you're writing it

00:22:19 ◼   ► or to make it make for good conference slides

00:22:22 ◼   ► or a good Hello World example where like,

00:22:24 ◼   ► look at what you can do in these two lines of code

00:22:28 ◼   ► and it's all really dense and concise

00:22:29 ◼   ► and does cool things and abstract away

00:22:31 ◼   ► what's actually happening below the scenes.

00:22:34 ◼   ► And I don't like that style because it makes it very hard

00:22:36 ◼   ► to both learn and maintain that code.

00:22:40 ◼   ► That's not a style.

00:22:42 ◼   ► That's abstraction, that's programming.

00:22:44 ◼   ► I mean, why not just use toggle switches

00:22:46 ◼   ► then you'll know what's going on.

00:22:46 ◼   ► Why not push the electrons from the source

00:22:50 ◼   ► to the drain and the transistors?

00:22:51 ◼   ► I mean, like I kind of understand what you're getting at

00:22:54 ◼   ► in terms of constructs that may look unfamiliar,

00:22:57 ◼   ► but it's not like, it's not a choice of styles

00:22:59 ◼   ► of like crane technique and drunken monkey technique.

00:23:01 ◼   ► It's like, these are the languages that are trying to have,

00:23:06 ◼   ► You know, ways to express more with less typing.

00:23:11 ◼   ► And the general argument in favor of that is history has more or less shown that the

00:23:17 ◼   ► number of bugs per line of code written doesn't change too much.

00:23:21 ◼   ► So the only way to get fewer bugs is to reduce the number of lines of code you need to write

00:23:26 ◼   ► to solve a hidden problem.

00:23:27 ◼   ► Obviously you can go to extremes there where you're compressing things down to the point

00:23:32 ◼   ► where it's not understandable.

00:23:33 ◼   ► But I don't think Swift like Swift is not a good example of that

00:23:37 ◼   ► I don't think anything in the language makes it like this one line is incomprehensible

00:23:41 ◼   ► I think the the problem areas of Swift are more like the problem areas of C++ with like templates generics and

00:23:47 ◼   ► operator overloading

00:23:49 ◼   ► Giving you the ability to make incomprehensible

00:23:51 ◼   ► Mumbo jumbo, but that's the opposite

00:23:54 ◼   ► That's where there's more typing not less like when you when you see some giant declaration with a million generic types

00:24:00 ◼   ► And then you can't make heads or tails of it that is not concise that is verbose

00:24:04 ◼   ► And that's why you have problems figuring out what the hell's going on because you got to parse eight million tokens to figure it out

00:24:09 ◼   ► Whereas go not letting you do that type of thing you're never gonna see a crazy prototype like that. You know or even like

00:24:15 ◼   ► block syntax or

00:24:17 ◼   ► Pointers to functions and syntax and see where you have to like sort of be the compiler in your head and parse stuff out

00:24:22 ◼   ► Make the language simpler you won't see that and that that's something that you know for example JavaScript has that going for it

00:24:27 ◼   ► There's not much you can type in JavaScript

00:24:30 ◼   ► that is too complicated to look at

00:24:32 ◼   ► where you won't even understand programmer intent.

00:24:34 ◼   ► You may be surprised by what it actually does

00:24:36 ◼   ► because of weirdness, but you will get the intent

00:24:38 ◼   ► of the line of code, whereas in C++ and Swift

00:24:42 ◼   ► and a lot of other languages,

00:24:43 ◼   ► sometimes you can't even figure out what the intent is

00:24:45 ◼   ► without sort of parsing and lexing it yourself

00:24:48 ◼   ► in your head to figure out what it does.

00:24:50 ◼   ► - Right, exactly.

00:24:51 ◼   ► Well, and also, I like to be able to look at some code

00:24:54 ◼   ► that I'm reading and be able to roughly tell what it does

00:24:58 ◼   ► without having to jump around to too much other code.

00:25:00 ◼   ► And so if you have some crazy library

00:25:03 ◼   ► or some crazy standard,

00:25:04 ◼   ► you know like a lot of these new language features

00:25:06 ◼   ► that a lot of the more crazy dynamic-ish languages offer,

00:25:11 ◼   ► they're a lot like C macros,

00:25:12 ◼   ► where it's like you could define your own,

00:25:15 ◼   ► and you know same thing with operator loading

00:25:16 ◼   ► and generics, you could define like your own meta language

00:25:20 ◼   ► on top of this language for your own code.

00:25:22 ◼   ► And so if you're reading someone else's code written in this language, or you're

00:25:26 ◼   ► reading code you wrote a year ago in this language when you were being a little too

00:25:29 ◼   ► clever, it can be really hard to figure out what's going on or what causes certain behavior

00:25:33 ◼   ► you're seeing.

00:25:34 ◼   ► That's one of the reasons I don't like Rails, and one of the reasons I avoided back

00:25:37 ◼   ► forever ago why David and I decided to write Tumblr and PHP instead of Rails, was because

00:25:42 ◼   ► it had a lot of the mix-ins, a lot of the behavior caused by things that are hard to

00:25:47 ◼   ► find.

00:25:48 ◼   ► And I'm sure it isn't like that anymore, I don't know.

00:25:52 ◼   ► I literally looked at it once in 2006 for about a month.

00:25:56 ◼   ► So take all that with a grain of salt.

00:25:58 ◼   ► But generally I don't like having all that magic

00:26:02 ◼   ► that's hard to find and hard to follow

00:26:04 ◼   ► when you're reading the code

00:26:05 ◼   ► or when you're debugging the code.

00:26:06 ◼   ► That's why I like languages like C and like Objective-C

00:26:09 ◼   ► because most of that magic is not possible

00:26:13 ◼   ► or at least is very, very rarely used.

00:26:15 ◼   ► - Well, C, you said it in C, it's macros.

00:26:17 ◼   ► Macros make that a nightmare.

00:26:18 ◼   ► And looking at someone, I mean, to give a great example,

00:26:21 ◼   ► try looking at the Perl source code, not like, you know, Perl code, but the C program that

00:26:26 ◼   ► is the Perl compiler and, you know, executable.

00:26:30 ◼   ► It is so filled with macros, it is almost nonsensical.

00:26:33 ◼   ► And macro, people don't like macros with good reason, but if you take macros and take away

00:26:38 ◼   ► all of the evil sort of text processing crap about them, what falls out is Lisp, and people

00:26:43 ◼   ► love Lisp.

00:26:44 ◼   ► And that, this means, you know, when you say that if you look at a program, it looks like,

00:26:47 ◼   ► you know, some meta program you can't figure out, that's why people love Lisp, that you

00:26:50 ◼   ► you essentially define a language

00:26:52 ◼   ► to solve your specific problem

00:26:53 ◼   ► and then use that language to write your program in.

00:26:57 ◼   ► And so that's the whole idea of Lisp is that you will,

00:27:00 ◼   ► there is no syntax to speak of,

00:27:02 ◼   ► it's just, you know,

00:27:03 ◼   ► fingernail clippings all the way down,

00:27:05 ◼   ► and then you just sort of define your own vocabulary.

00:27:09 ◼   ► And if someone else was to look at that,

00:27:11 ◼   ► yes, they would have to say,

00:27:11 ◼   ► "I don't know what this does."

00:27:12 ◼   ► I mean, that's true of looking at any program.

00:27:14 ◼   ► It's kind of weird hearing you say that

00:27:15 ◼   ► because you're working with like vast libraries

00:27:18 ◼   ► millions of lines of code that you a didn't write and B usually don't even have access

00:27:22 ◼   ► to the source code too. And that's the majority of the code in your program. Like an overcast.

00:27:25 ◼   ► You know what I mean? The problem I have is that Marco, all I'm hearing you say is I want

00:27:31 ◼   ► to remain a C programmer for life. And that's okay if that's what you want to do. But like

00:27:37 ◼   ► you grumbling about generics, which I know is just like an off the cuff example, but

00:27:42 ◼   ► you grumbling about generics is nails on a chalkboard to me because I love generics.

00:27:49 ◼   ► Nobody loves generics, Casey.

00:27:50 ◼   ► I do.

00:27:51 ◼   ► And now I'm coming at this from C# where it's very…

00:27:59 ◼   ► Generics came to C# at a time when everything was extremely strongly typed.

00:28:04 ◼   ► Type inference wasn't a thing.

00:28:06 ◼   ► And you had to cast everything all the time.

00:28:11 ◼   ► And it was the most annoying thing in the world.

00:28:14 ◼   ► And to me, generics are being extremely deliberate about what you're trying to accomplish.

00:28:21 ◼   ► And I just, when you say, when you say that, oh, you don't, you don't feel like all the

00:28:27 ◼   ► code is where you expect it to be and you have to jump around in different files to

00:28:31 ◼   ► find it all.

00:28:32 ◼   ► All I'm hearing you say is I want to be a procedural C programmer for the rest of my

00:28:35 ◼   ► life and that's okay.

00:28:38 ◼   ► But gosh, that's so limiting, and I hope that that's,

00:28:41 ◼   ► I hope that's not what you mean,

00:28:43 ◼   ► even if that's what I'm hearing you say.

00:28:45 ◼   ► - No, I mean, that isn't what I mean.

00:28:47 ◼   ► However, you know, like the languages I know,

00:28:49 ◼   ► I've either, either they work this way

00:28:51 ◼   ► or I've been able to make them work this way.

00:28:53 ◼   ► What I, my goal is ease of reading the code

00:28:57 ◼   ► and simplicity, keeping things small, reducing cleverness.

00:29:02 ◼   ► I am not a very clever programmer.

00:29:05 ◼   ► I program things in pretty straightforward ways usually.

00:29:08 ◼   ► all of the increase of cleverness that is infecting modern language design,

00:29:14 ◼   ► it makes things look cool up front, but it makes it really hard to use over time,

00:29:19 ◼   ► or with a team, or when maintaining code, or when using third-party code.

00:29:24 ◼   ► It gets very, very difficult.

00:29:26 ◼   ► I feel like a lot of this is complexity for its own sake, or solving the wrong problems.

00:29:31 ◼   ► Well, but your problem here is not a language problem.

00:29:34 ◼   ► It's kind of a library problem.

00:29:36 ◼   ► It's mostly an implementation problem

00:29:39 ◼   ► because it's like you have a well-defined problem to solve.

00:29:41 ◼   ► I don't think the language matters at all.

00:29:42 ◼   ► All that matters is the libraries

00:29:44 ◼   ► and the sort of stability of the implementation

00:29:46 ◼   ► of that language and can it handle

00:29:48 ◼   ► because you're doing things at a fairly large scale

00:29:50 ◼   ► and you've got something that works,

00:29:51 ◼   ► but it's kind of around the creaky edges

00:29:53 ◼   ► of what PHP can handle and it's not particularly efficient

00:29:57 ◼   ► as you saw when you did the Node implementation.

00:29:59 ◼   ► It could be more efficient, but the Node is young

00:30:00 ◼   ► and it's flaky and has its own issues

00:30:02 ◼   ► And so what you're looking for is something that will work with less flakiness than Node

00:30:11 ◼   ► had, fewer resources than PHP did.

00:30:14 ◼   ► And so I think Go is a reasonable thing to be looking at.

00:30:16 ◼   ► And as I said on Twitter, and I wasn't actually joking, if you want to do this in Perl with

00:30:20 ◼   ► any event, which is a wrap around tons of event libraries, you could use any event wrap

00:30:25 ◼   ► around the libev library.

00:30:30 ◼   ► I think this would be fairly straightforward.

00:30:32 ◼   ► And so would your Perl solution use fewer resources than the PHP one?

00:30:39 ◼   ► Probably because it would use a real event library written in C.

00:30:42 ◼   ► Would it have fewer bugs than the Node one?

00:30:44 ◼   ► Probably because that library and that CPAN module are all way more mature than the Node

00:30:48 ◼   ► implementation of it.

00:30:50 ◼   ► But Go would definitely be faster.

00:30:52 ◼   ► But when you do it in Go, you're left with, "Okay, well, am I going to use an existing

00:30:57 ◼   ► event library?

00:30:58 ◼   ► Am I going to sort of write my own event library?"

00:30:59 ◼   ► because once you're sort of writing your own event library

00:31:01 ◼   ► and go, if you're not going to use libevent or libv or something

00:31:05 ◼   ► like that, then that's immediately worse.

00:31:08 ◼   ► It doesn't matter how good the language is.

00:31:10 ◼   ► No, don't try to re-implement your own event library

00:31:14 ◼   ► or directly with system calls into it.

00:31:16 ◼   ► Like someone did that already.

00:31:17 ◼   ► What you just want is a language that

00:31:19 ◼   ► exposes one of these mature libraries that

00:31:21 ◼   ► works really well in a way that's not buggy,

00:31:23 ◼   ► doesn't leak memory, that's fairly performative.

00:31:25 ◼   ► And so I would obviously try Perl first,

00:31:28 ◼   ► because I know there's a bunch of event library wrappers.

00:31:30 ◼   ► In fact, there's a wrapper that wraps

00:31:31 ◼   ► pretty much any event library called any event.

00:31:34 ◼   ► And so you could go through like,

00:31:35 ◼   ► let me try seven different event libraries

00:31:37 ◼   ► with the same Perl program.

00:31:38 ◼   ► And if they all suck, you're like, well, that didn't work.

00:31:40 ◼   ► You know, 'cause I haven't done event-driven programming

00:31:43 ◼   ► in Perl, anything more than like a trivial thing.

00:31:46 ◼   ► So I can't tell you whether it will actually work,

00:31:47 ◼   ► but I can tell you that it's old enough

00:31:49 ◼   ► and been around long enough that there's a million wrappers

00:31:51 ◼   ► for event libraries.

00:31:52 ◼   ► And maybe that would just help you narrow down

00:31:53 ◼   ► which event library you wanna use.

00:31:54 ◼   ► And then you could just write against that one in C,

00:31:56 ◼   ► which you already also talked about.

00:31:57 ◼   ► hey, let me go to libevent,

00:31:59 ◼   ► let me write it directly against it and see.

00:32:01 ◼   ► But I've also heard that libevent

00:32:03 ◼   ► is not the best event library if you're looking to do that.

00:32:05 ◼   ► So what Lauren Burchard was just saying

00:32:06 ◼   ► that he wrote an Objective-C wrap around libev

00:32:10 ◼   ► to do something similar.

00:32:12 ◼   ► - Yeah.

00:32:12 ◼   ► - I think that's what it's gonna come down to

00:32:14 ◼   ► is either the language has something like this built in,

00:32:17 ◼   ► a couple of people mentioned Erlang or whatever,

00:32:18 ◼   ► like has some sort of parallelization event loop type

00:32:21 ◼   ► of making efficient use of CPU

00:32:24 ◼   ► when a lot of things are gonna be in IO wait,

00:32:27 ◼   ► either has that built into the language

00:32:29 ◼   ► or it has a really good stable wrapper

00:32:30 ◼   ► around one of the other low-level libraries

00:32:32 ◼   ► that does this for you.

00:32:34 ◼   ► - Yeah, well, I mean, and it should be,

00:32:37 ◼   ► in case the implication here was not clear,

00:32:40 ◼   ► I'm not just looking for a solution to this one problem.

00:32:44 ◼   ► I'm also looking for a long-term replacement

00:32:46 ◼   ► to PHP in my toolkit.

00:32:47 ◼   ► - Yeah, but I don't think this is a great example for that,

00:32:52 ◼   ► because say you find something

00:32:54 ◼   ► that does a really good job on this,

00:32:55 ◼   ► it still doesn't say, okay,

00:32:56 ◼   ► now I'm going to write all of the stuff I used to write in PHP, I'm going to write in

00:32:59 ◼   ► Go. I don't think you would do that, but I think Co could be an appropriate choice for

00:33:03 ◼   ► this provided you get the event stuff nailed down. And by the same token, were you to get

00:33:08 ◼   ► a handy little solution to this in Perl with any event or something, doesn't mean you would

00:33:13 ◼   ► say, okay, now I'm going to rewrite all those PHP agents in Perl because that would, well,

00:33:17 ◼   ► I think it would still be a big upgrade, but anyway, you're probably not going to do it.

00:33:21 ◼   ► Well, in addition to Perl having many of the same problems that I just cited with PHP and

00:33:25 ◼   ► Python, it just would feel like a sideways step.

00:33:30 ◼   ► - I know, but I was suggesting it justice

00:33:32 ◼   ► because you were at the point now where you're like,

00:33:34 ◼   ► look, I wanna solve this problem without using

00:33:36 ◼   ► 240 PHP processes that are inefficient

00:33:38 ◼   ► and use a lot of resources.

00:33:39 ◼   ► It's like an economic, it's like a single purpose problem,

00:33:41 ◼   ► like I have a problem, there's actual impact

00:33:43 ◼   ► to me implementing this better.

00:33:45 ◼   ► Node looked like it was gonna do it,

00:33:46 ◼   ► but it's a little flaky, try a few other things.

00:33:49 ◼   ► This could be one of the other things you try.

00:33:51 ◼   ► - The reason I'm able to do the things I do,

00:33:53 ◼   ► The reason I'm able as one person to run a web service with a few hundred thousand

00:33:58 ◼   ► users and an iOS app and be able to keep up with them semi-okay is because I don't spend

00:34:05 ◼   ► a lot of time experimenting with new languages and new systems and making things just for

00:34:10 ◼   ► fun.

00:34:11 ◼   ► Most of what I do is to serve the things I'm working on.

00:34:14 ◼   ► And so I don't want to go on an expedition trying to learn a bunch of new languages to

00:34:19 ◼   ► try to pick the best one for just this one task.

00:34:22 ◼   ► I want to be able to leverage this, to use this,

00:34:24 ◼   ► to basically build up my toolkit

00:34:26 ◼   ► and modernize this one very ancient part of it.

00:34:29 ◼   ► Because I know that PHP is,

00:34:31 ◼   ► look, I could keep using it for a long time,

00:34:34 ◼   ► it's gonna be around for a long time,

00:34:36 ◼   ► but I do keep running into things that it's bad at.

00:34:39 ◼   ► And I recognize that, as I said last episode,

00:34:43 ◼   ► I really don't have a lot of faith

00:34:45 ◼   ► in the quality of the direction it's going.

00:34:48 ◼   ► And there are lots of other languages

00:34:49 ◼   ► that I should be considering.

00:34:51 ◼   ► I actually heard from Russell Ivanovich, I forget how you say his last name, I tried

00:34:57 ◼   ► to remember it and tried to learn it and I forgot, I'm sorry Russell.

00:35:00 ◼   ► He's one of the guys in Shifty Jelly, one of my competitors in the podcast app space,

00:35:03 ◼   ► they make Pocket Casts, and he's the nicest guy in the world and he told me privately,

00:35:08 ◼   ► they crawl what sounded like a pretty impressive number with a pretty impressively low amount

00:35:13 ◼   ► of hardware and they do it all in Java.

00:35:16 ◼   ► I don't know anything about Java in the modern day, the last time I used Java was in Computer

00:35:20 ◼   ► Science 101 back in 2001.

00:35:25 ◼   ► Maybe people told me that I should be looking at C# for this.

00:35:28 ◼   ► And Casey, I'm curious to know what you think about that.

00:35:30 ◼   ► But there are lots of other languages I could be looking at right now.

00:35:33 ◼   ► I don't know.

00:35:34 ◼   ► Casey, if you were faced with this problem, what would you do?

00:35:38 ◼   ► I think the first thing I'd do is I would try to write it in Node.

00:35:45 ◼   ► And I thought you had said on Twitter that the issue that you're having with Node is

00:35:51 ◼   ► that getting the process to start again is where everything's going wrong.

00:35:58 ◼   ► Like the set timeout is what's breaking.

00:36:01 ◼   ► Is that, well, the set timeout is eventually leading to memory leaks.

00:36:04 ◼   ► Is that a fair statement?

00:36:05 ◼   ► Oh, it's immediately leading to memory leaks.

00:36:08 ◼   ► It's like every set timeout is, for some reason it seems to be that it's capturing the scope

00:36:13 ◼   ► of its calling scope and it's like retaining

00:36:16 ◼   ► its calling scope even though it's just like,

00:36:19 ◼   ► it's just calling a function.

00:36:21 ◼   ► Like it's not, it's like I don't see why it needs

00:36:23 ◼   ► to retain anything that's in the calling scope,

00:36:25 ◼   ► but for some reason it is.

00:36:26 ◼   ► And if you search around for node set timeout

00:36:30 ◼   ► or set interval memory leaks, you see a bunch

00:36:33 ◼   ► of other people hitting problems like this

00:36:35 ◼   ► and some of the fixes look like bugs to me.

00:36:39 ◼   ► Some of them are like, well if you set,

00:36:41 ◼   ► If you just call setTimeout, then you'll get a leak,

00:36:44 ◼   ► but if you assign it to a variable,

00:36:45 ◼   ► say var t equals setTimeout, then it doesn't leak.

00:36:49 ◼   ► There's a bunch of weird stuff going on

00:36:51 ◼   ► with the way this captures things.

00:36:53 ◼   ► Either it's a bug, or it doesn't make any sense, or both.

00:36:56 ◼   ► Either way, that is a big problem for me.

00:36:59 ◼   ► I don't wanna have to keep fighting issues like that

00:37:01 ◼   ► in a language I'm gonna invest much time into.

00:37:04 ◼   ► Also, again, what I said before is,

00:37:06 ◼   ► I don't like JavaScript, and I don't foresee

00:37:10 ◼   ► this being my long-term replacement for PHP,

00:37:12 ◼   ► so it feels like I'm kind of wasting time

00:37:14 ◼   ► doing a whole bunch in it.

00:37:16 ◼   ► - Yeah, I think the reason I brought that up is

00:37:19 ◼   ► if the only issue you're having with Node

00:37:22 ◼   ► boils down to just tickling that Node process

00:37:25 ◼   ► and getting it to do its thing,

00:37:26 ◼   ► then couldn't you fire that from PHP

00:37:28 ◼   ► and have Node do the crawling?

00:37:30 ◼   ► - Well, no, the whole idea here,

00:37:33 ◼   ► and when I asked on Twitter, am I doing this wrong,

00:37:37 ◼   ► or does setTimeout just not work without leaking memory?

00:37:40 ◼   ► and I got a bunch of responses from node programmers.

00:37:44 ◼   ► None of them use it.

00:37:46 ◼   ► All of them trigger recurring scheduled events

00:37:50 ◼   ► with external cron tasks that call into the node

00:37:53 ◼   ► with a web request or something.

00:37:55 ◼   ► - Yeah, that's basically what I'm trying to do.

00:37:56 ◼   ► - Yeah, or they use things like,

00:37:58 ◼   ► there's something called I think Node-Cron

00:37:59 ◼   ► or something like that, but if you look at the source,

00:38:01 ◼   ► it's using setTimeout internally,

00:38:03 ◼   ► so that's basically the only option.

00:38:06 ◼   ► All I need to do is I need to crawl,

00:38:10 ◼   ► for all these feeds, each of them has a TTL

00:38:12 ◼   ► that I calculate.

00:38:13 ◼   ► I calculate when the next one should run

00:38:16 ◼   ► and I say call me again with this ID in this many seconds.

00:38:21 ◼   ► That's it, that's all I have to do.

00:38:22 ◼   ► So they shouldn't be nesting, they're not stacking up.

00:38:26 ◼   ► I verified that, it's not like they're not being cleared

00:38:31 ◼   ► and so making more and more calls per second,

00:38:34 ◼   ► it's not doing that.

00:38:35 ◼   ► It's just something about the memory capture.

00:38:37 ◼   ► But again, that's honestly, I'm sure a Node expert

00:38:42 ◼   ► could look at this and possibly fix it.

00:38:44 ◼   ► It's more that I don't wanna keep investing in a language

00:38:47 ◼   ► that is clashing with me on such a fundamental level

00:38:50 ◼   ► and that I don't feel is serving my long-term goals.

00:38:54 ◼   ► - Yeah, and I really wanna defend Node

00:38:56 ◼   ► because I've not done a overwhelming amount

00:39:00 ◼   ► of Node programming, but the programming I've done in Node,

00:39:03 ◼   ► I really like.

00:39:04 ◼   ► I want to defend JavaScript because

00:39:07 ◼   ► although it is full of landmines and pitfalls

00:39:11 ◼   ► and bottomless pits,

00:39:12 ◼   ► it is actually to me anyway, fairly fun to write.

00:39:15 ◼   ► But if I were in your shoes,

00:39:18 ◼   ► I'd probably be coming to a similar conclusion.

00:39:22 ◼   ► And it certainly sounds to be

00:39:23 ◼   ► a pragmatic conclusion regardless.

00:39:26 ◼   ► To go back and answer your question,

00:39:27 ◼   ► well, what about like C#?

00:39:29 ◼   ► Well, that's challenging

00:39:32 ◼   ► because the right way to do it,

00:39:35 ◼   ► if you're gonna do it in C#,

00:39:36 ◼   ► is to run ASP.NET, IAS, the whole Microsoft stack.

00:39:41 ◼   ► And I know, right, and you have no interest in that.

00:39:44 ◼   ► And honestly, if I were in your shoes,

00:39:46 ◼   ► I wouldn't have any interest in that.

00:39:48 ◼   ► And you know what?

00:39:49 ◼   ► When I was doing for fun programming in my own time

00:39:51 ◼   ► that I was going to have to pay for,

00:39:55 ◼   ► did I use C# and ASP.NET?

00:39:57 ◼   ► Hell no, I didn't, because I didn't wanna stand all that up.

00:39:59 ◼   ► I didn't want to have to worry about all that.

00:40:02 ◼   ► So C# as a language, actually, I think would,

00:40:05 ◼   ► I think you would like C# a lot to be honest,

00:40:08 ◼   ► but the problem is you've got all the periphery to deal with

00:40:11 ◼   ► that I don't think you would enjoy.

00:40:13 ◼   ► Now, of course, you could take the approach of,

00:40:15 ◼   ► well, let me look into Xamarin/Mono,

00:40:17 ◼   ► and that might work.

00:40:20 ◼   ► To be honest, I'm now outside of my comfort zone

00:40:22 ◼   ► because I work in the Microsoft stack.

00:40:24 ◼   ► So I don't really know a lot about the Xamarin and Mono,

00:40:29 ◼   ► the way that would be deployed, but it's worth looking into.

00:40:33 ◼   ► I don't think C# is going anywhere anytime soon.

00:40:37 ◼   ► I don't know enough about Go to be able to say,

00:40:39 ◼   ► yes, that sounds like an excellent choice

00:40:41 ◼   ► of something that has long-term viability.

00:40:43 ◼   ► I think Node is certainly very trendy right now

00:40:47 ◼   ► in the same way that Python and Ruby have been in the past.

00:40:50 ◼   ► But to your point earlier,

00:40:52 ◼   ► are Python and Ruby going to remain trendy?

00:40:55 ◼   ► I don't know.

00:40:56 ◼   ► And is Node going to remain trendy?

00:40:59 ◼   ► know and although it seems a little weird to me to throw node out entirely because of set timeout

00:41:05 ◼   ► i can also understand how that's the straw that's breaking the camel's back so if i were your shoes

00:41:11 ◼   ► i honestly don't know what i would do i guess i would try go and see how it worked um but geez

00:41:17 ◼   ► it's a tough it's a tough call i'm not sure what the right answer is i was gonna say i think

00:41:21 ◼   ► tangling both of these things up with each other finding a new language to replace php that's going

00:41:25 ◼   ► gonna be worth your while long term and solving the specific problem is over

00:41:28 ◼   ► complicating it. I think those are two things that you should do and I don't

00:41:32 ◼   ► think they need to be combined. It's something, it's it'll be nice if you

00:41:35 ◼   ► combine them. I can understand the desire like oh if I could get them you know two

00:41:37 ◼   ► birds with one stone but the the needs are so different. I mean like on the one

00:41:42 ◼   ► hand for example the best bet for a new language for you to learn that you're

00:41:46 ◼   ► gonna have to use later is probably at this point Swift and not because you're

00:41:49 ◼   ► gonna use your place PHP but because Apple's gonna make you use it too.

00:41:53 ◼   ► Well, and I might learn that also but but because Swift is not open source

00:41:57 ◼   ► there's nothing about Swift that can go on a server yet and and so I

00:42:01 ◼   ► I'm gonna have to maintain these two languages like yeah, I know you still need something to replace PHP

00:42:07 ◼   ► But yeah, exactly like it's like Swift put that aside

00:42:09 ◼   ► You're probably gonna need to do that maybe look into it to see if it helps you here

00:42:13 ◼   ► Maybe does maybe doesn't probably won't then you got the problem of what do I need to replace PHP?

00:42:17 ◼   ► And then you've got the problem is what do I do short term to make this crawler take fewer resources?

00:42:21 ◼   ► Well, I would also point out, I tweet shared this last week during the break, last episode

00:42:29 ◼   ► of Core Intuition was really good, I'll have to look up the number, I'll put it in the

00:42:32 ◼   ► show notes, where Daniel Jowkut and Manton Reese were talking about Swift and like, how

00:42:38 ◼   ► safe is it to use Swift today?

00:42:41 ◼   ► Or how safe is it to invest a whole lot of time in Swift today?

00:42:46 ◼   ► And they rightly pointed out, like, we don't actually,

00:42:49 ◼   ► like Swift is not a sure thing yet.

00:42:51 ◼   ► It is a thing that is out there

00:42:53 ◼   ► that Apple has put out there.

00:42:54 ◼   ► They've also put out things like garbage collection

00:42:57 ◼   ► in Objective-C, things like the Java bridge

00:43:00 ◼   ► back forever ago, that ended up being axed

00:43:03 ◼   ► only a few years down the road

00:43:04 ◼   ► 'cause they just weren't working out.

00:43:06 ◼   ► We don't know if Swift is actually gonna be here

00:43:07 ◼   ► for the long term and actually be the eventual replacement

00:43:10 ◼   ► for Objective-C yet.

00:43:11 ◼   ► All we know is that it seems like that's the goal right now.

00:43:14 ◼   ► But this is not the first time

00:43:16 ◼   ► something like that has come around.

00:43:18 ◼   ► Apple's certainly in a better position now

00:43:19 ◼   ► than they were when the other alternatives came around,

00:43:21 ◼   ► but it is not a guarantee that Swift will be the next thing

00:43:26 ◼   ► for Objective-C programmers.

00:43:29 ◼   ► All this is is we're trying something now,

00:43:32 ◼   ► and I would point out we seem to be

00:43:34 ◼   ► in a somewhat turbulent time at Apple.

00:43:36 ◼   ► In addition, I mean, God, looking at how strained

00:43:41 ◼   ► their engineering resources are,

00:43:43 ◼   ► it does seem like a terrible time

00:43:44 ◼   ► to have introduced you to language.

00:43:46 ◼   ► (laughs)

00:43:47 ◼   ► Like just for them, like not even just for us.

00:43:49 ◼   ► I mean, we'll deal with it, whatever they do, but--

00:43:52 ◼   ► - But I do think Swift is much stronger of a,

00:43:56 ◼   ► if you had to bet on one of them,

00:43:57 ◼   ► you just named a whole bunch of them.

00:43:58 ◼   ► The Java Bridge, Java Bridge was done

00:44:00 ◼   ► from a position of weakness,

00:44:01 ◼   ► 'cause it was like maybe people only use

00:44:02 ◼   ► these crazy square brackets.

00:44:03 ◼   ► That is a super weak position,

00:44:04 ◼   ► and they were just trying to get people

00:44:05 ◼   ► to develop for the rest.

00:44:07 ◼   ► Garbage Collection was always kind of half-heartedly pushed.

00:44:10 ◼   ► It was like, "We're making Garbage Collection,

00:44:12 ◼   ► and maybe we'll dog food it here and you should make your apps work with it."

00:44:17 ◼   ► But then they couldn't even convince all Apple internal library people to use it for their

00:44:21 ◼   ► libraries and make them garbage collection safe.

00:44:24 ◼   ► It was never like…

00:44:26 ◼   ► The amount of publicity and the push behind and the specific team behind Swift is like

00:44:33 ◼   ► their team that has proven that they can get things done within Apple having changed their

00:44:38 ◼   ► whole compiler infrastructure over several years.

00:44:41 ◼   ► It was in a keynote, but you know, it was also in the keynote.

00:44:44 ◼   ► We're going to the standards bodies starting tomorrow, and we're going to make

00:44:49 ◼   ► FaceTime an open industry standard.

00:44:51 ◼   ► Yeah, but that was Stitch Steve Jobs saying random things on stage and people

00:44:58 ◼   ► going crazy behind the scenes.

00:44:59 ◼   ► Like this, this is of all of the sort of major technology based things.

00:45:05 ◼   ► I would say this is even stronger than like, by the way, you should build your

00:45:09 ◼   ► OS X apps using Project Builder.

00:45:11 ◼   ► Like this was more emphatic than Project Builder

00:45:14 ◼   ► 'cause it took them a while to get,

00:45:15 ◼   ► in fact, I think it basically took them

00:45:17 ◼   ► until they had the X code name to say,

00:45:20 ◼   ► no, this is it, this is, you know,

00:45:22 ◼   ► we're telling you like we are completely taking over

00:45:25 ◼   ► the compiler infrastructure,

00:45:26 ◼   ► which they were from the beginning anyway,

00:45:27 ◼   ► but they were kind of timid about, you know,

00:45:28 ◼   ► especially coming off the whole

00:45:30 ◼   ► code warrior thing and everything.

00:45:32 ◼   ► My recollection anyway,

00:45:33 ◼   ► is that they were externally not shoving it in your face

00:45:37 ◼   ► that by the way, if you're gonna develop

00:45:38 ◼   ► applications for our platform, you're going to use our IDE and our compilers, because

00:45:43 ◼   ► they were in a transition period there and eventually said, no, you're going to use our

00:45:45 ◼   ► stuff.

00:45:46 ◼   ► And to emphasize that, it's called Xcode now instead of Project Builder, and you're just

00:45:49 ◼   ► going to have to deal with it.

00:45:51 ◼   ► Swift was very bold and very strongly backed in.

00:45:55 ◼   ► I would say that the thing you should be wary about using it now is they've said they're

00:46:00 ◼   ► going to just constantly break the syntax and there could be all sorts of weird things

00:46:04 ◼   ► having to do with source code compatibility.

00:46:06 ◼   ► the tools are very immature right now and the performance of the compiler sucks and

00:46:10 ◼   ► all this other stuff.

00:46:11 ◼   ► Yeah, yeah, there's plenty of reasons to stay away from it, but like this is just so much

00:46:14 ◼   ► stronger than the other things you've listed.

00:46:16 ◼   ► So even though those things have happened in the past and you had to be like, the problem

00:46:20 ◼   ► with Swift is the opportunity cost of not doing it seems much higher.

00:46:23 ◼   ► Like you could sort of say, all right, well, they're still supporting Objective-C, right?

00:46:27 ◼   ► So I don't have to do this Java thing.

00:46:28 ◼   ► We'll see how that shakes out.

00:46:29 ◼   ► And the garbage collection is like, well, I'll wait to see what happens.

00:46:32 ◼   ► You can do it with Swift too.

00:46:33 ◼   ► Let me wait to see what Apple actually implements in Swift.

00:46:36 ◼   ► But even as soon as Apple implements its first Swift only library or something, even then,

00:46:42 ◼   ► I still think you could potentially say, "All right, I'm all in on Swift," and they could

00:46:45 ◼   ► still change their mind.

00:46:46 ◼   ► So I think we have probably three years to be sure, but I think the degree of confidence

00:46:51 ◼   ► in Swift being a thing, whether it's good or not, the fact that Apple is going to stick

00:46:55 ◼   ► to it, it's pretty high at this point.

00:46:57 ◼   ► Yeah.

00:46:58 ◼   ► And plus, I don't know Apple's history with like MetroWorks and CodeWarrior and stuff

00:47:02 ◼   ► like that.

00:47:03 ◼   ► I came way later than that.

00:47:04 ◼   ► Certainly, it seems like a lot of the moves they've been making over the last five to

00:47:09 ◼   ► 10 years, probably five-ish years, have been to set the things in motion to get Swift to

00:47:15 ◼   ► be a thing, you know, to work on LVM, to work on Clang, to work on all of these things that

00:47:22 ◼   ► make up the Swift toolchain.

00:47:24 ◼   ► It seems like a very deliberate multi-year process to get to where we are today.

00:47:28 ◼   ► And yeah, Apple will throw things away on a whim if they so desire, but geez, it seems

00:47:32 ◼   ► Seems like that's a lot of work to be thrown away just for fun.

00:47:36 ◼   ► And of course they have the big problem that they throw it away.

00:47:39 ◼   ► They just say, "Okay, well back to Objective-C.

00:47:42 ◼   ► Retreat to safety."

00:47:43 ◼   ► They need, as I've said many times, they need something.

00:47:48 ◼   ► You can't just stick with Objective-C forever.

00:47:52 ◼   ► Swift too soon, should they retreat and then advance again in a couple years in the future?

00:47:55 ◼   ► I think they're already behind and they need something like Swift.

00:47:57 ◼   ► And if it's not Swift, this will be a huge mistake for them because they will have wasted

00:48:00 ◼   ► years and tons of resources attempting the Swift transition and if it fails it's like

00:48:05 ◼   ► "uh, uh, what do we do now? C# I guess? I don't know." They have a problem.

00:48:10 ◼   ► We are also sponsored this week by Fracture. Remember Fracture? They print photos directly

00:48:14 ◼   ► on glass in vivid color. Go to fractureme.com. F-R-A-C-T-U-R-E-M-E dot com. I have Fracture's

00:48:23 ◼   ► hanging all over my office. They are awesome prints. I like them a lot. Other people have

00:48:28 ◼   ► compliment to them whenever they've seen them.

00:48:30 ◼   ► They're fantastic.

00:48:31 ◼   ► So they print photos directly on glass and then you can hang them up directly.

00:48:35 ◼   ► You don't have to frame them.

00:48:36 ◼   ► They are their own frame basically.

00:48:38 ◼   ► It's really, really nice.

00:48:39 ◼   ► The price I started at just $15 for a 5x5 inch print and I use that size.

00:48:44 ◼   ► I have a little row above my window in my office here.

00:48:47 ◼   ► I have a little row or the little square prints and I use them to print app icons of the apps

00:48:52 ◼   ► I've done.

00:48:53 ◼   ► It's kind of like this nice physical,

00:48:56 ◼   ► almost like a trophy row of like,

00:48:57 ◼   ► here's the things I've made.

00:48:59 ◼   ► Because in our world, you know,

00:49:00 ◼   ► you don't get a lot of like physical recognition

00:49:01 ◼   ► of things you make in software.

00:49:03 ◼   ► I really like that and people have,

00:49:05 ◼   ► people have taken that idea and ran with it.

00:49:06 ◼   ► I've heard of a lot of other people who are doing that too.

00:49:08 ◼   ► You can do that.

00:49:09 ◼   ► You can also print photos.

00:49:10 ◼   ► I have a couple of photos printed on the other wall

00:49:12 ◼   ► over here.

00:49:13 ◼   ► I have like, looks like it's probably like an 11 by 17 size.

00:49:16 ◼   ► It's a nice size.

00:49:18 ◼   ► Anyway, every fracture is handmade, checked for quality

00:49:21 ◼   ► by their small team in Gainesville, Florida.

00:49:23 ◼   ► It is the thinnest, lightest, and most elegant way

00:49:26 ◼   ► to display your favorite photo.

00:49:28 ◼   ► I can attest to that also.

00:49:30 ◼   ► You would think a big slab of glass would be heavy,

00:49:32 ◼   ► but the glass layer is actually very thin on the front,

00:49:36 ◼   ► and behind it is a little bit of,

00:49:37 ◼   ► it's almost like a foam board kind of thing

00:49:40 ◼   ► so you can mount a hanger or something.

00:49:42 ◼   ► So it actually isn't unsafely heavy.

00:49:46 ◼   ► 'Cause I was also afraid, how big do I want a piece of glass

00:49:49 ◼   ► hanging out of my wall?

00:49:50 ◼   ► but it's nice, it's a very nice weight balance.

00:49:52 ◼   ► It does not seem crazy to hang this on your wall.

00:49:55 ◼   ► They also have desk stands, it's really great.

00:49:57 ◼   ► Anyway, you can get 20% off your first order from Fracture

00:50:00 ◼   ► by using coupon code ATP.

00:50:03 ◼   ► That'll also let them know that you came from our show

00:50:05 ◼   ► and that'll make them sponsor us more in the future,

00:50:07 ◼   ► so please do that.

00:50:08 ◼   ► Go to fractureme.com and use coupon code ATP for 20% off.

00:50:13 ◼   ► These are great, everything you need is in the box.

00:50:15 ◼   ► Great quality, I can't recommend them enough.

00:50:17 ◼   ► Thank you very much to Fracture for sponsoring our show.

00:50:20 ◼   ► - All right, any other thoughts on your adventure

00:50:24 ◼   ► into the wilderness that scares you?

00:50:26 ◼   ► - I mean, this will probably be an ongoing topic.

00:50:28 ◼   ► I mean, heck, maybe 2015 will be the year

00:50:30 ◼   ► of me learning too many programming languages

00:50:32 ◼   ► or just switching to Java.

00:50:33 ◼   ► I don't know.

00:50:35 ◼   ► - I doubt it'll be you switching to Java, but I'm with you.

00:50:37 ◼   ► - Probably not, but you never know.

00:50:39 ◼   ► - Fair enough.

00:50:40 ◼   ► All right, I would like to, time permitting,

00:50:42 ◼   ► talk about your new iPad, but before we do that,

00:50:46 ◼   ► Jon, why don't you tell us about some survey

00:50:48 ◼   ► that's been going on lately?

00:50:50 ◼   ► I didn't get the survey because I don't have any apps in any of the app stores, I assume.

00:50:54 ◼   ► I don't know if it was sent to everybody, but a lot of people got a survey from Apple

00:50:58 ◼   ► asking them questions about the app store, and people have been tweeting little pictures

00:51:02 ◼   ► of it.

00:51:03 ◼   ► I want to talk about the survey in general, but one specific part of the survey screenshotted

00:51:08 ◼   ► and sent to us by Joe Seger.

00:51:11 ◼   ► This is a question from Apple Survey.

00:51:13 ◼   ► It says, "Which are the top three most effective marketing channels in driving downloads of

00:51:17 ◼   ► your apps on the app store?"

00:51:19 ◼   ► So this is asking people, how do you

00:51:21 ◼   ► get people to download apps in the App Store?

00:51:22 ◼   ► There's tons of choices, not just one.

00:51:24 ◼   ► And there's a little red arrow in this picture

00:51:26 ◼   ► that shows the second choice in the list.

00:51:28 ◼   ► The first choice is in-app messaging.

00:51:30 ◼   ► And the other choice is like email, PR, community,

00:51:33 ◼   ► social media, television, print, all different ways

00:51:35 ◼   ► that you get people to come and download your app.

00:51:37 ◼   ► The second choice is push notifications.

00:51:41 ◼   ► And so this is great, because you're like, all right,

00:51:45 ◼   ► is this a trap?

00:51:46 ◼   ► Are they trying to send it to people?

00:51:48 ◼   ► And then if you check push notifications,

00:51:50 ◼   ► everybody checks push notifications,

00:51:51 ◼   ► gets a little email from Apple and says,

00:51:53 ◼   ► "You've indicated that the most effective marketing channel

00:51:55 ◼   ► "is push notifications.

00:51:56 ◼   ► "You may not be aware, but section 5.6 says

00:51:58 ◼   ► "that you can't use push notifications

00:52:00 ◼   ► "for marketing purposes and blah, blah, blah."

00:52:01 ◼   ► Or did the person who wrote this question have no idea

00:52:05 ◼   ► that that rule exists and is merely reflecting the reality

00:52:08 ◼   ► that push notifications are a common marketing channel

00:52:12 ◼   ► or some combination thereof?

00:52:13 ◼   ► Like, it's baffling to me.

00:52:16 ◼   ► talk about one hand not knowing what the other is doing.

00:52:18 ◼   ► You can't tell from the question whether it's, you know,

00:52:21 ◼   ► another situation where some department

00:52:23 ◼   ► doesn't understand another department.

00:52:25 ◼   ► Or it's, maybe they just like, want to just be honest

00:52:29 ◼   ► and just see how many people will check that as their answer.

00:52:32 ◼   ► I don't know, it confuses me greatly.

00:52:34 ◼   ► But Marco, did you get this survey?

00:52:36 ◼   ► - I did, and I honestly, I didn't even,

00:52:39 ◼   ► if that was in mine, I didn't even notice it.

00:52:41 ◼   ► I just blew right past it probably.

00:52:44 ◼   ► I honestly, I mean, it's pretty clear from so many things

00:52:48 ◼   ► that it seems like the only person at Apple

00:52:52 ◼   ► who even thinks that rule exists, maybe,

00:52:55 ◼   ► is the person who wrote that document,

00:52:57 ◼   ► which might have been Steve Jobs,

00:52:58 ◼   ► so he's not even there anymore.

00:52:59 ◼   ► I don't think, I mean, the rule against push notification

00:53:02 ◼   ► spam is sadly such a joke that I wish it was,

00:53:07 ◼   ► I mean, we'll go over this a million times,

00:53:10 ◼   ► I wish it was enforced, I really do.

00:53:11 ◼   ► I think everybody would be better off, especially Apple and its customers, would be better off

00:53:17 ◼   ► if that rule was enforced because the App Store and iOS is turning into such a spammy

00:53:22 ◼   ► flea market of garbage.

00:53:25 ◼   ► And it's annoying.

00:53:26 ◼   ► Your phone is full of ads now.

00:53:29 ◼   ► This is completely the opposite of what I think Apple would want to encourage and would

00:53:34 ◼   ► tolerate.

00:53:35 ◼   ► But now your phone is full of ads because of this, primarily because of this one rule

00:53:40 ◼   ► being flagrantly ignored.

00:53:42 ◼   ► It is literally a way to push ads to your phone

00:53:45 ◼   ► whenever somebody feels like it with no penalties.

00:53:48 ◼   ► Now, how often do you get these sorts of ads?

00:53:51 ◼   ► And I'm asking honestly, because I get this once a month,

00:53:55 ◼   ► maybe?

00:53:55 ◼   ► I do not receive these that often.

00:53:57 ◼   ► Now, they infuriate me when I do get them.

00:53:59 ◼   ► But it doesn't happen that often.

00:54:00 ◼   ► Does it happen that often for you?

00:54:02 ◼   ► Well, no.

00:54:02 ◼   ► It doesn't happen that often to a lot of nerds like us,

00:54:04 ◼   ► because we usually either don't use the kind of apps that show

00:54:08 ◼   ► them most often or we turn them off. But that is not representative of the population at

00:54:14 ◼   ► large. Like if you see, we talked about this before, like if you see like normal people

00:54:16 ◼   ► using their iOS devices and you know, have somebody, have like you know a family member

00:54:22 ◼   ► who uses an iOS device, have them show you their notification screen if they're willing

00:54:25 ◼   ► and see what's there. You'll see. They are extremely common in brand, big brand apps

00:54:33 ◼   ► and games, free to play games. You know, it's so, so common.

00:54:38 ◼   ► So speaking of common, this survey here, is this the first survey about the App Store

00:54:42 ◼   ► you've ever received, Marco?

00:54:43 ◼   ► Yes, and I got six of them.

00:54:46 ◼   ► And so this seems from the outside, looking again, just seeing the stories about this,

00:54:51 ◼   ► this is like a response from someone inside Apple to all of like the bad press that the

00:54:56 ◼   ► App Store has been getting lately with this current cycle of rejections and people complaining

00:55:01 ◼   ► and so on and so forth.

00:55:02 ◼   ► So I disagree entirely.

00:55:04 ◼   ► You think it's just a was that's what I was gonna ask is like, is this something they

00:55:06 ◼   ► do every year?

00:55:07 ◼   ► - No. - Why now?

00:55:09 ◼   ► - I think it's something that the App Store marketing team

00:55:12 ◼   ► decided to do on their own, basically.

00:55:14 ◼   ► I don't think this has anything to do

00:55:16 ◼   ► with the developer policies.

00:55:19 ◼   ► I don't think, you know, like we all posted on Twitter

00:55:21 ◼   ► like what we said in the final question,

00:55:23 ◼   ► because like is there any other feedback

00:55:24 ◼   ► you'd like to give Apple?

00:55:25 ◼   ► So of course, you know, all of us developers

00:55:27 ◼   ► unloaded on them with like,

00:55:28 ◼   ► well here's all the ways the App Store sucks.

00:55:29 ◼   ► And I don't think this is going anywhere.

00:55:33 ◼   ► I think this is going into a giant black hole

00:55:36 ◼   ► and I think the marketing team--

00:55:37 ◼   ► - I'm gonna ask him what's gonna happen from it.

00:55:38 ◼   ► I'm saying, why send the survey now?

00:55:41 ◼   ► Why send this survey now?

00:55:42 ◼   ► Is it just a complete coincidence

00:55:44 ◼   ► or is it because this is part of some like,

00:55:46 ◼   ► well, we're getting a lot of press,

00:55:47 ◼   ► so first thing we need to know is like, where do we stand?

00:55:49 ◼   ► Is it just a bunch of cranky people or whatever?

00:55:51 ◼   ► Let's just gather information.

00:55:52 ◼   ► Send out a big survey that just covers all bases

00:55:54 ◼   ► and let's just send it to everybody

00:55:56 ◼   ► and see what we get back.

00:55:57 ◼   ► Because just looking at a bunch of news stories

00:55:59 ◼   ► of cranky developers doesn't tell you anything

00:56:00 ◼   ► because there's thousands and thousands of developers

00:56:02 ◼   ► and like five of them are angry.

00:56:04 ◼   ► And so they're just gathering information.

00:56:05 ◼   ► Not like they're gonna take this information

00:56:07 ◼   ► and do anything with it, but I think this is a first,

00:56:08 ◼   ► it seems to me, this is a first step

00:56:10 ◼   ► and let's see where we really are.

00:56:12 ◼   ► Because I can imagine inside Apple,

00:56:14 ◼   ► the argument is, and always is,

00:56:16 ◼   ► that's just a bunch of cranky people,

00:56:18 ◼   ► that's just a website that doesn't like us,

00:56:19 ◼   ► that's just someone going for page rates.

00:56:21 ◼   ► It's not actually a big deal.

00:56:22 ◼   ► We have hundreds of thousands of developers,

00:56:24 ◼   ► 99.99% of them love us and think we're awesome

00:56:26 ◼   ► and the app store is awesome and everything is great.

00:56:29 ◼   ► This is what I can imagine VP saying.

00:56:30 ◼   ► And we just have to manage these squeaky wheels

00:56:33 ◼   ► with good PR and stuff like that.

00:56:34 ◼   ► but realistically speaking, everybody loves us.

00:56:37 ◼   ► Our developer sat is awesome.

00:56:38 ◼   ► And just like, that's what they tell it.

00:56:40 ◼   ► You know what I mean?

00:56:41 ◼   ► And for all we know that could be true.

00:56:42 ◼   ► So the first step that someone could say is,

00:56:45 ◼   ► that's what you keep telling me,

00:56:46 ◼   ► but I don't like reading stories.

00:56:47 ◼   ► So step one, prove to me that's the case.

00:56:49 ◼   ► Survey all the developers, send back this thing.

00:56:51 ◼   ► Let's see what the survey results say.

00:56:53 ◼   ► And if they say like 99% love us and 1% hate us,

00:56:56 ◼   ► then I'll believe you.

00:56:58 ◼   ► But if not, then we'll have further discussions.

00:57:01 ◼   ► - I would believe that might be the case

00:57:04 ◼   ► if I didn't go through the survey.

00:57:06 ◼   ► But having gone through the survey,

00:57:08 ◼   ► it is pretty clear that this was written

00:57:10 ◼   ► by marketing people, not developer relations.

00:57:15 ◼   ► - Yep.

00:57:15 ◼   ► - And so, you did it, right, Casey?

00:57:18 ◼   ► - I don't remember if I got it,

00:57:19 ◼   ► but I certainly saw the survey,

00:57:21 ◼   ► 'cause we have certainly seen pretty much

00:57:25 ◼   ► the entirety of the survey.

00:57:26 ◼   ► I thought it was only two or three pages, right?

00:57:27 ◼   ► - No, it was long.

00:57:28 ◼   ► It was probably 20 screens, yeah.

00:57:30 ◼   ► - Oh, then maybe I clearly have not seen it then,

00:57:33 ◼   ► but the pieces I saw just reeked of me,

00:57:36 ◼   ► reeked to me of marketing speak.

00:57:39 ◼   ► And I agree with you, Marco,

00:57:41 ◼   ► that this was marketing acting on its own,

00:57:43 ◼   ► just trying to figure out what the state of the world was.

00:57:45 ◼   ► I don't think this is any big conspiracy

00:57:47 ◼   ► or anything like that.

00:57:48 ◼   ► - Was that, so give me an example of some of the questions.

00:57:51 ◼   ► Were all the questions basically like,

00:57:52 ◼   ► how do you market your app?

00:57:54 ◼   ► - Yes.

00:57:54 ◼   ► - And how can we help you market your app better, basically?

00:57:57 ◼   ► - Basically, yeah.

00:57:58 ◼   ► Like it was not, I mean, I could be wrong,

00:58:01 ◼   ► but it really did seem like this was like

00:58:05 ◼   ► some App Store marketing team doing their own research

00:58:08 ◼   ► for their own department and it was not,

00:58:10 ◼   ► it didn't seem representative of the developer program

00:58:12 ◼   ► as a whole or the App Store as a whole

00:58:14 ◼   ► carrying what developers thought about the App Store

00:58:16 ◼   ► and it really did seem like it was what it said

00:58:20 ◼   ► and nothing more than that which is

00:58:21 ◼   ► a survey about how you market your apps.

00:58:23 ◼   ► Like that really seemed like that was it.

00:58:26 ◼   ► Was there anything in there about like findability

00:58:29 ◼   ► in the search and stuff like that?

00:58:31 ◼   ► - Very little.

00:58:32 ◼   ► - Oh, yeah.

00:58:33 ◼   ► A lot of it gets overshadowed, you're right,

00:58:34 ◼   ► by like the people posting the free response thing

00:58:38 ◼   ► where you get to type whatever you want

00:58:39 ◼   ► and everyone just dumping a pile of turds

00:58:41 ◼   ► on the Apple store stuff and not the other questions.

00:58:45 ◼   ► So if it's just the marketing department,

00:58:47 ◼   ► like I still question,

00:58:49 ◼   ► it's not like every individual department

00:58:51 ◼   ► can decide to email every single developer

00:58:53 ◼   ► whenever they feel like it,

00:58:54 ◼   ► or like a lots of, enough developers that, you know,

00:58:57 ◼   ► it seemed like all the big names got this, right?

00:59:01 ◼   ► That seems like something that is not,

00:59:04 ◼   ► that you need a higher level okay about.

00:59:06 ◼   ► And maybe it was just the marketing department

00:59:09 ◼   ► initiating this thing, but why would you give the okay?

00:59:11 ◼   ► For like, I'm sure every department wants to do this.

00:59:13 ◼   ► I'm sure, you know, everyone would love to email

00:59:15 ◼   ► all developers and ask them questions

00:59:16 ◼   ► about whatever their thing, developer relations

00:59:19 ◼   ► or the development tools team or the frameworks team

00:59:22 ◼   ► and send a how you like in this framework

00:59:24 ◼   ► that we just made, fill out the survey, but you can't.

00:59:26 ◼   ► Everyone can't email every single developer.

00:59:28 ◼   ► And Schiller's organization, I guess,

00:59:30 ◼   ► got the go ahead to send a 20 page thing

00:59:33 ◼   ► that's mostly about how you market your apps.

00:59:36 ◼   ► I don't know.

00:59:36 ◼   ► - Well, Schiller's organization

00:59:37 ◼   ► is the developer organization.

00:59:39 ◼   ► - But it's also marketing, right?

00:59:40 ◼   ► - The entire developer relations division at Apple

00:59:42 ◼   ► is under marketing, which is under Schiller,

00:59:45 ◼   ► which is part of the problem, honestly.

00:59:47 ◼   ► - But that's getting back to what I'm saying.

00:59:48 ◼   ► If you said this is just marketing

00:59:50 ◼   ► and not developer relations,

00:59:52 ◼   ► but it was all in the same department,

00:59:53 ◼   ► maybe the questions were just bad.

00:59:54 ◼   ► Maybe you felt like the questions should have been asking

00:59:56 ◼   ► you more about the stuff that you wrote about

00:59:58 ◼   ► in the summary thing at the end,

01:00:00 ◼   ► instead of just asking you how you advertise

01:00:03 ◼   ► your applications to people.

01:00:05 ◼   ► Was there questions about like,

01:00:06 ◼   ► how do you deal with the reviews on the site?

01:00:08 ◼   ► You should just post a full survey

01:00:09 ◼   ► so we can all look at the questions.

01:00:11 ◼   ► - Yeah, I'll go back.

01:00:12 ◼   ► I think I got like five or six of these links

01:00:14 ◼   ► and I didn't even check to see like what emails

01:00:16 ◼   ► they were going to,

01:00:17 ◼   ► but maybe I'll go back and screenshot every page.

01:00:19 ◼   ► But it's excessively boring.

01:00:21 ◼   ► Like it's really, it's extremely dull

01:00:24 ◼   ► and it is really mostly a marketing survey.

01:00:28 ◼   ► I don't think the purpose of this was what you're saying.

01:00:31 ◼   ► However, there was something interesting I think

01:00:36 ◼   ► posted a few days ago on December 30th

01:00:39 ◼   ► to the developer news feeds.

01:00:40 ◼   ► Here, I'm pasting the link in the chat here.

01:00:41 ◼   ► You gotta look at this.

01:00:43 ◼   ► I don't know if you guys caught this.

01:00:45 ◼   ► I was away on vacation so I didn't blog about it yet

01:00:49 ◼   ► but which might be the point.

01:00:51 ◼   ► If you look at this, so this is a quick thing,

01:00:54 ◼   ► I'll just read it, it's pretty short.

01:00:55 ◼   ► It's a quick thing posted to the Apple developer news feed,

01:00:58 ◼   ► posted on December 30th, titled,

01:01:00 ◼   ► "Getting Help with App Reviews and Rejections."

01:01:04 ◼   ► So here's the entire text of it.

01:01:06 ◼   ► iTunes Connect is now available after the holiday shutdown.

01:01:08 ◼   ► Please remember, if you need to appeal an app rejection

01:01:11 ◼   ► or request that the review of your app be extradited,

01:01:13 ◼   ► the fastest way to get help is to contact

01:01:15 ◼   ► the app review team through the Contact Us form.

01:01:18 ◼   ► To view app rejection details and ask for clarification,

01:01:20 ◼   ► Visit Resolution Center in iTunes Connect.

01:01:22 ◼   ► We look forward to seeing the innovative new app

01:01:24 ◼   ► you'll create in 2015.

01:01:26 ◼   ► - We look forward to seeing them and maybe rejecting them.

01:01:29 ◼   ► - Right, so this I think is much more interesting

01:01:33 ◼   ► than the marketing survey.

01:01:35 ◼   ► What do you think this angle is?

01:01:39 ◼   ► I mean, I think this is hilarious.

01:01:40 ◼   ► And so I think this might be, I mean, obviously,

01:01:44 ◼   ► you have to read a lot through the tea leaves here.

01:01:47 ◼   ► It might be a thinly veiled threat,

01:01:49 ◼   ► But if you read it as if it's a threat, it kind of works.

01:01:54 ◼   ► - It says the fastest way though.

01:01:56 ◼   ► It doesn't say running to the press never helps anything

01:02:00 ◼   ► or whatever the phrase was.

01:02:01 ◼   ► And then the guidelines thing,

01:02:03 ◼   ► it is not as passive aggressive or as aggressive aggressive

01:02:05 ◼   ► as those things were.

01:02:07 ◼   ► It reads more like a reminder to like,

01:02:09 ◼   ► if there are developers out there

01:02:10 ◼   ► who don't know about the resolution center, I don't know.

01:02:12 ◼   ► - It's very easy to read this as a threat,

01:02:14 ◼   ► but I think this might,

01:02:16 ◼   ► and maybe this is just me being optimistic

01:02:18 ◼   ► about this kind of stuff.

01:02:19 ◼   ► I think this might be the kind of implied mea culpa

01:02:24 ◼   ► on some of the recent rejection crap.

01:02:25 ◼   ► I think this might be like,

01:02:27 ◼   ► hey guys, don't worry, we're getting this under control.

01:02:30 ◼   ► I don't know.

01:02:32 ◼   ► Maybe again, maybe that's unreasonably optimistic.

01:02:34 ◼   ► What do you think?

01:02:35 ◼   ► - I read it the same way that this is them saying,

01:02:39 ◼   ► all right, all right, all right, everyone relax,

01:02:42 ◼   ► everyone relax, just let us know.

01:02:45 ◼   ► We'll fix you up, it'll be okay.

01:02:48 ◼   ► But man, does it frustrate me that

01:02:52 ◼   ► Apple's so institutionally crotchety maybe?

01:02:55 ◼   ► I don't know.

01:02:56 ◼   ► Like why can't they just say,

01:02:57 ◼   ► "Hey guys, we've seen that there's been

01:03:01 ◼   ► some questionable choices on our part,

01:03:04 ◼   ► we're gonna fix it."

01:03:05 ◼   ► Like, is that so terrible?

01:03:06 ◼   ► Is being vulnerable really that bad?

01:03:11 ◼   ► I know it'll never happen, but.

01:03:13 ◼   ► - Step one, admit no wrongdoing.

01:03:15 ◼   ► - Yeah.

01:03:16 ◼   ► I mean, that's not Apple's MO.

01:03:18 ◼   ► They have admitted wrongdoing before.

01:03:20 ◼   ► Even when they think they aren't wrong, like Antennagate,

01:03:22 ◼   ► everyone gets a free bumper,

01:03:23 ◼   ► even though we think it's not a problem or whatever.

01:03:26 ◼   ► But in general, this specific part of Apple, App Review,

01:03:30 ◼   ► does not admit wrongdoing.

01:03:32 ◼   ► In the whole, we'll reject your app,

01:03:35 ◼   ► and then you'll make a big fuss about it,

01:03:37 ◼   ► and then we'll accept it.

01:03:38 ◼   ► And then that cycle happens,

01:03:40 ◼   ► and there's never a part where Apple comes out

01:03:42 ◼   ► and sort of bears its soul and says,

01:03:46 ◼   ► "We've thought about this and we've..."

01:03:48 ◼   ► The admission of wrongdoing, I guess,

01:03:51 ◼   ► is okay, now your app is back in the store,

01:03:53 ◼   ► but it's like, this isn't a systemic problem.

01:03:56 ◼   ► This is a one-off case that just didn't happen to go right.

01:03:58 ◼   ► And it being in the press has nothing to do

01:04:00 ◼   ► with it getting fixed.

01:04:01 ◼   ► It's just one of those things that happens

01:04:03 ◼   ► and oh well, it got fixed and don't worry about it.

01:04:05 ◼   ► And it just happens repeatedly over and over again.

01:04:06 ◼   ► And there's never any sort of public acknowledgement

01:04:09 ◼   ► that this might be a thing and not just like,

01:04:11 ◼   ► "Well, those things just happen sometimes."

01:04:13 ◼   ► And that's what frustrates people so much

01:04:15 ◼   ► that that part of the organization is A,

01:04:17 ◼   ► so different than individual Apple employees,

01:04:19 ◼   ► which as we all know are human beings

01:04:21 ◼   ► and are actually forthcoming.

01:04:22 ◼   ► And B, it's not like the larger corporation

01:04:25 ◼   ► in terms of when they make design mistakes

01:04:27 ◼   ► or when they have large scale problems

01:04:31 ◼   ► like the labor difficulties in China,

01:04:34 ◼   ► the diversity within the organization,

01:04:35 ◼   ► things that Apple has fallen on its face about,

01:04:38 ◼   ► and they come back and say,

01:04:40 ◼   ► "We're not doing well enough on diversity."

01:04:42 ◼   ► Where Greenpeace yelled at them

01:04:43 ◼   ► and they thought it was unfair that they got yelled at,

01:04:44 ◼   ► but you know, we are gonna make that stuff better.

01:04:46 ◼   ► Before we were worse at it, now we're better.

01:04:47 ◼   ► Labor practices, we're gonna try to be more transparent.

01:04:50 ◼   ► We're gonna do it, you know,

01:04:51 ◼   ► all those are situations where Apple did something wrong

01:04:53 ◼   ► and it's publicly trying to do it better

01:04:55 ◼   ► by admitting that the past was bad,

01:04:57 ◼   ► the present is bad, and they're trying to get better.

01:04:59 ◼   ► But there's never anything like that

01:05:00 ◼   ► having to do with App Store review, at least not public.

01:05:02 ◼   ► - No, well, 'cause again, this is all under Schiller.

01:05:04 ◼   ► I mean, if you think about the kind of public persona

01:05:08 ◼   ► Schiller shows. I mean I don't know anything about the guy, you know, non-publicly, but

01:05:12 ◼   ► what he shows publicly, he is kind of like this, you know, terse, quiet guy who doesn't

01:05:18 ◼   ► appear to be ever having any fun. I mean even like, even in his presentation in the last

01:05:23 ◼   ► few years, is it just me or does he just kind of seem angry? Like it's, it doesn't,

01:05:29 ◼   ► you don't get, like if you look at this person knowing he's the one in charge of

01:05:32 ◼   ► this organization and knowing that he does have a lot of direct involvement with some

01:05:35 ◼   ► these decisions, it's no wonder that the attitude we get

01:05:39 ◼   ► is just a brick wall with occasional terse-ness coming out

01:05:42 ◼   ► and not really openness or friendliness,

01:05:45 ◼   ► because that appears to be the public persona

01:05:46 ◼   ► Phil Schiller shows.

01:05:48 ◼   ► - That's not Tim Cook at all though.

01:05:50 ◼   ► - No. - Like Tim Cook's persona,

01:05:51 ◼   ► and I think Tim Cook's persona has been infecting more

01:05:54 ◼   ► and more of the sort of higher level, entire corporation,

01:05:57 ◼   ► Apple stuff, it's just that this is a corner

01:05:58 ◼   ► of the corporation, so the entire corporation is diversity,

01:06:02 ◼   ► labor practices, finances, you know, the environment, that is big picture stuff, human resources,

01:06:09 ◼   ► like charity, all that stuff, that is big, big picture. Hopefully that will be filtering

01:06:15 ◼   ► down to the smaller thing. And of course, like the, you know, the whole management reshuffle

01:06:19 ◼   ► and collaboration is more important and unifying things under Johnny Ive, but it just that

01:06:24 ◼   ► that influence and that tone seems not to have made a Tapper view yet.

01:06:27 ◼   ► - No, I mean, I honestly, as long as Phil Schiller

01:06:31 ◼   ► is in charge of the division that App Review was under,

01:06:34 ◼   ► I don't foresee any major changes in this area.

01:06:37 ◼   ► Because I really do think it goes to him,

01:06:39 ◼   ► and I think he's the one who is in control to fix this,

01:06:44 ◼   ► and seems to believe that the way they're doing it

01:06:46 ◼   ► is the correct way to do it.

01:06:48 ◼   ► - Yeah, I don't know.

01:06:51 ◼   ► Part of the reason that we all love Apple

01:06:52 ◼   ► is because everything is so secretive and interesting,

01:06:56 ◼   ► and you never know what's going to come next.

01:06:58 ◼   ► But I don't know.

01:06:58 ◼   ► I feel like holding onto that apple

01:07:01 ◼   ► is perhaps not the right approach anymore.

01:07:04 ◼   ► They're not the underdog.

01:07:06 ◼   ► They're not the apple they once were,

01:07:09 ◼   ► and they're bigger than they once were.

01:07:10 ◼   ► And it's probably unfair for me to prescribe

01:07:13 ◼   ► what Apple should do from my chair here, the other coast,

01:07:17 ◼   ► but I'm not going to let that stop me.

01:07:20 ◼   ► It just seems like, can't we get a little more feedback?

01:07:23 ◼   ► And all I keep reflecting on,

01:07:24 ◼   ► and I'm not the first person to realize this,

01:07:26 ◼   ► is that when we all left WWDC this year,

01:07:29 ◼   ► we were all so amped up and so excited and so reinvigorated.

01:07:33 ◼   ► And then I feel like six months later, we're all grumpy again.

01:07:37 ◼   ► Maybe it's just because we are all grumpy people in general.

01:07:40 ◼   ► But I don't think so.

01:07:41 ◼   ► I think we really were excited about all this stuff

01:07:43 ◼   ► and how open they seem to be becoming

01:07:46 ◼   ► and how they seem to be listening to us.

01:07:49 ◼   ► And now, six months later, it's like, oh, we're

01:07:53 ◼   ► back in this same dull grind that we're always in.

01:07:57 ◼   ► And that's just not a fun place to be, it's just not.

01:08:01 ◼   ► And part of the reason that we're all so attracted

01:08:03 ◼   ► to this environment and attracted to writing apps

01:08:06 ◼   ► for this platform is because it's fun.

01:08:09 ◼   ► And God, are they working hard to suck the fun out of it.

01:08:12 ◼   ► - Yeah, I feel right now about Apple development

01:08:15 ◼   ► the way Phil Schiller sounds on stage

01:08:17 ◼   ► at the most recent keynotes.

01:08:19 ◼   ► - Completely unamused and bored.

01:08:21 ◼   ► - Yeah, just kind of going through the motions,

01:08:23 ◼   ► kind of almost angry.

01:08:26 ◼   ► The mood has shifted from the Craig Federighi

01:08:29 ◼   ► that we saw at WBCC showing us all the cool,

01:08:32 ◼   ► new technical stuff to the marketing hammer being dropped

01:08:37 ◼   ► and saying, "Nope, this is how things should be.

01:08:39 ◼   ► "This is not how things should be, period."

01:08:41 ◼   ► And back to old school.

01:08:42 ◼   ► I mean, look, Phil is old school Apple.

01:08:44 ◼   ► He was under jobs, he's been there for a very long time.

01:08:46 ◼   ► Like, he is, he represents that attitude at Apple.

01:08:50 ◼   ► and you look at the leadership,

01:08:52 ◼   ► Ben Thompson talked a lot about this,

01:08:53 ◼   ► a lot of the other leadership has changed.

01:08:55 ◼   ► He's one of the oldest SVPs there now,

01:08:57 ◼   ► or longest running at least.

01:08:58 ◼   ► And I really do think this is how this department is run,

01:09:03 ◼   ► this is how he thinks is the right way to do it, clearly,

01:09:07 ◼   ► otherwise he wouldn't be doing it this way.

01:09:08 ◼   ► I mean, he has enough power in the company,

01:09:09 ◼   ► he could change it if he wanted to,

01:09:10 ◼   ► so we know that this is how they think

01:09:12 ◼   ► they should be running the company,

01:09:13 ◼   ► or this division rather.

01:09:15 ◼   ► So obviously, this goes to Phil, this is all under Phil.

01:09:20 ◼   ► Phil is the guy who's responsible for this being this way

01:09:22 ◼   ► and the guy who could change it if he wanted to,

01:09:24 ◼   ► but he doesn't want to.

01:09:26 ◼   ► And maybe this, look, it seems to be working okay.

01:09:28 ◼   ► Again, like, you know, as you said,

01:09:29 ◼   ► who are we to say what they should do?

01:09:31 ◼   ► Obviously they're doing something right.

01:09:33 ◼   ► But certainly it's not right for developers.

01:09:36 ◼   ► It is right for Apple, probably, maybe.

01:09:38 ◼   ► Long-term it's questionable,

01:09:40 ◼   ► but it is right for them for now.

01:09:42 ◼   ► It benefits their users in certain ways, but not others.

01:09:45 ◼   ► But you know, overall it's probably a benefit.

01:09:47 ◼   ► But yeah, you're right.

01:09:48 ◼   ► I mean, the overall attitude is pretty negative

01:09:51 ◼   ► and it's pretty stifling.

01:09:52 ◼   ► And I think that ultimately is what is gonna cause

01:09:57 ◼   ► possible long-term problems for Apple.

01:09:59 ◼   ► They really do depend on developers

01:10:02 ◼   ► to push the boundaries forward with their platforms.

01:10:05 ◼   ► And not just the phone, but especially the iPad,

01:10:08 ◼   ► and probably also in the future, the watch.

01:10:11 ◼   ► They need us to make reasons

01:10:14 ◼   ► for people to buy these things.

01:10:15 ◼   ► The phone is an easy success

01:10:17 ◼   ► because it's a really good smartphone

01:10:19 ◼   ► and everybody buys a smartphone.

01:10:20 ◼   ► They're subsidized in so much of the world.

01:10:22 ◼   ► Everyone has decided they need one.

01:10:24 ◼   ► I mean, smartphones are this magical business

01:10:26 ◼   ► where everyone buys them

01:10:27 ◼   ► because they just provide so much utility

01:10:30 ◼   ► and everyone is willing to spend whatever it takes

01:10:33 ◼   ► as long as they can,

01:10:34 ◼   ► which is a lot of people these days

01:10:36 ◼   ► 'cause they're so cheap.

01:10:37 ◼   ► They're willing to do it because smartphones are just,

01:10:40 ◼   ► so they're ubiquitous.

01:10:41 ◼   ► So the question isn't do I buy a smartphone?

01:10:44 ◼   ► The question is which smartphone do I buy?

01:10:46 ◼   ► and so they can compete well there.

01:10:47 ◼   ► If you look at the iPad, the iPad is like, it's optional.

01:10:51 ◼   ► It's an accessory for most people.

01:10:52 ◼   ► It's a luxury, it's an extravagance, it's a fun device.

01:10:57 ◼   ► It is usually not your primary computer,

01:10:59 ◼   ► and usually most people don't say, I need to have an iPad,

01:11:02 ◼   ► it's only a question of which, or rather,

01:11:04 ◼   ► I need to have a tablet, it's only a question

01:11:06 ◼   ► of which one do I buy.

01:11:07 ◼   ► No, it's just an extra.

01:11:09 ◼   ► The watch is gonna be that same thing.

01:11:11 ◼   ► Most people, I don't think, wear watches,

01:11:13 ◼   ► and certainly the ones who do wear watches today,

01:11:16 ◼   ► I don't think it's an obvious thing to say,

01:11:17 ◼   ► well, I have to get a smartwatch.

01:11:19 ◼   ► Like, I think the watch is gonna have

01:11:21 ◼   ► the exact same challenge that the iPad has

01:11:23 ◼   ► of it's going to have to justify its purchase.

01:11:25 ◼   ► It is coming from zero.

01:11:27 ◼   ► It is not gonna be like a phone

01:11:28 ◼   ► where they just have to pull people into the store

01:11:31 ◼   ► who are already buying their phone anyway.

01:11:33 ◼   ► The watch is gonna be like,

01:11:35 ◼   ► you have to tell me why I want this.

01:11:37 ◼   ► And so much of that rests on what developers do,

01:11:40 ◼   ► what apps are out there.

01:11:42 ◼   ► so many people end up buying these devices

01:11:45 ◼   ► because of one or a very small number of specific apps

01:11:49 ◼   ► that run on them.

01:11:50 ◼   ► And if developers keep getting marginalized

01:11:53 ◼   ► and restricted too severely,

01:11:56 ◼   ► it's very hard for us to push those platforms forward.

01:11:59 ◼   ► It's very, and it becomes less likely

01:12:02 ◼   ► that the next big thing is gonna be on iOS.

01:12:05 ◼   ► And how does that help Apple?

01:12:07 ◼   ► - Yeah, I agree.

01:12:08 ◼   ► And I think perhaps the most obvious

01:12:10 ◼   ► and specific example of this is watching everyone's reactions to WatchKit.

01:12:18 ◼   ► And a lot of popular developers, and I wish I could think of a specific person,

01:12:22 ◼   ► but I can't off the top of my head, but a lot of big developers have said,

01:12:25 ◼   ► "Yeah, it looks cool, but yeah, I'm going to wait and see how this shakes out

01:12:30 ◼   ► before I do anything real." And that is a different reaction than I remember

01:12:35 ◼   ► ever having seen before. Like when the iPad came out, if nothing else,

01:12:40 ◼   ► everyone said, "Holy crap, I'm going to make an iPad app

01:12:43 ◼   ► "so I can be a part of the gold rush."

01:12:45 ◼   ► Where now, I'm hearing a lot of really popular developers

01:12:49 ◼   ► say, "Well, we'll see how it goes."

01:12:52 ◼   ► And that's not where Apple wants to be.

01:12:55 ◼   ► - Right, and like what Apple has shown this fall

01:12:58 ◼   ► with all the iOS hate stuff and all the crazy rejections,

01:13:00 ◼   ► racing forward to be first to market

01:13:03 ◼   ► is not necessarily a good idea.

01:13:05 ◼   ► And that's, I think that feeds into this.

01:13:08 ◼   ► And now we're seeing WatchKit,

01:13:10 ◼   ► We know it's gonna be a new device.

01:13:11 ◼   ► It's very restrictive with what you can do upfront.

01:13:15 ◼   ► There are gonna be more capabilities added over time,

01:13:16 ◼   ► but all the crazy policies and rejections

01:13:19 ◼   ► that we've seen for iOS so far,

01:13:23 ◼   ► the watch is gonna have its own set of those.

01:13:24 ◼   ► It's gonna reset from zero.

01:13:26 ◼   ► It's gonna have an entirely new set

01:13:28 ◼   ► of weird decisions Apple has to make,

01:13:31 ◼   ► many of which the developer community will disagree with

01:13:34 ◼   ► and bloggers will get angry about.

01:13:36 ◼   ► We're gonna start over.

01:13:37 ◼   ► We're starting from scratch here.

01:13:38 ◼   ► And all the same people who caused all this stuff

01:13:40 ◼   ► with iOS rejection so far this fall,

01:13:43 ◼   ► they're all still making the decisions,

01:13:45 ◼   ► they're all still making the calls.

01:13:46 ◼   ► And so the same system's in place,

01:13:48 ◼   ► it's gonna have the same problems with this new platform.

01:13:51 ◼   ► The only question is, will the watch sell enough?

01:13:53 ◼   ► And so, we're all here because A,

01:13:58 ◼   ► most iOS developers, if not all iOS developers,

01:14:01 ◼   ► use iOS devices themselves.

01:14:04 ◼   ► These are the devices we choose to have.

01:14:05 ◼   ► So that makes us already right there

01:14:08 ◼   ► encouraged to develop for them.

01:14:10 ◼   ► And then secondarily, although it's a matter

01:14:12 ◼   ► more for your big company, there's so many of them out there

01:14:15 ◼   ► they sell so ridiculously well that it's just a good

01:14:19 ◼   ► business idea to target them in many cases,

01:14:21 ◼   ► or in most cases.

01:14:22 ◼   ► The watch we don't know yet.

01:14:24 ◼   ► The watch, we don't know if developers are gonna end up

01:14:27 ◼   ► loving them, or if it's gonna end up being like

01:14:29 ◼   ► what a lot of us say about the iPad, which is like,

01:14:31 ◼   ► "Eh, I don't really use it that much ever, you know,

01:14:33 ◼   ► "ever since the big phones came out or whatever."

01:14:35 ◼   ► We also don't know if they're gonna sell very well.

01:14:37 ◼   ► That's a big question mark right now.

01:14:39 ◼   ► They might sell like crazy.

01:14:41 ◼   ► They might be blockbusters,

01:14:42 ◼   ► and we might be looking back at this episode in six months

01:14:45 ◼   ► and laughing at how pessimistic we might have been

01:14:49 ◼   ► or how much we might have underestimated

01:14:50 ◼   ► how much they would sell.

01:14:52 ◼   ► Or they just might not sell that well for a while, if ever,

01:14:55 ◼   ► and we don't know.

01:14:57 ◼   ► And because of the attitude

01:15:01 ◼   ► that they have shown developers,

01:15:03 ◼   ► I mean, since the beginning of the App Store, really,

01:15:06 ◼   ► that's not a new thing,

01:15:06 ◼   ► especially because of the recent mood among the community

01:15:10 ◼   ► of all of this chilling effect coming

01:15:13 ◼   ► from all these rejections,

01:15:15 ◼   ► I think that makes us even less excited

01:15:18 ◼   ► to jump into this unknown, this big question mark.

01:15:21 ◼   ► So again, this is why I'm saying,

01:15:24 ◼   ► the timing of these things is terrible.

01:15:26 ◼   ► The timing of all these really frivolous

01:15:28 ◼   ► or weird capricious rejections is just awful

01:15:32 ◼   ► because this is when Apple needs all the enthusiasm

01:15:35 ◼   ► that they earned this past summer.

01:15:39 ◼   ► They need that enthusiasm now for all of us

01:15:41 ◼   ► to start building cool stuff for the watch

01:15:44 ◼   ► to increase the chances of them selling lots of watches.

01:15:47 ◼   ► And instead, they've totally burned so much of that

01:15:50 ◼   ► with these rejections, and again, for what?

01:15:53 ◼   ► For what was the benefit there?

01:15:56 ◼   ► - Well, when I think of what the pointy head boss

01:15:57 ◼   ► would say to all that, they would say,

01:15:59 ◼   ► "It's just these weird indie developer blogger things

01:16:02 ◼   ► "that are angry at us.

01:16:04 ◼   ► "Starbucks is gonna have a watch app.

01:16:05 ◼   ► Weight Watchers will have one, Nike will have one,

01:16:08 ◼   ► JetBlue will have one.

01:16:10 ◼   ► They just go through all these big name brands

01:16:11 ◼   ► and like, "Oh, my relationships

01:16:13 ◼   ► with those other C-level executives is awesome

01:16:15 ◼   ► and we drive our Lamborghinis down to the golf course

01:16:17 ◼   ► and have golf all the time.

01:16:17 ◼   ► They're totally making watch kit apps.

01:16:19 ◼   ► Who cares if the bunch of these hipster people in Portland

01:16:23 ◼   ► aren't gonna make a watch app right away?

01:16:24 ◼   ► They'll make one after the other apps are out.

01:16:26 ◼   ► We don't care as long as we can say

01:16:27 ◼   ► that there's a Walmart app on our watch

01:16:29 ◼   ► and that's all that matters.

01:16:30 ◼   ► I mean, you go past a Starbucks,

01:16:31 ◼   ► it'll bleep a little thing that'll give you a discount

01:16:34 ◼   ► and you can get a coffee.

01:16:35 ◼   ► Like that's the point you heard, boss, like dystopian scenario, the idea that, you know,

01:16:39 ◼   ► the people, the things that we care about, you know, argument would be like, yeah, but

01:16:43 ◼   ► these little guys tend to make the most interesting things.

01:16:46 ◼   ► You're not going to get a really super innovative app coming out of Starbucks or anything for

01:16:49 ◼   ► your watch.

01:16:50 ◼   ► We agree that Starbucks has to be there, right?

01:16:52 ◼   ► You need that on your watch.

01:16:53 ◼   ► You need like, you need a Twitter app, you need to whatever, like whatever.

01:16:56 ◼   ► You need the big names, but you also need this other community.

01:16:59 ◼   ► And from their perspective, it might be, well, the other community is annoying and they bother

01:17:02 ◼   ► and they say mean things on websites about us.

01:17:04 ◼   ► And Starbucks never does that.

01:17:06 ◼   ► And we're gonna have them and you better get on board.

01:17:08 ◼   ► And if you don't wanna have your app there on day one,

01:17:10 ◼   ► a million people writing applications,

01:17:13 ◼   ► all those people who make all those clone free to play

01:17:15 ◼   ► or rip off applications,

01:17:16 ◼   ► they're all gonna be at the watch on day one

01:17:18 ◼   ► 'cause that's their whole freaking business.

01:17:19 ◼   ► They make a million clone copyright violating apps

01:17:23 ◼   ► until they get pulled from the store

01:17:24 ◼   ► and it's just the shotgun approach

01:17:26 ◼   ► and they're all gonna be all over the watch.

01:17:27 ◼   ► So we're gonna have huge numbers

01:17:29 ◼   ► that we can put up on slides and we show a big pie chart.

01:17:31 ◼   ► look how many apps the watch has already, you know,

01:17:33 ◼   ► because every app is created equal

01:17:35 ◼   ► when it comes to stats on slides, right?

01:17:37 ◼   ► And we have all these big names,

01:17:39 ◼   ► and let's put up the logos

01:17:40 ◼   ► of a bunch of Fortune 500 companies.

01:17:42 ◼   ► And the fact that Panic isn't on there

01:17:43 ◼   ► because Panic was afraid about putting a watch thing

01:17:46 ◼   ► 'cause they wanted to take a wait and see attitude,

01:17:47 ◼   ► nobody in the audience cares,

01:17:49 ◼   ► and we at Apple don't care, and if you care, boo hoo.

01:17:51 ◼   ► - That's true, however, it's only a matter of time

01:17:56 ◼   ► before the next Instagram, or the next Dodge,

01:18:00 ◼   ► the next Crossy Road isn't on iOS.

01:18:03 ◼   ► - I know, that's the argument we would make,

01:18:04 ◼   ► is like, if you're expecting,

01:18:06 ◼   ► you don't know where the next innovation's coming from,

01:18:08 ◼   ► and it's probably not gonna come from Fortune 500 company,

01:18:10 ◼   ► it's probably gonna come from one of these little random,

01:18:12 ◼   ► that you never know where it's gonna come from.

01:18:14 ◼   ► Somebody you've never even heard of.

01:18:15 ◼   ► Who heard of the guy who made Flappy Bird?

01:18:17 ◼   ► Who heard of the people who made Crossy Road

01:18:19 ◼   ► until they made, you know, like, that's argument for,

01:18:22 ◼   ► I'm not saying this is Apple's attitude,

01:18:23 ◼   ► I'm saying these are the two endpoints on this continuum.

01:18:27 ◼   ► And I don't know which endpoint is which.

01:18:28 ◼   ► for all we know Apple is totally on board

01:18:30 ◼   ► with what we're saying.

01:18:31 ◼   ► They're like, you've got to, you know,

01:18:32 ◼   ► and they're having this internal debate.

01:18:33 ◼   ► Or there's somebody in power at Apple

01:18:35 ◼   ► who's on the pointy haired boss side or whatever.

01:18:37 ◼   ► We're like, again, with an information vacuum,

01:18:39 ◼   ► you can, if you're in a bad mood,

01:18:40 ◼   ► you imagine that pointy haired boss side.

01:18:42 ◼   ► And if you're a good mood,

01:18:43 ◼   ► you imagine all the good people at Apple

01:18:44 ◼   ► fighting the good fight and just

01:18:46 ◼   ► haven't quite gotten their acts together yet.

01:18:48 ◼   ► - Right, and as a quick little side note,

01:18:50 ◼   ► I'm really curious to see what happens

01:18:52 ◼   ► with WatchKit and games.

01:18:54 ◼   ► Because WatchKit is really not designed for games,

01:18:58 ◼   ► pretty clearly.

01:19:00 ◼   ► And so when they do the native SDK,

01:19:01 ◼   ► which they say later next year,

01:19:03 ◼   ► which people have been assuming that means WBC next year,

01:19:08 ◼   ► I actually think that might be too early.

01:19:10 ◼   ► I would guess next winter,

01:19:12 ◼   ► just like a year from this year's watch kit,

01:19:15 ◼   ► which came out in November,

01:19:16 ◼   ► I'm guessing maybe next November we get that.

01:19:20 ◼   ► And next spring, like spring 2016,

01:19:24 ◼   ► new watches come out that can use it.

01:19:26 ◼   ► So anyway, that's just a guess.

01:19:28 ◼   ► But we don't know yet, like,

01:19:31 ◼   ► it sure looks like all of Watch Kit so far

01:19:34 ◼   ► was designed not only to not enable games,

01:19:36 ◼   ► but policy-wise to prohibit most of them.

01:19:39 ◼   ► - Well, but it'll have the most important gaming feature.

01:19:41 ◼   ► The most important gaming feature of the watch

01:19:43 ◼   ► is to tell you when gems are 50% off for the next one.

01:19:46 ◼   ► - That's unfortunately, God, that is true.

01:19:49 ◼   ► - That is the most important gaming feature of the watch,

01:19:51 ◼   ► and it will be supported,

01:19:53 ◼   ► because that is the one thing you're able to do,

01:19:54 ◼   ► is send up a little notification with a button

01:19:56 ◼   ► and then you press the mix, you know,

01:19:58 ◼   ► and that's all they care about.

01:19:59 ◼   ► - God, games today are terrible.

01:20:01 ◼   ► But you know what's not terrible?

01:20:02 ◼   ► Our final sponsor, it is Squarespace.

01:20:06 ◼   ► They are back.

01:20:07 ◼   ► Go to squarespace.com and check it out.

01:20:09 ◼   ► They have recently, this past fall,

01:20:11 ◼   ► unveiled a ton of new features

01:20:13 ◼   ► and a giant redesign with Squarespace 7.

01:20:16 ◼   ► It's a new interface, 15 new templates,

01:20:18 ◼   ► and so much more than that.

01:20:20 ◼   ► It now integrates with Google Apps.

01:20:21 ◼   ► You can connect it to your Gmail,

01:20:23 ◼   ► Google Drive for iCloud storage,

01:20:25 ◼   ► Google Forms for surveys and much, much more.

01:20:28 ◼   ► They have now partnered with Getty Images,

01:20:29 ◼   ► so you can actually buy and use,

01:20:33 ◼   ► like I forget the number, it was like a few hundred thousand

01:20:35 ◼   ► or a couple million images, all from Getty Images

01:20:38 ◼   ► right there in Squarespace for just 10 bucks once.

01:20:40 ◼   ► You just pay 10 bucks an image

01:20:42 ◼   ► and you can embed it as your header, your template,

01:20:44 ◼   ► your background, in a blog post.

01:20:46 ◼   ► If you need a nice high quality legal stock photo,

01:20:50 ◼   ► you can get all that right there.

01:20:51 ◼   ► And honestly, I've bought stock photos before

01:20:53 ◼   ► for the magazine and Getty was always

01:20:55 ◼   ► my favorite place to get them.

01:20:57 ◼   ► You can take care of all your stock image needs

01:20:59 ◼   ► in the same place you manage your site

01:21:01 ◼   ► right from the Squarespace interface.

01:21:02 ◼   ► I saw a demo of this feature at the launch event.

01:21:05 ◼   ► It's fully integrated, it's beautiful, it's simple,

01:21:08 ◼   ► exactly what you'd expect from Squarespace.

01:21:10 ◼   ► And of course, Squarespace has their classic features.

01:21:12 ◼   ► They have all the beautiful designs

01:21:14 ◼   ► with simple yet powerful interfaces.

01:21:17 ◼   ► They have 24/7 support via live chat and email.

01:21:20 ◼   ► Their designs are all responsive

01:21:22 ◼   ► But now what's even cooler about the new design, if you shrink the browser window down, it

01:21:27 ◼   ► will actually show you, it will simulate an iPhone or an iPad sized screen on the right.

01:21:32 ◼   ► So you don't have to actually go test on an iPhone or try to get your browser all the

01:21:36 ◼   ► way down to 300 pixels wide.

01:21:38 ◼   ► You can just do it right there, you can preview it right there in the interface.

01:21:41 ◼   ► It's all what you see is what you get.

01:21:44 ◼   ► It's really impressive that they did all this in a web app.

01:21:47 ◼   ► Anyway, they also have commerce capabilities.

01:21:49 ◼   ► If you want to integrate a store with your website, you can do that at no additional

01:21:52 ◼   ► charge.

01:21:53 ◼   ► All of this starts at just $8 a month and if you buy a whole year up front you get a

01:21:58 ◼   ► free domain name with that as well.

01:22:00 ◼   ► So start a trial today, no credit card required.

01:22:03 ◼   ► It's a real free trial, you don't have to enter a credit card, you can just start doing

01:22:07 ◼   ► it and you can build a website, I believe it's a week.

01:22:11 ◼   ► It's a good trial.

01:22:13 ◼   ► Anyway, start a free trial today with no credit card required.

01:22:16 ◼   ► Start building your website today.

01:22:18 ◼   ► and you decide to sign up for Squarespace,

01:22:20 ◼   ► make sure to use the offer code ATP,

01:22:22 ◼   ► that is offer code ATP, to get 10% off your first purchase

01:22:26 ◼   ► and to show your support for our show.

01:22:27 ◼   ► Thank you very much to Squarespace

01:22:29 ◼   ► for sponsoring our show once again.

01:22:31 ◼   ► - So to end on a potentially happier note, I hope,

01:22:35 ◼   ► last week we had made mention of you having new thoughts

01:22:38 ◼   ► on the iPad and then we genuinely just didn't get a chance

01:22:42 ◼   ► to talk about it.

01:22:43 ◼   ► So would you like to talk about your new thoughts

01:22:46 ◼   ► on your new iPad?

01:22:48 ◼   ► Do you want me to talk this whole episode?

01:22:49 ◼   ► I mean, I can, but I feel kind of bad

01:22:51 ◼   ► monopolizing the whole show.

01:22:52 ◼   ► - Whatever, nothing else is going on.

01:22:53 ◼   ► - I'll interrupt you and tell you

01:22:55 ◼   ► why you're wrong about it, so go ahead.

01:22:56 ◼   ► - Perfect, okay.

01:22:57 ◼   ► (laughing)

01:22:59 ◼   ► I would ask nothing less.

01:23:00 ◼   ► All right, so I was very impressed

01:23:05 ◼   ► with the iPad Air 2's spec upgrade this year.

01:23:08 ◼   ► And we bought one as a gift for a family member,

01:23:12 ◼   ► and as I was playing with them in the store,

01:23:16 ◼   ► I was really, really won over by it.

01:23:18 ◼   ► because so for the last couple,

01:23:19 ◼   ► the last full size iPad I bought was the iPad 3.

01:23:22 ◼   ► I skipped the 4 and the Air 1.

01:23:24 ◼   ► And I bought both iPad minis,

01:23:29 ◼   ► the first terrible one and then the first Retina one.

01:23:33 ◼   ► The iPad 3 and the two iPad minis made me hate the iPad

01:23:38 ◼   ► because the iPad 3 was, I love the Retina screen so much,

01:23:43 ◼   ► but it was so heavy.

01:23:47 ◼   ► It also had weird performance characteristics

01:23:49 ◼   ► because it had boosted the GPUs

01:23:53 ◼   ► to deal with the extra pixels,

01:23:54 ◼   ► but it didn't boost the CPUs.

01:23:56 ◼   ► So any kind of CPU-bound graphics operation

01:23:59 ◼   ► or process was very slow on them.

01:24:03 ◼   ► So it was very weird for that.

01:24:04 ◼   ► It was also, the iPad 3 ran warm,

01:24:07 ◼   ► and it was a whole thing.

01:24:09 ◼   ► - I still use mine every day and love it, go on.

01:24:10 ◼   ► - Perfect, okay.

01:24:12 ◼   ► iPad Mini 1 comes out.

01:24:14 ◼   ► It instantly ruined the iPad 3 for me

01:24:16 ◼   ► because it's so much smaller and lighter.

01:24:19 ◼   ► It makes the iPad 3 seem like this giant boat.

01:24:22 ◼   ► It's such a massive difference.

01:24:24 ◼   ► But the screen on the iPad Mini 1 is so terrible

01:24:27 ◼   ► 'cause it's non-retina.

01:24:28 ◼   ► It was just a miserable experience.

01:24:31 ◼   ► I would look at that and I would say,

01:24:34 ◼   ► man, this is the great form factor.

01:24:36 ◼   ► I love this form factor, I think,

01:24:37 ◼   ► but man, this screen is so bad.

01:24:39 ◼   ► And then I'd try to look at something on my iPad 3

01:24:42 ◼   ► and it was so big and heavy.

01:24:45 ◼   ► So it was like the worst of both worlds.

01:24:47 ◼   ► I thought the Retina Mini would solve this problem.

01:24:49 ◼   ► - It does.

01:24:50 ◼   ► - For you.

01:24:51 ◼   ► But you don't even call it that,

01:24:53 ◼   ► you call it the Retina Pad Mini, right?

01:24:54 ◼   ► - That's right.

01:24:55 ◼   ► - Right, so, sorry Steven.

01:24:58 ◼   ► I thought that would do it.

01:24:59 ◼   ► And what I found instead was that

01:25:02 ◼   ► the Retina Mini had two main issues for me.

01:25:05 ◼   ► Number one is that the screen is not as good

01:25:07 ◼   ► as the Air One screen, which Tiff has.

01:25:09 ◼   ► It is a lower end device in some ways.

01:25:13 ◼   ► and there are small ways, but it is noticeable

01:25:16 ◼   ► and the screen, the color isn't as good

01:25:19 ◼   ► and you can really tell.

01:25:20 ◼   ► The second thing is that all the people

01:25:23 ◼   ► who went through the progression of full size iPad

01:25:25 ◼   ► to iPad mini and then to a new phone this year

01:25:29 ◼   ► and a lot of them are saying, oh, I haven't touched iPad

01:25:32 ◼   ► since I got my iPhone 6 or 6 Plus

01:25:34 ◼   ► or something similar to that.

01:25:36 ◼   ► The iPad is never gonna be always with you

01:25:39 ◼   ► unless you have really giant pockets year round

01:25:42 ◼   ► but that's unlikely for most people or a purse maybe.

01:25:45 ◼   ► Even then, I know a lot of people with purses,

01:25:47 ◼   ► none of them carry an iPad in all the time.

01:25:50 ◼   ► The iPad is always gonna be a secondary device.

01:25:53 ◼   ► It's never gonna be always in your pocket

01:25:54 ◼   ► the way a phone is.

01:25:56 ◼   ► The things an iPad is better at,

01:25:58 ◼   ► or the things that I enjoy more on the iPad,

01:26:01 ◼   ► all need the full-size screen.

01:26:04 ◼   ► They all need the 9.7 inch screen,

01:26:06 ◼   ► or at least they're better on it.

01:26:08 ◼   ► What I found, so what I found having,

01:26:11 ◼   ► when I finally got the mini that had a decent enough screen,

01:26:14 ◼   ► what I found is that the things I would do on an iPad,

01:26:18 ◼   ► I wasn't enjoying them as much.

01:26:19 ◼   ► They weren't as good,

01:26:20 ◼   ► they weren't as much better than on the phone

01:26:23 ◼   ► because they all benefited from having larger screens.

01:26:27 ◼   ► And so this smaller one,

01:26:29 ◼   ► even though it was the same resolution,

01:26:31 ◼   ► it just wasn't as good,

01:26:33 ◼   ► it wasn't as much better than the phone.

01:26:34 ◼   ► The difference between the iPad and the phone got smaller,

01:26:37 ◼   ► at least the enjoyment of it for me.

01:26:40 ◼   ► Again, this is all for me.

01:26:41 ◼   ► This is all very much an opinion, not a fact piece here.

01:26:44 ◼   ► So, please bear with me.

01:26:46 ◼   ► Anyway, so this year I was so wowed by the iPad Air 2

01:26:51 ◼   ► in so many ways, most notably the size and weight,

01:26:56 ◼   ► but also just the screen is really, really nice.

01:26:59 ◼   ► It's, you know, they did some new stuff

01:27:00 ◼   ► with how the pixels are glued on or whatever,

01:27:02 ◼   ► and it's really, really nice.

01:27:04 ◼   ► The anti-reflective coating is minor, but also nice.

01:27:06 ◼   ► The speed is insane because it has that triple core chip

01:27:09 ◼   ► and the two gigs of RAM, so it's like,

01:27:11 ◼   ► this was a major upgrade to the iPad line.

01:27:14 ◼   ► The Air and Air 2 are both major upgrades.

01:27:16 ◼   ► I just skipped the Air 1.

01:27:18 ◼   ► So I decided, you know what, let me try it.

01:27:20 ◼   ► And let me also unload the notion

01:27:24 ◼   ► that I need to get every iPad for testing.

01:27:26 ◼   ► 'Cause here I am, I've already skipped two generations,

01:27:29 ◼   ► the 4 and the Air 1.

01:27:31 ◼   ► And as a developer of an iPad app, it didn't matter at all.

01:27:36 ◼   ► Even when I had Instapaper,

01:27:39 ◼   ► and even when I had the magazine,

01:27:40 ◼   ► both of those were much more heavily used on the iPad

01:27:43 ◼   ► than Overcast was.

01:27:45 ◼   ► I always thought, you know,

01:27:47 ◼   ► someone's gonna write it and say,

01:27:48 ◼   ► you know, this works really badly on my iPad 3.

01:27:51 ◼   ► You know, what's up?

01:27:53 ◼   ► Or this crashes on the iPad 3.

01:27:54 ◼   ► And I always thought, I better save all these iPads

01:27:57 ◼   ► and get every model because that way,

01:27:59 ◼   ► if somebody does this, then I'll be able to really,

01:28:02 ◼   ► you know, get in there and fix it.

01:28:04 ◼   ► In practice, that has literally never happened.

01:28:06 ◼   ► Not once.

01:28:07 ◼   ► has, in the entire time, developing Instapaper,

01:28:11 ◼   ► the magazine in Overcast,

01:28:13 ◼   ► which has been since the iPad launch,

01:28:14 ◼   ► I was there on day one with Instapaper,

01:28:16 ◼   ► so that entire time, throughout every iPad,

01:28:20 ◼   ► I have never had a single bug report or complaint

01:28:23 ◼   ► about something that was specific to any one iPad model.

01:28:26 ◼   ► So I think that's a bunch of crap.

01:28:29 ◼   ► I think that's something that developers tell themselves,

01:28:33 ◼   ► myself included, to either paranoia,

01:28:37 ◼   ► to keep existing iPads or justification

01:28:39 ◼   ► to buy all the new ones.

01:28:41 ◼   ► So that I can tell you if you're a developer,

01:28:42 ◼   ► if you've ever wondered about that,

01:28:44 ◼   ► it is probably unnecessary.

01:28:45 ◼   ► If you have a very high-end 3D game,

01:28:49 ◼   ► that might be different because the GPUs do vary a lot.

01:28:52 ◼   ► Other than high-end game developers,

01:28:55 ◼   ► I would say the differences are small enough

01:28:56 ◼   ► that you don't really need to care,

01:28:57 ◼   ► you don't really need to have them.

01:28:59 ◼   ► And worse comes to worse,

01:29:00 ◼   ► if you really need something you can find a friend

01:29:01 ◼   ► who has an iPad 3 or buy one on eBay for cheap.

01:29:05 ◼   ► Anyway, so I decided now I'm gonna sell every iPad I have

01:29:09 ◼   ► that's not this one and just keep the Air 2,

01:29:12 ◼   ► which I can make myself to buy.

01:29:13 ◼   ► Getting back to that, so anyway, sorry.

01:29:15 ◼   ► Sorry for the long, selfish rant.

01:29:17 ◼   ► First of all, before I move on, is that wrong?

01:29:21 ◼   ► Do you guys disagree?

01:29:22 ◼   ► I assume you do, 'cause you have things

01:29:24 ◼   ► that I've just said were crap.

01:29:25 ◼   ► - I have an iPhone 6 now, as does all three of us do.

01:29:31 ◼   ► And I still reach for my iPad mini regularly.

01:29:36 ◼   ► And I actually, so I had an iPad one, an iPad three,

01:29:41 ◼   ► and now the iPad mini with Retina display.

01:29:44 ◼   ► And the iPad mini, I think is my favorite iPad so far,

01:29:49 ◼   ► in no small part for two reasons.

01:29:51 ◼   ► One, because it is so much more portable,

01:29:53 ◼   ► which sounds so stupid if you're a big iPad owner.

01:29:58 ◼   ► Like when the first mini came out and everyone was like,

01:30:00 ◼   ► "Oh, it's so much better because it's so much smaller."

01:30:02 ◼   ► I was like, "Are you people crazy?"

01:30:03 ◼   ► No, it really is so much better

01:30:04 ◼   ► 'cause it's so much smaller.

01:30:06 ◼   ► And also because this is the first iPad I've ever had

01:30:09 ◼   ► with cellular, which is awesome.

01:30:12 ◼   ► And between the two, that changes everything for me.

01:30:15 ◼   ► And I take it with me, out with me a lot,

01:30:20 ◼   ► where I define out with me as,

01:30:22 ◼   ► like I throw it in the glove box of the car

01:30:24 ◼   ► or something like that.

01:30:25 ◼   ► Or maybe I'm at a meeting

01:30:27 ◼   ► and I don't wanna bring my computer,

01:30:28 ◼   ► but I just bring my iPad.

01:30:29 ◼   ► So if I need to look up something in an email or something like that,

01:30:32 ◼   ► or even take brief notes, I can do that. I use my iPad mini constantly.

01:30:36 ◼   ► I love reading. Well, you still have reading Twitter on it,

01:30:38 ◼   ► but speaking of apps that are old, uh, tweetbot is a little on the old side. Um,

01:30:43 ◼   ► it's still for iOS six, isn't it? Yep.

01:30:45 ◼   ► And now you can't make fun of me for fast text. So ha ha. But, um, sorry, Paul,

01:30:50 ◼   ► I still, uh,

01:30:51 ◼   ► love my iPad mini and I use it constantly.

01:30:56 ◼   ► And I know John that's all. I mean,

01:30:58 ◼   ► obviously you have a big iPad, but almost everything else is you would echo is that correct?

01:31:02 ◼   ► Well, so now I have the iPhone 6 right and the iPhone 6 has

01:31:07 ◼   ► Is better competition for my iPad 3 than my iPod touch was?

01:31:12 ◼   ► but the vast vast majority of the time when I've got both devices next to me I

01:31:16 ◼   ► Pick the iPad 3. I you know, it's like it's gone from maybe you know

01:31:21 ◼   ► 99% to 98% of the time

01:31:24 ◼   ► So the iPhone 6 and I really think it is the bigger screen the iPhone 6 on the bigger screen

01:31:29 ◼   ► the reason I reach for it is not because the CPU is like just vastly faster than than the

01:31:33 ◼   ► iPad 3 because that's not what I tend to run into

01:31:36 ◼   ► Because I'm mostly just reading things and browsing the web or even just playing games

01:31:42 ◼   ► I just don't notice any speed difference of the silly games that I play

01:31:44 ◼   ► But because the screen is bigger

01:31:47 ◼   ► But the reason the iPad 3 this giant everything you said about the iPad 3 is totally true

01:31:52 ◼   ► It's just a massive battery slapped onto a retina screen.

01:31:55 ◼   ► The reason I keep picking that is because basically

01:31:58 ◼   ► when it's not like, oh, I need the text to be bigger

01:32:01 ◼   ► or I need to read more stuff.

01:32:03 ◼   ► It's like when I'm using it to do anything,

01:32:06 ◼   ► it's closer to being like a desktop.

01:32:08 ◼   ► I know I won't get the mobile site.

01:32:10 ◼   ► I won't get the little tiny site.

01:32:11 ◼   ► Like mobile sites frustrating me to no end.

01:32:13 ◼   ► I can load full-size web apps in it.

01:32:16 ◼   ► I can see big, and this doesn't make sense

01:32:18 ◼   ► given like the massive hardware advantage of the iPhone 6.

01:32:23 ◼   ► But I feel like if I need to do something on the website,

01:32:26 ◼   ► it probably won't work on this handheld thing.

01:32:28 ◼   ► I'll need a bigger screen to be able to do it.

01:32:31 ◼   ► And that's obviously silly because it's like,

01:32:33 ◼   ► if it's something CPU intensive

01:32:34 ◼   ► or some stupid poorly implemented

01:32:36 ◼   ► JavaScript scrolling ad banner crap,

01:32:38 ◼   ► like it's gonna be way worse on the iPad

01:32:40 ◼   ► than it is on the iPhone 6.

01:32:42 ◼   ► But I still find myself going to the iPad

01:32:44 ◼   ► because I feel like I'm a desktop person.

01:32:46 ◼   ► Like I want the real full web here.

01:32:49 ◼   ► Like I want the real full article.

01:32:51 ◼   ► And you know, if I'm looking at comics obviously

01:32:53 ◼   ► or anything having to do with images

01:32:55 ◼   ► or you were just looking for iPad Instagram apps,

01:32:57 ◼   ► like I've always had an iPad Instagram app.

01:33:00 ◼   ► That's how I prefer to go through Instagram

01:33:02 ◼   ► even though the pictures are, you know,

01:33:03 ◼   ► supposedly not high-res enough to make a difference.

01:33:05 ◼   ► Like they're not.

01:33:06 ◼   ► I like to see the pictures and the comments underneath them.

01:33:09 ◼   ► It's just, I just want a bigger screen.

01:33:11 ◼   ► And so that's why my current bigger screen,

01:33:14 ◼   ► the iPad 3 with its terribly unbalanced hardware and the now aging battery and the heat and

01:33:21 ◼   ► the weight and everything like that still beats out the iPhone 6 when I want to sort

01:33:26 ◼   ► of have that experience of like when you would when I was still with it, I still get print

01:33:30 ◼   ► magazines sit down and just read a magazine sit down and just read the computer equivalent

01:33:34 ◼   ► of a magazine. I always go for the iPad.

01:33:37 ◼   ► So that's actually I'm glad to hear that and that's actually kind of what I'm finding.

01:33:42 ◼   ► So I decided, let me give the iPad one last try before I write it off as just a device

01:33:48 ◼   ► that's not right for me.

01:33:50 ◼   ► So I got myself the mid-range Air 2 config and I figured if I'm going to give this a

01:33:55 ◼   ► fair shot, I want to give it a really fair shot.

01:33:56 ◼   ► I want to have no complaints about the hardware at all.

01:34:01 ◼   ► So the iPad 3, big, heavy, whatever.

01:34:04 ◼   ► iPad mini, I just thought it was too small for the screen for my tastes and didn't like

01:34:08 ◼   ► the screen quality.

01:34:10 ◼   ► The Air 2 is great.

01:34:11 ◼   ► And what I found is that, you know,

01:34:13 ◼   ► I have many of the same frustrations

01:34:15 ◼   ► that you just mentioned about, you know,

01:34:16 ◼   ► things like being served the desktop

01:34:18 ◼   ► or the mobile website on a phone,

01:34:20 ◼   ► and I know you can get third party browsers to switch it.

01:34:23 ◼   ► We all know that, so please don't write in about that.

01:34:24 ◼   ► - Well, you can even, you can switch it in Safari now.

01:34:27 ◼   ► - Oh yeah, right, yeah, it does,

01:34:28 ◼   ► that you pull down and yeah, yeah.

01:34:30 ◼   ► So we, that's all fine.

01:34:31 ◼   ► The fact is, there is still a lot of web stuff

01:34:35 ◼   ► that's out there that people need to do on a regular basis

01:34:37 ◼   ► that is either impossible

01:34:40 ◼   ► by somebody's stupid web programming,

01:34:42 ◼   ► or at least it's very clunky or very difficult

01:34:44 ◼   ► to do on a phone.

01:34:45 ◼   ► The screen is just too small for a lot of things,

01:34:50 ◼   ► or at least, as you said, John,

01:34:51 ◼   ► at least it's better on a bigger screen.

01:34:54 ◼   ► I've also had a miserable time ever trying

01:34:57 ◼   ► to get anything done on an iPad.

01:34:58 ◼   ► Like getting work done, I know a lot of people do it,

01:35:01 ◼   ► that's fine, but the kind of work I do

01:35:04 ◼   ► and the way I like to work,

01:35:05 ◼   ► it just does not work well on an iPad.

01:35:07 ◼   ► The iPad is a terrible work machine for me.

01:35:10 ◼   ► I've also found that if I'm gonna be playing a game,

01:35:13 ◼   ► I much prefer to play the game on the iPad.

01:35:15 ◼   ► I will save games for the iPad.

01:35:17 ◼   ► Like our friends, Nevan and Matt Comey made The Incident,

01:35:22 ◼   ► The Incident, no that's the old one, what's the new one?

01:35:23 ◼   ► - Space Age. - Space Age, yes.

01:35:25 ◼   ► - Yeah, I can't even, I didn't even know

01:35:26 ◼   ► Space Age ran on the phone.

01:35:27 ◼   ► - I think it does, 'cause I think it installed

01:35:30 ◼   ► on both places and I just deleted it off the phone

01:35:31 ◼   ► as soon as it installed.

01:35:32 ◼   ► Because I'm like, I wanna play this on the iPad.

01:35:34 ◼   ► Like this is a game, like I want to fully enjoy this

01:35:37 ◼   ► properly, I want this on an iPad.

01:35:39 ◼   ► I find myself, if I'm gonna be doing games,

01:35:43 ◼   ► and like our family thing,

01:35:44 ◼   ► we do a lot of games over the holidays.

01:35:46 ◼   ► So one of the reasons I bought this right before Christmas,

01:35:49 ◼   ► 'cause I figured I'd be using it a lot, which was true.

01:35:52 ◼   ► I just really enjoy playing games on a full-size iPad.

01:35:55 ◼   ► And the Mini I thought was substantially worse for games,

01:35:59 ◼   ► just because so many iPad games,

01:36:01 ◼   ► they designed the interface before the Mini was out,

01:36:03 ◼   ► they still assume the big screen.

01:36:04 ◼   ► And again, I think if you're playing a game on it,

01:36:07 ◼   ► no question, the full-size one is better.

01:36:09 ◼   ► I mean, unless it'll make the difference

01:36:12 ◼   ► between whether you bring it with you or not

01:36:13 ◼   ► on a trip or something.

01:36:14 ◼   ► But I don't think the size difference

01:36:17 ◼   ► between the two is a major enough difference

01:36:21 ◼   ► that so many people would not bring an iPad Air,

01:36:26 ◼   ► but would bring an iPad Mini.

01:36:28 ◼   ► It's still the same class of things that need a small bag

01:36:32 ◼   ► or a very large jacket pocket.

01:36:33 ◼   ► Anyway, so I set up the new iPad.

01:36:38 ◼   ► I did a clean install, I didn't import any of my old iPad stuff.

01:36:43 ◼   ► I downloaded all the games that I had downloaded to the iPad and a couple new ones.

01:36:48 ◼   ► I didn't install anything to get any work done.

01:36:52 ◼   ► And most importantly, I didn't install a Twitter client because Tweetbot on the iPad

01:36:58 ◼   ► is, as you mentioned, very old.

01:37:01 ◼   ► It has not been updated for a very long time and it is just really, you know, it was fine

01:37:07 ◼   ► for the time it came out, but that was a very long time ago, and it's pretty outdated now.

01:37:10 ◼   ► Well, and it's functionally broken in a couple of ways.

01:37:13 ◼   ► For example, the new-ish Twitter animated GIFs, that's just infinitely going.

01:37:18 ◼   ► It infinitely opens that tweet screen.

01:37:23 ◼   ► And so it's getting to the point that I'm struggling to use it, even though I freaking

01:37:28 ◼   ► love Tweetbot.

01:37:29 ◼   ► I use Tweetbot on all my devices, but it's hard to use it on the iPad now.

01:37:34 ◼   ► - Forget about Tweetbot and old,

01:37:35 ◼   ► because I have the same problem with it.

01:37:37 ◼   ► Twitterific sometimes when you click on a Twit pick

01:37:40 ◼   ► or a pick that Twitter or whatever link,

01:37:42 ◼   ► it just shows the same tweet over and over again

01:37:43 ◼   ► and you just keep chasing the link, right?

01:37:46 ◼   ► Twitter itself, the mobile website,

01:37:47 ◼   ► when I give up and say open in Safari,

01:37:49 ◼   ► that doesn't load for me like 50% of the time.

01:37:51 ◼   ► - Oh, easily 80 to 90% for me, it's ridiculous.

01:37:54 ◼   ► - I don't understand it.

01:37:55 ◼   ► Sometimes you just get a spinner forever,

01:37:57 ◼   ► somebody just, not it won't load an animated GIF,

01:37:59 ◼   ► but like, I don't even know if it's an animated GIF

01:38:01 ◼   ► 'cause all it will show me is the Chrome,

01:38:03 ◼   ► you know, like, and then maybe a spinner

01:38:05 ◼   ► or maybe it's just gray, maybe the page is, anyway,

01:38:07 ◼   ► that's, I don't understand how these super famous,

01:38:12 ◼   ► highly used sites have like a 50% failure rate

01:38:14 ◼   ► of just viewing the content

01:38:15 ◼   ► when you're not using the official Twitter app,

01:38:17 ◼   ► which I bet works great.

01:38:18 ◼   ► - You're still mad about Vine.

01:38:19 ◼   ► - Yeah, that too.

01:38:20 ◼   ► (laughing)

01:38:21 ◼   ► - So I set up the new iPad Air with,

01:38:25 ◼   ► the primary things I'm doing on it are looking at email,

01:38:30 ◼   ► not even responding to email,

01:38:31 ◼   ► just looking at email 'cause it's good for that,

01:38:33 ◼   ► and it's good for me going through the overcast

01:38:35 ◼   ► support email 'cause I don't respond to most of it.

01:38:37 ◼   ► Games and browsing.

01:38:40 ◼   ► Browsing is an important category.

01:38:41 ◼   ► So browsing, I don't just mean a web browser,

01:38:44 ◼   ► although that's part of it.

01:38:45 ◼   ► I mean anything that involves browsing a feed

01:38:48 ◼   ► mostly for consumption.

01:38:49 ◼   ► Yes, I know it's a cliche, it's only for consumption.

01:38:52 ◼   ► For what I'm saying, this actually works very well for me.

01:38:55 ◼   ► So Amazon, for instance, works very well on the iPad.

01:38:59 ◼   ► So that's shopping, Instagram, any kind of news browser,

01:39:03 ◼   ► any kind of newsstand publication.

01:39:06 ◼   ► Like there's this objc.io, btiffc.io,

01:39:10 ◼   ► we'll put that in the show notes.

01:39:11 ◼   ► I like that a lot.

01:39:12 ◼   ► I read that on the iPad, even though you can read it

01:39:14 ◼   ► on the iPhone, but it's better on the iPad, I think.

01:39:16 ◼   ► Anything that involves browsing code in general

01:39:18 ◼   ► is better on the bigger screen,

01:39:20 ◼   ► 'cause usually it wraps too much on the iPhone screen.

01:39:22 ◼   ► - Yeah, that's why I can't read like, you know,

01:39:24 ◼   ► Reddit or Hacker News or anything.

01:39:25 ◼   ► Any sort of, because you know you're gonna follow a link

01:39:27 ◼   ► that's gonna have code in it.

01:39:28 ◼   ► And as soon as there's code, it's like, well, forget it.

01:39:30 ◼   ► I just cannot read this on the phone

01:39:31 ◼   ► because it's truncated, you got a two-finger swipe

01:39:33 ◼   ► to try to scroll.

01:39:34 ◼   ► It's like, what am I even doing?

01:39:35 ◼   ► Because it's fixed width.

01:39:36 ◼   ► You can't just arbitrarily rewrap it.

01:39:40 ◼   ► - Right, exactly.

01:39:41 ◼   ► Also, any kind of web forums like Hacker News,

01:39:44 ◼   ► any kind of old PHP BB kind of forum,

01:39:46 ◼   ► so many of those don't have very good responsive

01:39:49 ◼   ► or any responsive layouts.

01:39:51 ◼   ► So many of those are still very hard to browse on a phone

01:39:54 ◼   ► without having to either do it in landscape

01:39:56 ◼   ► and only have two lines on screen at once

01:39:57 ◼   ► or had these really tiny little text columns

01:40:01 ◼   ► that you could get like squint to see the text

01:40:03 ◼   ► 'cause it doesn't resize properly.

01:40:05 ◼   ► So many things like that.

01:40:06 ◼   ► Like browsing the web in general,

01:40:08 ◼   ► if I have the option to use both of these devices

01:40:11 ◼   ► to browse the web, I'll prefer the iPad

01:40:13 ◼   ► because everything we've been saying.

01:40:15 ◼   ► So now that I've restricted the iPad conceptually

01:40:19 ◼   ► to like not to serve the exact same roles as my phone.

01:40:22 ◼   ► If I wanna browse Twitter and do stuff like that,

01:40:24 ◼   ► the phone is a better device for that for me,

01:40:26 ◼   ► mostly for software, but the phone is a better device

01:40:29 ◼   ► for that.

01:40:30 ◼   ► But for browsing, lounging, and playing games,

01:40:35 ◼   ► the iPad is very pleasant and better in a number of key ways.

01:40:39 ◼   ► And so that's how I'm reframing the use of it.

01:40:42 ◼   ► I think, as I said, like, you know,

01:40:43 ◼   ► I got rid of my hardware complaints.

01:40:45 ◼   ► I now have zero complaints about the hardware.

01:40:46 ◼   ► The iPad Air 2 hardware is amazing.

01:40:48 ◼   ► So I have no complaints about the hardware.

01:40:50 ◼   ► I'm gonna sell every other iPad I have

01:40:52 ◼   ► because I hate them all.

01:40:53 ◼   ► (laughs)

01:40:54 ◼   ► And they made me hate the iPad, damn it.

01:40:56 ◼   ► So I'm gonna get rid of all those

01:40:58 ◼   ► and just keep this one for a while and see how it goes.

01:41:03 ◼   ► Chances are it's not gonna stick as much as I want it to.

01:41:06 ◼   ► Chances are I just bought it 'cause it was shiny

01:41:07 ◼   ► and new and light and thin

01:41:09 ◼   ► and you'll be making fun of me in six months

01:41:12 ◼   ► when I say I forgot about it.

01:41:13 ◼   ► But right now I think I found a way

01:41:16 ◼   ► to make this fit better in my life

01:41:18 ◼   ► by not making it just be a bigger version

01:41:21 ◼   ► of everything on my phone

01:41:22 ◼   ► 'cause some of the things are gonna be worse.

01:41:25 ◼   ► but instead reframing it as like,

01:41:26 ◼   ► this is the device that I keep next to the bed,

01:41:29 ◼   ► browsing at night, having fun,

01:41:31 ◼   ► playing a game or reading the news.

01:41:33 ◼   ► Like that, that I think is gonna be

01:41:36 ◼   ► a lot better for the iPad.

01:41:37 ◼   ► - So you really have no hard work complaints,

01:41:39 ◼   ► not even the one I'm about to say,

01:41:41 ◼   ► can you guess what it is?

01:41:42 ◼   ► - Are you upset about the mute switch?

01:41:44 ◼   ► - I am, but that's minor in the grand scheme of things.

01:41:46 ◼   ► I am annoyed they took that away,

01:41:47 ◼   ► 'cause that's like why you got all this

01:41:49 ◼   ► freaking room for switches and it's really useful.

01:41:51 ◼   ► And anyway, yeah, my wife's got an attitude as well.

01:41:54 ◼   ► My complaint is the same complaint I had about the mini.

01:41:57 ◼   ► Well, one of the complaints I had about the mini.

01:41:59 ◼   ► - The bezel width?

01:42:00 ◼   ► - Yes, yes, why?

01:42:02 ◼   ► It's so upsetting to me because that's not there.

01:42:07 ◼   ► I understand why they make the bezel width smaller and smaller

01:42:11 ◼   ► on things like monitors and stuff.

01:42:12 ◼   ► 'Cause it's like, what's the point of it or whatever.

01:42:14 ◼   ► But there was an actual point to the border

01:42:16 ◼   ► around the previous iPads.

01:42:17 ◼   ► It wasn't just there because that's as small

01:42:19 ◼   ► as they could make it.

01:42:21 ◼   ► And they needed a buffer.

01:42:21 ◼   ► Like, no, it's there because that's where you hold it.

01:42:23 ◼   ► and the thumb rejection stuff just driving nuts.

01:42:26 ◼   ► And maybe it's just me,

01:42:27 ◼   ► maybe I just can't get over the idea of like,

01:42:29 ◼   ► just go ahead, just put your thumb around,

01:42:30 ◼   ► don't worry, you'll never accidentally activate a button,

01:42:33 ◼   ► the thumb rejection will totally handle this for you,

01:42:35 ◼   ► I just can't get over it.

01:42:37 ◼   ► And so I constantly feel like I'm holding it by like,

01:42:39 ◼   ► I'm actually trying not to touch the screen with my thumb,

01:42:42 ◼   ► and it just, it feels more precarious.

01:42:44 ◼   ► It's like, why, why do I just make it wider?

01:42:47 ◼   ► And by the way, if you make it ever so slightly wider,

01:42:50 ◼   ► it doesn't have to be as big as it was in the iPad 3,

01:42:51 ◼   ► but it needs to be a thumb width, right?

01:42:53 ◼   ► If you make it wider, you can also fit more battery.

01:42:55 ◼   ► Just saying.

01:42:56 ◼   ► (laughing)

01:42:58 ◼   ► - Do you use a case on it by any chance?

01:43:00 ◼   ► - No, no, never.

01:43:01 ◼   ► - Cover?

01:43:02 ◼   ► - Yes.

01:43:03 ◼   ► That's another thing that I like is that,

01:43:04 ◼   ► if you wanna keep going into iPad Air complaints,

01:43:06 ◼   ► the Smart Cover, the one with the metal hinge,

01:43:08 ◼   ► which I'm sure had some kind of problems or whatever,

01:43:10 ◼   ► way better in terms of going off axis

01:43:12 ◼   ► when you open and close it, you know, like not staying--

01:43:15 ◼   ► - Oh, you're talking about the iPad 3 one,

01:43:16 ◼   ► the original one, yeah, yeah.

01:43:18 ◼   ► - Yeah, the original Smart Cover, which I still have,

01:43:21 ◼   ► there's probably some kind of durability problem with it

01:43:23 ◼   ► and maybe it scratches up people's iPads.

01:43:25 ◼   ► Like I'm not sure what the issues are,

01:43:26 ◼   ► but the one thing it did do is when you open and close it,

01:43:29 ◼   ► the edge of the iPad matches up with the,

01:43:31 ◼   ► like it doesn't go off at a different angle.

01:43:33 ◼   ► Whereas the mini version where it's a cloth hinge,

01:43:37 ◼   ► the cloth hinge one is off axis all the time.

01:43:39 ◼   ► That is just, if you're anal retentive,

01:43:41 ◼   ► that really bothers you.

01:43:42 ◼   ► Like mute switch, the bad cover,

01:43:45 ◼   ► the number three folds instead of four,

01:43:48 ◼   ► like those are all minor things,

01:43:49 ◼   ► but all of them are trumped by the little skinny edge,

01:43:53 ◼   ► which I just feel like doesn't need,

01:43:54 ◼   ► especially since it's so light and so thin.

01:43:55 ◼   ► Like I don't feel like, oh, don't we really need

01:43:57 ◼   ► to make it an extra two centimeters narrower?

01:43:59 ◼   ► No, you don't.

01:44:00 ◼   ► Let me, give me someplace to put my thumb.

01:44:02 ◼   ► - So for whatever, I got the full wraparound case this time.

01:44:05 ◼   ► This is my first time having one of those

01:44:06 ◼   ► because like they made it so incredibly thin and light

01:44:09 ◼   ► that like the extra bulk of the wraparound case

01:44:11 ◼   ► is so minimal and it does make it easier to hold

01:44:13 ◼   ► in certain ways or certain situations.

01:44:16 ◼   ► I never, the smart covers always seem like a good idea

01:44:18 ◼   ► in theory, in practice I always found them kind of annoying

01:44:22 ◼   ► in various ways.

01:44:23 ◼   ► The case is in some ways slightly less annoying.

01:44:26 ◼   ► That's all I can say.

01:44:28 ◼   ► It's not perfect, you know, it still has the problem

01:44:29 ◼   ► of like, oh you have this thing that flaps around

01:44:31 ◼   ► in the back sometimes and doesn't hold on very well.

01:44:33 ◼   ► But it at least fixes any alignment issues you have

01:44:35 ◼   ► because the case is always perfectly aligned.

01:44:37 ◼   ► - Yeah, I might try that case.

01:44:39 ◼   ► - Yeah, again, it's not great,

01:44:40 ◼   ► but I think it's a little bit better.

01:44:42 ◼   ► - For the in-house kind of magazine like iPad like mine is,

01:44:46 ◼   ► the awesome thing about the Smart Cover is,

01:44:48 ◼   ► because I don't have a lock code on it

01:44:49 ◼   ► 'cause the thing never leaves my house.

01:44:51 ◼   ► When you open the cover, it's activated.

01:44:53 ◼   ► You know, there's no--

01:44:54 ◼   ► - Oh yeah, well the case does that too, obviously.

01:44:56 ◼   ► - Yeah, I know, so that's the handy thing.

01:44:57 ◼   ► And I also, of course, I leave mine face up

01:45:00 ◼   ► with the cover on it so that I can stack things

01:45:02 ◼   ► on top of the cover without fear of scraping anything.

01:45:05 ◼   ► - Yeah, but then you're gonna scratch the back.

01:45:06 ◼   ► - Yeah, there's nothing underneath.

01:45:07 ◼   ► I mean, it's actually sitting on top of like a,

01:45:09 ◼   ► it's sitting on top of its own case.

01:45:10 ◼   ► I have a slip case for it that I use

01:45:12 ◼   ► when I take it to WWDC.

01:45:13 ◼   ► - Oh yeah.

01:45:14 ◼   ► - For all the, I mean, this has come with me

01:45:15 ◼   ► every single WWDC I've been to,

01:45:17 ◼   ► And except for one small dent in the corner, which was my fault,

01:45:20 ◼   ► and I think I've discussed before, it's not beaten up.

01:45:23 ◼   ► It's in pretty good condition.

01:45:24 ◼   ► It's survived.

01:45:25 ◼   ► I've found, in my experience, full-size iPads

01:45:28 ◼   ► are surprisingly durable.

01:45:29 ◼   ► Maybe the Air will change that because it's so thin.

01:45:32 ◼   ► We haven't had any iPad Air bend gates.

01:45:34 ◼   ► That's what we need.

01:45:34 ◼   ► Someone to make a YouTube video, take an iPad Air,

01:45:36 ◼   ► and they put it over their knee, and they just

01:45:38 ◼   ► lean on it really hard.

01:45:39 ◼   ► And then it bends, and they tailed it up and go, huh?

01:45:41 ◼   ► See?

01:45:41 ◼   ► Totally a problem.

01:45:44 ◼   ► Marco, is your iPad cellular or Wi-Fi?

01:45:48 ◼   ► - I got cellular because I still do,

01:45:51 ◼   ► so and I think this might be my last cellular one

01:45:54 ◼   ► because I do think like, I wasn't sure like

01:45:56 ◼   ► will I end up bringing it on trips again like I used to?

01:45:58 ◼   ► I don't know.

01:45:59 ◼   ► And so far I've been bringing it on the last couple trips

01:46:03 ◼   ► I've taken so the various holiday trips,

01:46:05 ◼   ► but I haven't actually used the cellular function yet.

01:46:07 ◼   ► And I think if I don't use it again

01:46:09 ◼   ► in the next like six months,

01:46:10 ◼   ► I'm just gonna stop buying them with cellular.

01:46:13 ◼   ► Honestly, I think it'll be a few years

01:46:14 ◼   ► before I buy another one,

01:46:15 ◼   ► but I did always use it for carrier diversity.

01:46:18 ◼   ► I would always have the Verizon iPad and the AT&T iPhone.

01:46:21 ◼   ► And that way, wherever I was,

01:46:23 ◼   ► I could tether with either one.

01:46:25 ◼   ► So if I went on a trip,

01:46:26 ◼   ► I would never have to use terrible hotel wifi.

01:46:28 ◼   ► I could always tether with one of them.

01:46:30 ◼   ► And usually Verizon was a better one to do that on.

01:46:32 ◼   ► Usually the places I was going, Verizon had better coverage.

01:46:35 ◼   ► In the last year or two, that has been less of the case.

01:46:40 ◼   ► Verizon's coverage has gotten worse for me

01:46:42 ◼   ► in many places I go, and more often than not now,

01:46:45 ◼   ► I use the AT&T tethering because it just is faster

01:46:48 ◼   ► where I am, and that, first of all, is concerning.

01:46:51 ◼   ► (laughs)

01:46:52 ◼   ► The world is turning upside down,

01:46:54 ◼   ► but so it might just prove that I don't need a Verizon

01:46:57 ◼   ► at all anymore and I could dump them finally,

01:46:59 ◼   ► but we'll see.

01:47:00 ◼   ► - All right.

01:47:01 ◼   ► - And I do recommend, if you're the kind of person

01:47:04 ◼   ► that's gonna carry around an iPad with you in the world,

01:47:06 ◼   ► like not just leave it in your house all the time,

01:47:09 ◼   ► definitely get cellular.

01:47:10 ◼   ► It is very much worth it because if you're using it

01:47:14 ◼   ► by itself most of the time, tethering is still

01:47:16 ◼   ► a little bit annoying.

01:47:17 ◼   ► That being said, the new iOS 8 tethering

01:47:20 ◼   ► with how it detects your phone through continuity

01:47:22 ◼   ► or whatever, that might make it a little bit better,

01:47:24 ◼   ► that might close the gap a little bit, I don't know.

01:47:26 ◼   ► But I do recommend still, I think, getting cellular

01:47:29 ◼   ► if you're gonna carry it around.

01:47:30 ◼   ► But if it's gonna be in your house the whole time,

01:47:31 ◼   ► I don't think it's that important.

01:47:33 ◼   ► - Yeah, I couldn't agree more 'cause this is, again,

01:47:35 ◼   ► my third iPad for cellular and I wasn't sure if the,

01:47:38 ◼   ► What is it like $130 was really worth it?

01:47:41 ◼   ► I did the exact same thing you did

01:47:44 ◼   ► in that I got a Verizon iPad and I have AT&T for my phone.

01:47:49 ◼   ► I then got the, I don't know if this is still a thing or not

01:47:52 ◼   ► but you could, right around the time the iPad mini

01:47:57 ◼   ► with Retina came out, you could give T-Mobile 10 bucks

01:48:00 ◼   ► and they'll give you a SIM and you could,

01:48:04 ◼   ► they will give you 200 megs of data every month for free

01:48:07 ◼   ► on the hope that if you already have their SIM card

01:48:09 ◼   ► in your iPad, when you need to pay for data,

01:48:11 ◼   ► well, A, you'll be in a place that T-Mobile actually works

01:48:14 ◼   ► and B, that you will pay T-Mobile for that data.

01:48:18 ◼   ► And I find that for the amount of time I'm running about

01:48:23 ◼   ► with my iPad, 200 megs of data is actually usually enough.

01:48:27 ◼   ► And then if I'm traveling, I can either use T-Mobile

01:48:30 ◼   ► if I'm in a major metropolitan area or Verizon if I'm not

01:48:34 ◼   ► and get online with that.

01:48:36 ◼   ► And I gotta tell you, being at the beach

01:48:39 ◼   ► and being able to screw around on Twitter,

01:48:41 ◼   ► if I so desire, with my iPad, that's pretty cool.

01:48:44 ◼   ► So I agree with you that if you think

01:48:46 ◼   ► you're gonna be leaving the house a lot,

01:48:47 ◼   ► definitely spend the extra money to get a cellular iPad.

01:48:51 ◼   ► I really do think it's worth it.

01:48:53 ◼   ► - And that T-Mobile thing is still there.

01:48:54 ◼   ► I looked when I was activating mine.

01:48:56 ◼   ► I ended up just transferring the Verizon,

01:48:57 ◼   ► 'cause if you, the new ones had the Apple SIM,

01:48:59 ◼   ► but if you sent it to Verizon, it locks to Verizon,

01:49:02 ◼   ► which is stupid.

01:49:03 ◼   ► I'm sure that was Verizon being a pain or something.

01:49:05 ◼   ► Anyway, so I just transferred the SIM from the old iPad.

01:49:09 ◼   ► But the Apple SIM does still offer that option.

01:49:13 ◼   ► So you don't even have to go get 10 bucks

01:49:15 ◼   ► and give them to a T-Mobile store.

01:49:17 ◼   ► You can bypass that step.

01:49:18 ◼   ► You can just buy new iPad Air 2 with cellular today

01:49:21 ◼   ► and just select T-Mobile from the startup screen

01:49:24 ◼   ► on the cellular plan thing.

01:49:26 ◼   ► And it does offer that 200 megs for everything.

01:49:29 ◼   ► - That's awesome, I didn't know that.

01:49:31 ◼   ► - Anyway, thanks a lot to our three sponsors this week.

01:49:33 ◼   ► Harry's, Fracture, and Squarespace,

01:49:36 ◼   ► and we will see you next week.

01:49:38 ◼   ► (upbeat music)

01:49:40 ◼   ► ♪ Now the show is over ♪

01:49:43 ◼   ► ♪ They didn't even mean to begin ♪

01:49:45 ◼   ► ♪ 'Cause it was accidental ♪

01:49:47 ◼   ► ♪ Accidental ♪

01:49:48 ◼   ► ♪ Oh it was accidental ♪

01:49:50 ◼   ► ♪ Accidental ♪

01:49:51 ◼   ► ♪ John didn't do any research ♪

01:49:53 ◼   ► ♪ Marco and Casey wouldn't let him ♪

01:49:56 ◼   ► ♪ 'Cause it was accidental ♪

01:49:57 ◼   ► ♪ Accidental ♪

01:49:59 ◼   ► ♪ Oh it was accidental ♪

01:50:00 ◼   ► ♪ Accidental ♪

01:50:01 ◼   ► And you can find the show notes at ATP.fm

01:50:07 ◼   ► And if you're into Twitter, you can follow them

01:50:11 ◼   ► @C-A-S-E-Y-L-I-S-S

01:50:15 ◼   ► So that's Casey, Lis, M-A-R-C-O-A-R-M

01:50:20 ◼   ► N-T-M-A-R-C-O-R-M-N-S-I-R-A-C

01:50:25 ◼   ► U-S-A-C-R-A-C-U-S-A

01:50:27 ◼   ► It's accidental

01:50:30 ◼   ► ♪ They didn't mean to accidentally ♪

01:50:35 ◼   ► ♪ Tech podcast so long ♪

01:50:39 ◼   ► - You were saying something about,

01:50:42 ◼   ► it was hard to see code on a tiny screen and stuff like that.

01:50:44 ◼   ► - Yep.

01:50:45 ◼   ► - This phenomenon, I don't know if it's new for Twitter.

01:50:48 ◼   ► Maybe it's not just Twitter, maybe it's lots of things,

01:50:51 ◼   ► but I find very often when I am doing stuff

01:50:54 ◼   ► on my phone or iPod touch,

01:50:57 ◼   ► and somebody does that thing where they post a screenshot

01:51:00 ◼   ► and either it is a screenshot trying to show

01:51:02 ◼   ► some piece of software or something,

01:51:03 ◼   ► or more commonly I find it is that insane thing

01:51:07 ◼   ► that makes no sense to me,

01:51:09 ◼   ► except for maybe as a way to get around tweet limits,

01:51:11 ◼   ► which I actually think this is about Twitter,

01:51:12 ◼   ► where they post a picture of text.

01:51:15 ◼   ► - Oh, God, it's so bad.

01:51:17 ◼   ► - It's like a picture of a web page,

01:51:20 ◼   ► like they screenshot their web browser

01:51:22 ◼   ► and then put that in a thing.

01:51:24 ◼   ► Sometimes it's a picture of a tweet,

01:51:26 ◼   ► which really boggles my mind,

01:51:27 ◼   ► 'cause there's a mechanism for retweeting.

01:51:30 ◼   ► (laughing)

01:51:31 ◼   ► I guess maybe in the non-technical person's

01:51:35 ◼   ► like view of the world,

01:51:36 ◼   ► a screenshot is somehow proof in the same way

01:51:38 ◼   ► that a photograph was proof,

01:51:40 ◼   ► which really just makes zero sense.

01:51:42 ◼   ► But anyway, my problem is,

01:51:44 ◼   ► all right, so people do this thing.

01:51:45 ◼   ► And sometimes it's just a legitimate screenshot,

01:51:47 ◼   ► like showing some application or whatever.

01:51:49 ◼   ► And whatever I'm using,

01:51:50 ◼   ► whether it's a Twitter website or a Twitter client,

01:51:52 ◼   ► or if it's a Vine thing,

01:51:53 ◼   ► or if it's an imager link,

01:51:54 ◼   ► or like I don't even know what software I'm using,

01:51:56 ◼   ► but very frequently I find myself tapping something,

01:51:59 ◼   ► seeing a picture and I can't freaking read it,

01:52:01 ◼   ► no matter how much I zoom because it's so massively low,

01:52:04 ◼   ► like the resolution is not sufficient to resolve letters.

01:52:07 ◼   ► Like the letters are just a jumble of, you know,

01:52:09 ◼   ► it's JPEG compression, you know,

01:52:12 ◼   ► like if it's like some big indented comment or whatever,

01:52:16 ◼   ► and it's like, I know this is not the original image

01:52:19 ◼   ► because nobody would have posted this image

01:52:20 ◼   ► 'cause it's illegible, they're trying to make a point.

01:52:22 ◼   ► And like, sometimes it's just the picture,

01:52:23 ◼   ► like, oh, look at this, read this text and become outraged

01:52:26 ◼   ► or whatever the hell they're trying to say, right?

01:52:27 ◼   ► and it is 100% illegible.

01:52:29 ◼   ► And that means something between me and them

01:52:32 ◼   ► is causing a massively compressive version

01:52:34 ◼   ► of this image to come in.

01:52:35 ◼   ► And probably it's Twitter doing it,

01:52:38 ◼   ► like try to say, oh, we'll serve the mobile version.

01:52:41 ◼   ► What I'm getting is that so many things,

01:52:43 ◼   ► so many web services seem to have the idea

01:52:45 ◼   ► that all pictures are photos

01:52:47 ◼   ► and no pictures are screenshots or contained text.

01:52:50 ◼   ► And in my experience, it's the opposite.

01:52:52 ◼   ► Almost all pictures are not photos

01:52:54 ◼   ► and are like screenshots or text or something.

01:52:56 ◼   ► And I want to be able to read them.

01:52:58 ◼   ► And these services,

01:52:59 ◼   ► like this is another reason I want to be in my iPad,

01:53:01 ◼   ► because at least in the iPad,

01:53:02 ◼   ► I have a fighting chance that they won't try to serve me

01:53:04 ◼   ► the super duper compressed tiny scaled version of the image.

01:53:08 ◼   ► And I find that incredibly frustrating.

01:53:10 ◼   ► It's like, I'm not allowed on the quote unquote,

01:53:11 ◼   ► real internet.

01:53:12 ◼   ► I have to be,

01:53:13 ◼   ► it's like being in a WAP browser again.

01:53:14 ◼   ► Like I have to be in the toy version of this.

01:53:17 ◼   ► You can't handle the full quote unquote photo.

01:53:20 ◼   ► Here's this totally mangled version that is useless to you,

01:53:22 ◼   ► but you can't read a damn thing on it.

01:53:24 ◼   ► It drives me up a wall.

01:53:26 ◼   ► - Yeah, I can't get over, what is it?

01:53:29 ◼   ► Tweet shotting or something like that?

01:53:31 ◼   ► - When I said, "Sh*t pic" the other day,

01:53:32 ◼   ► was that, that's like a thing?

01:53:34 ◼   ► - I have no idea, but basically where,

01:53:36 ◼   ► like John was saying, where you take a screenshot

01:53:39 ◼   ► of something and maybe if you're really cool,

01:53:42 ◼   ► you'll like highlight the line

01:53:44 ◼   ► that you wanna call attention to.

01:53:48 ◼   ► Like that's annoying, but I can get over it

01:53:51 ◼   ► if you can include a link to whatever page

01:53:53 ◼   ► you're trying to link to, but my favorite,

01:53:57 ◼   ► and by favorite I mean the thing I fricking hate,

01:54:00 ◼   ► is when they take a screenshot of this thing

01:54:02 ◼   ► and they don't provide a fricking link.

01:54:04 ◼   ► Oh God, it's so annoying.

01:54:06 ◼   ► - People are posting examples.

01:54:08 ◼   ► Like, you know, this one from MG Siegler

01:54:11 ◼   ► is obviously a screenshot of like Mobile Safari

01:54:13 ◼   ► because you can see they've highlighted the paragraph

01:54:14 ◼   ► or whatever.

01:54:16 ◼   ► And sometimes it's not like, you know,

01:54:17 ◼   ► the content may be good.

01:54:18 ◼   ► Like what people are trying to do with this?

01:54:20 ◼   ► And there's strategies beyond like the using screenshots

01:54:23 ◼   ► A lot of it is like, I can't fit this in a tweet.

01:54:25 ◼   ► I can put a link to it in a tweet,

01:54:27 ◼   ► but I think if I put a link to it, you won't follow it.

01:54:28 ◼   ► And so many Twitter clients inline images

01:54:30 ◼   ► that if I put the actual image,

01:54:32 ◼   ► you can read texts that I couldn't otherwise include

01:54:35 ◼   ► in the tweet.

01:54:35 ◼   ► It's like people are just doing what works

01:54:37 ◼   ► 'cause people will quote unquote engage

01:54:40 ◼   ► with your tweet more if they can see the paragraph of text

01:54:44 ◼   ► that you're, you know.

01:54:45 ◼   ► I don't even use a Twitter client that,

01:54:47 ◼   ► I mean, Twitter does inline images,

01:54:50 ◼   ► but I have that feature turned off.

01:54:51 ◼   ► And for the longest time,

01:54:52 ◼   ► didn't inline images and also my experience with Twitter is very different.

01:54:54 ◼   ► I would rather just follow the link, but sometimes it's nice to be able to know exactly where

01:54:57 ◼   ► it is.

01:54:58 ◼   ► This is another thing with in-page anchors that either people don't know how to use or

01:55:02 ◼   ► they don't exist or both.

01:55:03 ◼   ► And so the best way people can communicate, there's an article and this part about it

01:55:07 ◼   ► I want, basically what they're doing is a link list kind of blog post where they're

01:55:11 ◼   ► running a link blog, they want to link you to something and they want to quote the passages

01:55:14 ◼   ► that they found relevant and comment on them.

01:55:16 ◼   ► And the way they do it is tweet on top 140 characters or less plus the link to the image

01:55:22 ◼   ► and the image has the part highlighted that they're interested in.

01:55:25 ◼   ► So it's kind of a mutant inverted form of blogging where you can't disperse the two

01:55:30 ◼   ► things.

01:55:31 ◼   ► Anyway, bottom line, if you're writing your mobile application, don't assume all photos

01:55:34 ◼   ► are text.

01:55:35 ◼   ► If you're going to want to be clever and you want to save bandwidth, figure out if their

01:55:37 ◼   ► photos are text or not.

01:55:38 ◼   ► If they're text, make sure that you don't scale them down so brutally that it becomes

01:55:42 ◼   ► complete gibberish.

01:55:43 ◼   ► All right.

01:55:44 ◼   ► I'm tired.

01:55:45 ◼   ► What are these titles?

01:55:46 ◼   ► SSL is not pancetta? Who said that?

01:55:49 ◼   ► I think we discovered that Boar's Head makes pancetta.

01:55:53 ◼   ► I don't know if that's going to be any good because it's not really an Italian brand, I don't think.

01:55:58 ◼   ► Anyway, we bought some, we're going to try it.

01:56:01 ◼   ► Well, I agree that SSL is not pancetta.

01:56:04 ◼   ► This is true.

01:56:06 ◼   ► Full of landmines, pitfalls, and bottomless pits is pretty decent, although I might have said that. It was either me or Marco.

01:56:12 ◼   ► So I think it was UK's talking about no.

01:56:14 ◼   ► Yeah, I think so.

01:56:15 ◼   ► How about how about get rid of how about get rid of the full of and just go with landmines pitfalls and bottomless pits

01:56:19 ◼   ► I could do that. I like that and then but put the Oxford comment

01:56:23 ◼   ► So landmines comma fit pit falls comma and bottomless pits

01:56:26 ◼   ► It makes me so happy to hear that you also appreciate an Oxford comma and this is that unanimous?

01:56:31 ◼   ► Did I hear Marco say the same? Oh, absolutely

01:56:33 ◼   ► Appreciation everybody agrees that the only people who don't agree. No, no, it's crazy. It's great

01:56:38 ◼   ► It's not like a style choice

01:56:40 ◼   ► like well

01:56:40 ◼   ► you go on with the other it is a

01:56:41 ◼   ► clarity choice and everyone like I don't understand why there's any argument because soon as an argument someone pulls out one of the crazy examples

01:56:47 ◼   ► And go see and I guess those people are like, oh well

01:56:49 ◼   ► I guess you'd have to use it there or don't write that sentence or some crazy thing. It's no forget it

01:56:54 ◼   ► I've never heard a convincing argument against I could not agree with you more friend of the show Steven Hackett

01:56:59 ◼   ► Swears that the Oxford comma is evil and I am glad that we all agree that he's wrong

01:57:03 ◼   ► So what does he say on you know, when people bring up the examples of like this sentence?

01:57:07 ◼   ► Changes the meaning of the sentence and it's totally crazy

01:57:09 ◼   ► And if you don't let me put a comma there, I cannot express the meaning the intended meaning of the sentence

01:57:13 ◼   ► What does he say then? I have no idea we could probably call him

01:57:17 ◼   ► I have no idea

01:57:19 ◼   ► See like what what drives me nuts about about the the absence of the Oxford comma when it's absent

01:57:24 ◼   ► It's like when I read and I don't know if everyone reads this way

01:57:27 ◼   ► Maybe it's just I'm a programmer. I don't know when I read I get tripped up if I hit what seems to be a parse error

01:57:34 ◼   ► Yes, and and so I write with this in mind

01:57:37 ◼   ► So I try to avoid giving people this feeling and it's hard, you know to know what with your own stuff

01:57:42 ◼   ► And it's it's good when somebody points out like oh, I this sentence that you wrote didn't make any sense to me at first

01:57:48 ◼   ► Cuz I thought I meant this and you know, so it's good to you know

01:57:50 ◼   ► Pay attention to that and reword things when you need to but like for me

01:57:54 ◼   ► It's like like I read in a stream and I don't want to have to read the whole sentence

01:57:58 ◼   ► To understand the beginning of it unless you know, you know, you can like push the claws on your stack and everything

01:58:04 ◼   ► but you know for the most part it's like

01:58:07 ◼   ► as you're reading you don't want to be tripped up

01:58:09 ◼   ► by something like the end of a list not happening

01:58:13 ◼   ► the way you thought it would,

01:58:13 ◼   ► or parallel structure errors are a great example

01:58:16 ◼   ► of this, stuff like that.

01:58:17 ◼   ► And I think the absence of the Harvard/serial comma

01:58:22 ◼   ► increases the likelihood of people tripping up

01:58:24 ◼   ► as they're reading that list of items

01:58:26 ◼   ► and mis-parsing it for a second

01:58:28 ◼   ► and having to go back and be like,

01:58:29 ◼   ► oh, wait a minute, oh, that's what they meant by that.

01:58:32 ◼   ► - I really don't understand how people could think

01:58:34 ◼   ► that not having the Oxford comma is an option.

01:58:38 ◼   ► Because I agree with Jon.

01:58:39 ◼   ► Like it dramatically changes the meaning of the sentence,

01:58:42 ◼   ► but whatever.

01:58:43 ◼   ► I'm so, it makes me genuinely happy

01:58:47 ◼   ► that we all agree on this.

01:58:48 ◼   ► - The only thing we all agree on.

01:58:50 ◼   ► (laughing)

01:58:51 ◼   ► - Well, that and iPads aren't a complete waste of money.

01:58:54 ◼   ► - Yeah.

01:58:55 ◼   ► Well, ask me to get in six months.

01:58:56 ◼   ► - That's true.

01:58:57 ◼   ► You gotta figure out this note issue.

01:59:00 ◼   ► I know you're gonna give up on it and you probably should,

01:59:02 ◼   ► but it makes me sad.

01:59:04 ◼   ► If I loved everything else about Node,

01:59:05 ◼   ► I would try to figure this out more.

01:59:07 ◼   ► - It just doesn't seem like a type of, I mean, it's young.

01:59:10 ◼   ► It's like it hasn't been tested in this way,

01:59:12 ◼   ► in the way that a lot of these older things have,

01:59:15 ◼   ► especially if it seems like the type of thing where you,

01:59:18 ◼   ► okay, so you run into this problem

01:59:19 ◼   ► and you ask the question and the answer is not,

01:59:22 ◼   ► oh, of course, everyone runs into that problem,

01:59:23 ◼   ► here's how you fix it.

01:59:24 ◼   ► The answer is, oh, of course, everyone's into that problem

01:59:26 ◼   ► and you're right, it's a problem.

01:59:27 ◼   ► Like that's bad because the beginner

01:59:29 ◼   ► should not immediately find the thing

01:59:31 ◼   ► that causes people who know to say,

01:59:35 ◼   ► yeah, no, that totally doesn't work.

01:59:36 ◼   ► I mean, what should really happen is you should run

01:59:38 ◼   ► into all the problems and everyone should be like,

01:59:39 ◼   ► yeah, that's what everyone runs into, here's what you do,

01:59:41 ◼   ► and then you run into another one.

01:59:42 ◼   ► Like, it should be the progression of you learning

01:59:45 ◼   ► a language, it shouldn't be, you know, three days in,

01:59:48 ◼   ► you immediately hit a roadblock that is a legitimate

01:59:50 ◼   ► roadblock and there's not a commonly known workaround.

01:59:53 ◼   ► - Yeah, and it's like, and like what,

01:59:56 ◼   ► you can always tell the warning signs from the community

01:59:59 ◼   ► that this might be the wrong thing for you.

02:00:02 ◼   ► Like if the questions you answer,

02:00:04 ◼   ► like so the question is,

02:00:06 ◼   ► why is setTimeout leaking memory?

02:00:09 ◼   ► If all of the answers are don't use setTimeout,

02:00:13 ◼   ► and there's nothing else that does the same thing,

02:00:15 ◼   ► then it's like okay, that's a red flag right there.

02:00:18 ◼   ► That means that something's not right here.

02:00:21 ◼   ► Some part of this is a bad fit.

02:00:23 ◼   ► Like this is not what I'm looking for.

02:00:25 ◼   ► - Yeah, I remember trying to look for a sleep call

02:00:27 ◼   ► in JavaScript early on, I was like, well, you know,

02:00:31 ◼   ► every language has some way to just, you know,

02:00:32 ◼   ► I was just doing it to like induce a race condition

02:00:35 ◼   ► or whatever.

02:00:36 ◼   ► It's not like I wanted setTimeout.

02:00:36 ◼   ► I wanted like just you do nothing for a while, please.

02:00:39 ◼   ► 'Cause I wanted to have a race with some of the stuff

02:00:41 ◼   ► that was going on.

02:00:42 ◼   ► And it's like, how can a language not have a sleep call?

02:00:45 ◼   ► This is like Unix addling my brain,

02:00:47 ◼   ► assuming every language has access to the Unix API.

02:00:49 ◼   ► But yeah, without setTimeout, without a way for you to say,

02:00:54 ◼   ► don't do this now, but in a little bit,

02:00:57 ◼   ► in a time that I'm gonna specify in milliseconds, do this.

02:01:00 ◼   ► And if you can't do that,

02:01:01 ◼   ► I was trying to think when you were asking that question,

02:01:03 ◼   ► well, if I don't use setTimeout, then what's my alternative?

02:01:06 ◼   ► Maybe Node has an alternative, 'cause Node, you know.

02:01:08 ◼   ► - No, that is, Node implemented setTimeout

02:01:11 ◼   ► and setInterval itself, in its engine, to work this way.

02:01:16 ◼   ► And that is, if you look at,

02:01:17 ◼   ► they call it the timers module,

02:01:19 ◼   ► if you look at the Node timers module, that's it.

02:01:22 ◼   ► Those are the functions that you have

02:01:24 ◼   ► to schedule something in the future.

02:01:25 ◼   ► - And it's not just like a thing where you have to be

02:01:28 ◼   ► careful about what you reference inside the closure

02:01:30 ◼   ► and stuff like this, there's like no work around.

02:01:32 ◼   ► Like oh everyone knows when you do setTimeout

02:01:34 ◼   ► you gotta be careful not to have,

02:01:35 ◼   ► not to close over these references

02:01:36 ◼   ► or to like explicitly do something, you know,

02:01:38 ◼   ► to make it happy so you don't leak memory, there's nothing.

02:01:41 ◼   ► - I haven't looked too far into it.

02:01:42 ◼   ► I even tried, I'm like, you know, maybe,

02:01:45 ◼   ► maybe it is doing something way too,

02:01:48 ◼   ► literally the call is like setTimeout,

02:01:50 ◼   ► pull URL, CTL, and then like ID, that's it.

02:01:54 ◼   ► and the ID is an integer.

02:01:55 ◼   ► And I even tried parse int on it

02:01:57 ◼   ► just to make sure it sends an integer

02:01:58 ◼   ► and doesn't try to retain something crazy.

02:02:00 ◼   ► And I even tried making it a string eval thing

02:02:04 ◼   ► to set time out, but unfortunately no doesn't support that.

02:02:07 ◼   ► So, 'cause I was like, maybe that would force it

02:02:10 ◼   ► not to retain anything intelligently

02:02:12 ◼   ► 'cause it doesn't know what I'm calling.

02:02:13 ◼   ► Nope, didn't help, can't be done.

02:02:15 ◼   ► - Yeah, this and the memory limit,

02:02:17 ◼   ► which also seemed to turn out to be,

02:02:18 ◼   ► no, actually that's the limit,

02:02:20 ◼   ► and it's the limit and it's low,

02:02:22 ◼   ► and apparently people aren't bothered by,

02:02:25 ◼   ► like it's not, I don't know.

02:02:27 ◼   ► It's like Chrome and emoji support.

02:02:29 ◼   ► Some things just can't be explained.

02:02:32 ◼   ► - Although isn't that coming?

02:02:33 ◼   ► - I'm sure it's coming, I'm sure.

02:02:35 ◼   ► Anytime now.

02:02:36 ◼   ► - Overall, I think I would say,

02:02:39 ◼   ► if I had to predict, and granted,

02:02:41 ◼   ► most of my predictions are comically wrong,

02:02:43 ◼   ► but if I had to predict the future of these languages,

02:02:47 ◼   ► I would say Python and Ruby will outlive Node

02:02:52 ◼   ► in common usage.

02:02:54 ◼   ► - But no, it's not a language.

02:02:54 ◼   ► JavaScript is a language.

02:02:55 ◼   ► And JavaScript is a language sucks.

02:02:57 ◼   ► And the only reason anyone cares about it all

02:02:59 ◼   ► is 'cause it's every freaking where.

02:03:00 ◼   ► We all have to deal with it.

02:03:01 ◼   ► And like, so that's that for JavaScript.

02:03:03 ◼   ► And Node is like, well, wouldn't it be great

02:03:05 ◼   ► if you could use the same thing

02:03:07 ◼   ► on the server-

02:03:16 ◼   ► node.js is not the one.

02:03:18 ◼   ► Or maybe it needs more time to bake or whatever.

02:03:20 ◼   ► But there's nothing about Node that says

02:03:22 ◼   ► Like, oh, maybe Node never works out,

02:03:23 ◼   ► but then someone else comes out with the server side.

02:03:25 ◼   ► There have been other server-side JavaScript engines.

02:03:27 ◼   ► There will be other ones in the future.

02:03:29 ◼   ► Until we can, unless we can get JavaScript

02:03:31 ◼   ► off of the browser, there will always be

02:03:35 ◼   ► a place for JavaScript on the server.

02:03:37 ◼   ► And whether, who implements it and who does a good job,

02:03:40 ◼   ► and if there are bugs and if it gets used

02:03:41 ◼   ► in large scale applications,

02:03:42 ◼   ► I think that will change over the years.

02:03:44 ◼   ► But until we can get rid of JavaScript

02:03:46 ◼   ► on the browser side, we're probably stuck

02:03:48 ◼   ► with some kind of JavaScript on the server side.

02:03:51 ◼   ► You know, I should point out that the current version of Node is 0.10.35, which, I mean,

02:03:59 ◼   ► obviously everyone's version numbers mean something different than everyone else's,

02:04:03 ◼   ► but we are far from...

02:04:04 ◼   ► Well, it looks to me like we are far from 1.0.

02:04:08 ◼   ► Although this is something that should be solved already.

02:04:10 ◼   ► Yeah, I mean, there's nothing technically about Node that says that it couldn't be made

02:04:13 ◼   ► to be better.

02:04:14 ◼   ► Like it's just young yet, and people obviously haven't stressed it to do the type of stuff

02:04:19 ◼   ► the market was doing or haven't found that that's where the limit is, it needs time to

02:04:24 ◼   ► mature and become battle tested.

02:04:26 ◼   ► >> Right, I mean, maybe I'm using the wrong tool for the job here, but it really seemed

02:04:30 ◼   ► like it was a good tool for this job.

02:04:32 ◼   ► >> Yeah, it really bums me out because I really wanted you to like it.

02:04:35 ◼   ► I don't even know why.

02:04:36 ◼   ► Like, it doesn't matter, but it just seemed like this is the sort of thing I would use

02:04:41 ◼   ► Node for, to your point.

02:04:43 ◼   ► And it seems like it's a lost cause.

02:04:47 ◼   ► - And it would work fine if you had 10,000 URLs to query,

02:04:50 ◼   ► but once you're up into 250,000,

02:04:53 ◼   ► then that's getting creaky.

02:04:54 ◼   ► - And it would work fine if I was willing

02:04:56 ◼   ► to restart the process every six hours

02:04:58 ◼   ► with only 10,000 URLs to crawl.

02:04:59 ◼   ► Like, it's a memory leak, like it leaks forever.

02:05:03 ◼   ► Like, it eventually gets too big, and yeah.

02:05:06 ◼   ► And when I'm crawling the full,

02:05:08 ◼   ► and I'm not even crawling all 250,000,

02:05:11 ◼   ► like I did, like my last test was I was just crawling

02:05:14 ◼   ► an eighth of them, so whatever that is,

02:05:15 ◼   ► like 40 or whatever that is.

02:05:17 ◼   ► And even doing that, it would pass a gig

02:05:21 ◼   ► within like 20 minutes.

02:05:22 ◼   ► It was really bad.

02:05:24 ◼   ► Like it's doing something.

02:05:25 ◼   ► And I tried, there's a heap dump thing.

02:05:28 ◼   ► So I tried taking heap dump profiles

02:05:29 ◼   ► and loading them into Chrome's developer thing

02:05:31 ◼   ► and looking at all the stacks.

02:05:33 ◼   ► - I saw them, it was like iTunes, everything was other.

02:05:35 ◼   ► - Yeah, exactly.

02:05:36 ◼   ► Well, and for the few objects it is tracking,

02:05:39 ◼   ► you could see some of them had really, really deep,

02:05:41 ◼   ► recursive set timeout calls.

02:05:43 ◼   ► So you can tell that's where the problem is.

02:05:45 ◼   ► The problem is setTimeout is retaining things recursively,

02:05:49 ◼   ► even though I'm not calling functions recursively,

02:05:51 ◼   ► but the function at the end of itself calls setTimeout

02:05:55 ◼   ► on itself for some point in the future.

02:05:58 ◼   ► And I even tried not doing that

02:06:00 ◼   ► and doing a worse solution using setInterval instead.

02:06:03 ◼   ► And I tried clearing the intervals, of course,

02:06:05 ◼   ► I tried all of that.

02:06:07 ◼   ► I could not get it to work.

02:06:08 ◼   ► I worked on this most of the afternoon today,

02:06:10 ◼   ► and I could not get it to not leak all over the place.

02:06:13 ◼   ► And it just, again, it just is not,

02:06:16 ◼   ► it is not a good enough fit in every other way

02:06:19 ◼   ► to what I want in a new language

02:06:21 ◼   ► to make it worth fighting on this point.

02:06:23 ◼   ► So, I mean, but Casey, I mean, you're getting what you want,

02:06:27 ◼   ► which is you're getting me to try a new language.

02:06:28 ◼   ► And now, because Node is not working out,

02:06:31 ◼   ► I'm trying even more new languages.

02:06:32 ◼   ► So really, this is awesome.

02:06:34 ◼   ► - Well, yes and no.

02:06:37 ◼   ► I think you're predisposed to hate

02:06:38 ◼   ► almost everything you're trying,

02:06:40 ◼   ► But to your credit, you are trying,

02:06:43 ◼   ► and that is making me happy.

02:06:45 ◼   ► - I wouldn't say I'm predisposed,

02:06:47 ◼   ► once I actually, I'm predisposed to hate things

02:06:49 ◼   ► I haven't tried before,

02:06:50 ◼   ► 'cause I don't wanna have to try them.

02:06:52 ◼   ► Once I actually try a new language,

02:06:54 ◼   ► like now I feel like I've spent two weeks

02:06:58 ◼   ► or however long it's been getting pretty decent

02:07:01 ◼   ► at this one really complicated task in Node,

02:07:04 ◼   ► and now I feel like I'm throwing away all this knowledge.

02:07:06 ◼   ► I mean, granted, at least it was quick,

02:07:07 ◼   ► you know, at least I already knew the JavaScript syntax

02:07:09 ◼   ► and everything, like, you know,

02:07:11 ◼   ► Go is gonna take a little bit longer to learn

02:07:12 ◼   ► just because it's so much more different than what I know.

02:07:15 ◼   ► So I'm gonna be more upset if Go doesn't work out.

02:07:19 ◼   ► But once I try something, I want it to work

02:07:22 ◼   ► because I don't wanna learn something else.

02:07:24 ◼   ► That's just like, it's like natural human defensiveness.

02:07:26 ◼   ► Like you want, when something is new and unfamiliar,

02:07:29 ◼   ► most people's default reaction is to try to reject

02:07:33 ◼   ► its relevance to them so that they can continue

02:07:37 ◼   ► the way they've been doing things or the way they,

02:07:39 ◼   ► you know, the way they think things are,

02:07:42 ◼   ► your instinct is to reject new ideas

02:07:44 ◼   ► or dismiss them as soon as you can.

02:07:46 ◼   ► - There's a political joke here, but I'm gonna let it go.