0:00:00Happy new year and stuff.
0:00:01And happy birthday, John Syracuse, of 40 years old.
0:00:04How's it feel to be an old man, John?
0:00:06It's not my birthday today.
0:00:07It's the first time I've spoken to you since your birthday.
0:00:10It's close enough.
0:00:10Beginning of the year with a technicality.
0:00:12[LAUGHTER]
0:00:15So we have some follow up.
0:00:16Let's talk about John's OS X app window layering policy.
0:00:20Yeah, I should have done a little bit of research
0:00:22of this, but I'll have you do the real time research for me.
0:00:25So in our discussion in like episode a couple episodes ago about windows and window
0:00:32management stuff like that one of the things that didn't come up that probably should have
0:00:36Was the OS 10 window layering policy now when you get OS 10 if you've only ever used OS 10
0:00:43You probably just accept this as the way things work because it's sort of like how Windows works as in capital W Microsoft Windows
0:00:50You got a bunch of windows on the screen
0:00:52I mean, if you click on a window,
0:00:53that window comes to the front
0:00:55and it comes to the, and then you click another window
0:00:57and that window comes to the front of the other ones.
0:00:58And you know, it changes,
0:01:00the window layering changes in that way.
0:01:02On OS X, if you click on the dock icon,
0:01:04all windows from that application come to the front.
0:01:07All right, and this is,
0:01:08again, if you've only ever used OS X,
0:01:10you're like, yeah, so what?
0:01:11That's just how everything works.
0:01:12And there are menu commands for hide others.
0:01:14And you can option click on something
0:01:17to hide the previous thing to show the new thing.
0:01:19And there's all sorts of shortcuts like that
0:01:21that people know.
0:01:22Basically plain old unadorned click just brings the window to the front and the the doc click brings all the windows the app to
0:01:28Fund now back in the olden days if my memory serves correctly
0:01:32When you clicked on the window all the windows belonging to that application came to the front
0:01:37so it was sort of the opposite of the behavior in OS 10 where a
0:01:42special 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
0:01:47particular window
0:01:49Now since I am an old person as we've already established
0:01:52And I come from the old school Mac world when OS X came out
0:01:57I didn't like the fact that when I clicked a single window only that window came to the front and because my
0:02:02Window arranging habits wouldn't have been built up over years and years of using a regular Mac and classic Mac OS
0:02:08I was used to the idea of being able to pull all the windows of an application forward by
0:02:14snagging 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
0:02:18where 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
0:02:23Wanted because they'd be tiled according to you know, whatever
0:02:25And so there's a whole bunch of utilities that came out for OS X
0:02:29in the early days of OS X that lets you
0:02:32switch this policy to make it so regular click brings all the windows to the front and a modifier click does the other behavior and
0:02:39I've used lots of those utilities over the years. I think the one I'm using now is
0:02:43is, I'm still using ASM, which was supposed to give you an application switcher menu,
0:02:48which is like a classic Mac OS thing in the upper right corner of the screen.
0:02:51I think that part doesn't work anymore, or even if it does, I have it disabled.
0:02:54I just have the, you know, they call it classic window setting set to on.
0:03:00And shift key is the suppression key.
0:03:02So if I click any Safari window, all the Safari windows come to the front.
0:03:06And if I click any terminal window, all the terminal windows come to the front.
0:03:10But if I shift click a window, only that window comes to the front.
0:03:15And I'm not saying one of these policies is the right one or the wrong one, because I
0:03:19think both behaviors are useful.
0:03:20It's just a question of which one do you think should be the default.
0:03:24And the defaults don't really matter that much either.
0:03:26I suppose I could have got used to just going down to the dock icon and clicking, but I
0:03:29was just so used to arranging my windows and using them as these big click areas to do
0:03:34stuff, that this is one of the few sort of classic Mac OS policies that I still haven't
0:03:39given up. I guess it's probably like a little bit of a system hack to do this
0:03:44window layering. It's not a really big system hack. I think drag_thing also
0:03:47either had or still has this feature and there may be other utilities that do it
0:03:51and it may be like a global plist thing. I don't even know what this thing is
0:03:54doing whether it's a system hack or not. But anyway, if my window management
0:03:59sounded strange to you and you've only ever used OS X, that may be a piece of
0:04:02information you're missing. And I would imagine that both of you have never done
0:04:07this or use any utilities like this and would probably drive you crazy if you clicked on
0:04:10a single window and they all came to the front from that app.
0:04:13Yep.
0:04:14Yeah, you should try it.
0:04:15It's actually kind of neat.
0:04:16I mean, you obviously have to adjust your habits because you're not losing the ability
0:04:20to do the other thing.
0:04:21You just have to, you know, shift click or option click or whatever modifier click you
0:04:24decide to make it.
0:04:25But it does change the way things work and it makes, I think it makes the way I manage
0:04:30windows a little bit more viable.
0:04:32Like I think it's the correct default for the way I manage windows.
0:04:37not the correct default for yours, but a lot of people have emailed and tweeted at me since
0:04:41that show to say they were intrigued by my theories and would like to subscribe to my
0:04:47newsletter and so are trying out different window maps.
0:04:52And I didn't have a chance to respond to most of the people who sent in emails and tweets
0:04:56saying they wanted to try it, but what I felt like telling them is if you're going to try
0:05:00it you may not know this, but here's the setting that I have had on my Mac since the dawn of
0:05:04OS X that you probably don't have, and I think it's probably essential to the way I work.
0:05:09The other thing I saw a lot of requests for was a screenshot of your Mac.
0:05:15And I'm assuming people wanted perhaps like an expose screenshot so they could see the
0:05:2011 gazillion windows that you have open.
0:05:23And I don't want to necessarily formally request that because you would probably have to obscure
0:05:29a bunch of things.
0:05:31But should you decide that you would like to share that?
0:05:33I'm sure the world at large would love to see it.
0:05:36- Yeah, there were requests, but I can't,
0:05:37I mean, I can't take screenshots of my screen
0:05:39because all my stuff is on my screen
0:05:40and I don't wanna go through blanking out the windows.
0:05:42And in the end, it just looks like a bunch of windows.
0:05:44Like there's nothing to see.
0:05:46- To you, maybe.
0:05:47- Right, to you, that's all it looks like.
0:05:49- Then it's like, why don't you set a video, make a video?
0:05:51It's like, well then again, in a video,
0:05:53you'd be seeing all my stuff.
0:05:54I don't show you all my stuff, all my email,
0:05:56all my tabs that I have open and stuff like that.
0:05:59But on the feedback,
0:06:00I don't know how much you've been following the feedback,
0:06:02but I tried to be vaguely scientific
0:06:04with following the feedback.
0:06:06And I have to say, of the feedback
0:06:07that has come directly to me, mostly through tweets,
0:06:09but also through email that's not to the list thing,
0:06:12it has been overwhelmingly positive
0:06:15in terms of people saying,
0:06:16"Yes, that's exactly how I work."
0:06:17All the old Mac users sent in those emails.
0:06:19They said, "Yes, you're right, that's how I work too."
0:06:21And then the curious people who are like,
0:06:23"I'd never thought of working that way,
0:06:24but it sounds interesting to me."
0:06:26Very little negativity about it,
0:06:30which is surprising considering how negative you two were.
0:06:32And I keep coming back to the idea that,
0:06:34how many windows was it in Safari?
0:06:3719 or something?
0:06:38Like that was astronomical.
0:06:40Like that I might as well have said 10,000.
0:06:43But the reaction you guys had to,
0:06:45'cause 19 windows is just not that much.
0:06:47And I thought, maybe I'm crazy, maybe 19 windows is a lot.
0:06:50But then everyone's like, are you kidding me?
0:06:51I have, always have tons of windows open.
0:06:54It's like having a computer with like 32 gigs of RAM,
0:06:56but you keep four windows open per app.
0:06:58It's like, what?
0:06:59Anyway, I don't wanna rehash the entire thing,
0:07:01but it's probably better than whatever we have planned today.
0:07:04- It's probably true.
0:07:05- Maybe you've gotten different feedback than I have,
0:07:07but I have been very surprised
0:07:09that it has been overwhelmingly essentially on my side,
0:07:12whether decisively on my side,
0:07:15like, yes, that's exactly how I do things
0:07:16and it's the one way you should do things,
0:07:17or people saying, "That sounds interesting.
0:07:19I'd like to try it."
0:07:20- Okay, so the feedback I have seen,
0:07:22the feedback I have seen, there has certainly been some,
0:07:25and I shouldn't even say some,
0:07:26a pretty decent amount of people saying,
0:07:29yes, that's exactly what I do.
0:07:32The John approach is exactly what I do.
0:07:36But the overwhelming majority of feedback that I saw
0:07:40was my goodness, that was hysterical.
0:07:43That was my favorite episode of ATP so far.
0:07:45So for all of you who said that, thank you.
0:07:47That's very nice of you.
0:07:47- Yeah, but you can't categorize that
0:07:49because most of that was just like,
0:07:50hey, I enjoy listening to the podcast,
0:07:51which is like, great, thumbs up.
0:07:52But it's not like they're not taking a side
0:07:55position commenting on the substance of it. And yes, I did see a lot of it, but I didn't
0:07:58categorize that. What I did was I favorited as a form of tracking. So all the ones that
0:08:03were all the tweets that were sent to me about it. So if you go back through my favorites
0:08:05and skip over the other stuff, it looks like it's not related. Like, I don't even know
0:08:08if you can do this on stupid Twitter, but scroll back to like the week following the
0:08:12show and just look at the huge amount of favorites that are in there that, and I favorited the
0:08:16ones that were against as well. And you'll have a hard time finding a tweet anyway that
0:08:20was against. And the email to the feedback forums we all saw on the email directly to
0:08:24to me was basically 100% that people thought it was not crazy to have 19 windows open.
0:08:30And by the way, I will add, and this is another thing that people seem to forget, like the
0:08:34idea that I'm not closing windows, as I think I said on the show, as I think I actually
0:08:38did in real time on the show when we were going through like, "Oh, I can close this
0:08:42window now because I'm done researching like the date that these things are released or
0:08:45whatever."
0:08:46The windows close when I'm done with them.
0:08:47It's not like I'm keeping them around like for the hell of it, right?
0:08:50And so for example, I have two Safari windows open now.
0:08:53Why do I have two Safari windows open?
0:08:54Because I've been off work for like a week and I've been at home and everything is cleared
0:08:58out.
0:08:59And the only Safari windows open I have right now are stats windows that are sort of things
0:09:02that I'm currently monitoring.
0:09:04And even those will close when I'm not currently monitoring them anymore.
0:09:07Like I'm still looking at the stats of my OS X review just to see as it slowly tails
0:09:11off in the long tail how it's doing.
0:09:14Anyway, and Chrome windows.
0:09:18Two minimize, three non-minimize.
0:09:20Minimize ones are, yeah.
0:09:22Using, this is sort of like the Merlin man
0:09:25using your inbox as a to-do list, which is a bad idea.
0:09:27Using Safari Windows as a to-do list,
0:09:30probably also a bad idea, but I think it works pretty well.
0:09:34And the difference between your email inbox and Safari
0:09:37is your email inbox is subject to anything
0:09:40that anyone wants to send to you,
0:09:41whereas your Safari Windows, you have to open yourself.
0:09:45Oh, that was the other, before we get off this topic,
0:09:47the other interesting thing,
0:09:48Rupert did a post some time the week after saying
0:09:51he'd had this tab open since October to remind him
0:09:53to read his article and he finally got around to it
0:09:55and then he posted a little link list thing
0:09:57on Daring Fireball.
0:09:58And then everyone jumped on him and said,
0:10:00you're using the Syracuse window technique too.
0:10:02'Cause he essentially had this window thing open in a tab,
0:10:06like I'll get around to it someday and he did.
0:10:08And I bet he read it and he posted it
0:10:09and I bet he closed that window.
0:10:11- I can't do it.
0:10:15I'm not gonna let myself get roped into this again.
0:10:18So instead, I'm gonna move on to another piece of follow up unless Marco, you have something
0:10:21to add.
0:10:22Nope.
0:10:23All right.
0:10:24How do you add to that?
0:10:25Yeah, exactly.
0:10:26So the next week's follow up we have, I brought up the question, I believe it was last episode.
0:10:31Why would you run SSL on a site like caseylist.com that all it does is display content?
0:10:38And many people wrote in with what in retrospect was a reasonably obvious answer that I certainly
0:10:44didn't think of, which is you're, you could use SSL to prevent injection.
0:10:51So say you're on an airplane and you're using one of the airplane wifi setups, they could
0:10:57choose to inject ads into my website because they can't, there's no reason they couldn't.
0:11:04Whereas if I was running SSL, there's nothing they could do to intercept that.
0:11:08And there's also a bunch of like tinfoil hat conspiracy theories that go along with that.
0:11:12But the most obvious one that I saw,
0:11:15or the most reasonable one I saw,
0:11:16was preventing like ad injection
0:11:19or any other sort of man in the middle sort of scenario
0:11:22with even something that's brochureware,
0:11:25so to speak, like my site is.
0:11:26- Yeah, what's even worse is some wireless carriers
0:11:30are starting to inject ad tracking codes
0:11:32or like actual ads into the pages themselves.
0:11:36So it isn't just if you're on a plane occasionally,
0:11:38it might just be like if you're an AT&T or Verizon customer.
0:11:41Like we've seen certain things,
0:11:43I don't know if they're widely deployed yet,
0:11:45but we've seen reports of like them rolling out or testing
0:11:49or like trying certain things with certain wireless carriers
0:11:51like injecting ad tracking code into every HTML page
0:11:55that's viewed over their data networks.
0:11:56And that's really, really horrible on so many levels.
0:11:59And so this could also help defend against that.
0:12:03- Yeah, it's not tinfoil hat.
0:12:04Like people send us screenshots that I didn't know
0:12:06'cause I don't travel a lot,
0:12:07but like that airline wifi,
0:12:09like when you're on the plane, puts a, you know,
0:12:11Southwest banner over every single page that you're on.
0:12:14Like this is not speculative.
0:12:16This is apparently a thing that happens
0:12:18and not in like a secret kind of like Verizon secretly
0:12:20putting in an HTTP header or a cookie or something
0:12:22as in a giant banner for like, in case you didn't realize
0:12:25that you're on a Southwest flight right now.
0:12:27Terrible, super terrible.
0:12:29The idea that if you use SSL, that no one can,
0:12:32you know, one can see the traffic or man in the middle
0:12:35you again with lots of unpatched, perhaps unknown vulnerabilities out there, I'm not
0:12:40sure how secure that is, but I can tell you that in the corporate world it is not uncommon
0:12:47for corporations to either do this and not tell anybody or do it and tell everybody or
0:12:53try to do it until the employees revolt depending on what kind of company you're in, to basically
0:12:57man in the middle every single employee of the company by putting in an SSL proxy, making
0:13:03every computer in the company trusts the certificate and they're basically man in the middle
0:13:07in all your SSL traffic.
0:13:09So you can't do online banking from home unless you're okay with the IT department
0:13:15at your work knowing all of your passwords and everything.
0:13:17So SSL is not a panacea.
0:13:21Excellent.
0:13:22And then a final note which may bleed from follow up into an actual topic.
0:13:28Marco, you have reverted to your normal comfortable ways and you hate new things again.
0:13:33Can you tell us about that?
0:13:34We are sponsored this week by Harry's.
0:13:36Go to harrys.com and use promo code ATP to save $5 off your first purchase.
0:13:42The holidays are over and here's the chance to start fresh and start making smarter decisions.
0:13:47Overpaying for drugstore razor blades is a bad habit that you should definitely leave
0:13:50behind this year.
0:13:51Harry's offers high quality razors and blades for a fraction of the price of the big razor
0:13:56brands.
0:13:57Harry's was started by two guys who wanted a better product without paying an arm and
0:14:00a leg.
0:14:01no pun intended for those of you who shave your arms and legs.
0:14:04They make their own blades from their own factory, an old blade factory in Germany that
0:14:07they liked so much that they bought it.
0:14:09These are high quality, high performing German blades crafted by shaving experts, giving
0:14:13you a better shave that respects your face and your wallet.
0:14:17Harry's offers factory direct pricing at a fraction of the big brands prices.
0:14:21Harry's blades are about half the price of things like Gillette Fusion and stuff like
0:14:26that.
0:14:27Plus you don't have to wait around for the guy to come to unlock the anti-shoplifting
0:14:29case at the drug store to buy them, that's a terrible experience.
0:14:32They ship them directly to your door and shipping is free for any order above $10.
0:14:37So the starter set is an amazing deal.
0:14:40For $15 you get a razor, moisturizing shave cream or gel, your choice, and three razor
0:14:46blades.
0:14:47When you need more blades they're just $2 or less each.
0:14:50And for example, an 8 pack is $15, a 16 pack is just $25.
0:14:55So it's like, what is that like $1.50 each?
0:14:58So I would say, so I've tried these before, I like them a lot, I would say they are comparable
0:15:02to the Gillette Fusion non-proglide blades.
0:15:05The best price I see today on Amazon for those Fusions is a 12 pack for about 40 bucks.
0:15:1112 Harry's blades are 20 bucks.
0:15:13So it's really half the price of Fusions.
0:15:16I'm very impressed by the quality they achieve here and the economy just can't be beat.
0:15:21They have great packaging, they have nice heavy handles, like the handles are all like
0:15:24fancy nice metal stuff really classy designs like that you know like the stuff
0:15:28the the like the the Gillette handles look like they're from those droid
0:15:33commercials remember those I think I already made this joke but they they you
0:15:36know they're like all like covered in like blue accents and like rubber and
0:15:40plastic and it's all really weird Harry's razors and Harry's blades are
0:15:44just classy they're these nice classy handles nice you know weighty metal stuff
0:15:48it's just so much so much nicer with Harry's you get the convenience and ease
0:15:52of ordering online, you get these high quality blades, a great handle and shaving cream,
0:15:56and excellent customer service at half the price of the big brands.
0:16:00Get started today with a set that includes a handle, three blades, and shaving cream
0:16:03for just $15 shipped to your door.
0:16:07Go to harrys.com and then you can also use promo code ATP to save $5 off your first purchase.
0:16:14Really this is a fantastic deal.
0:16:15Go to harrys.com, H-A-R-R-Y-S.com.
0:16:18Use promo code ATP for $5 off your first purchase.
0:16:21Thanks a lot to Harry's.
0:16:22So Marco, tell us about why you hate new things again,
0:16:25other than that being your natural state.
0:16:28- So last week, I discussed that I had tried
0:16:32a new programming language, sort of.
0:16:34I had written the beginnings of a feed crawler
0:16:38to replace overcast PHP feed crawler or to augment it.
0:16:42I had written the beginnings of that in Node.
0:16:45And I already knew enough JavaScript to get by,
0:16:48so it wasn't entirely learning a new language,
0:16:50but it was at least in a new context
0:16:51using a new platform and stuff like that.
0:16:55And first I'm certainly using JavaScript
0:16:57outside of the browser.
0:16:58I've been trying to make it work, really until today.
0:17:02And this afternoon, I think I finally am giving up now.
0:17:05The problem I was trying to solve, as I mentioned last week,
0:17:07so I won't go too far into it,
0:17:09is that Overcast's feed crawlers basically have to pull
0:17:14about 250,000 feeds now.
0:17:16And I like to pull them no less than once an hour each.
0:17:21and the ones that are popular,
0:17:22I like to pull every few minutes.
0:17:24So we're talking about probably, I don't know,
0:17:26a million feeds an hour, something like that,
0:17:28or more than that maybe.
0:17:30So it's a good number of feed fetches per hour.
0:17:34And right now, I use 240 PHP processes
0:17:39that are pulling things off of the Beanstalk queue.
0:17:41It takes tons of CPU power, it takes tons of RAM.
0:17:45And this is obviously not made for this,
0:17:47whereas the node event loop kind of model
0:17:50is way better suited for this kind of like
0:17:53large parallel crawling of network things
0:17:56and then occasionally doing some work on them.
0:17:57Like it's way better for that.
0:17:59It's so much better suited for that.
0:18:01Anyway, so I tried Node and I've been playing with it
0:18:04for the last week or so and I just can't get it
0:18:08to work properly.
0:18:09I have the crawler functioning perfectly fine
0:18:13but I keep hitting either weird limits
0:18:15that cause weird performance issues
0:18:17or the more common problem is memory leaks
0:18:19and that's the one that I've been able to solve
0:18:22all the performance problems, all the weird little edge cases
0:18:24all the weird exceptions thrown from odd places
0:18:27that I can't quite figure out where they're coming from,
0:18:30fixed all that, I still can't fix the memory leaks.
0:18:33And so I could just post the script online
0:18:36and ask people, "Hey, fix the memory leak for me."
0:18:39But ultimately I don't want to depend on a platform
0:18:43that seems so weird and hacky.
0:18:46And what I found, last week I mentioned how
0:18:49I didn't foresee myself rewriting the whole backend
0:18:52or wanting to make a whole web app in Node
0:18:54just because of the nature of web apps.
0:18:56You make a database request and then you make a couple more
0:18:59and then you put things together.
0:19:01Doing all that in a pure asynchronous framework
0:19:05is really clumsy and it leads to all sorts of spaghetti code
0:19:08and callback hell and everything like that.
0:19:10And so I, and not only that,
0:19:12but I just don't like JavaScript.
0:19:13I really don't respect it as a language.
0:19:15I really don't like its crazy object system.
0:19:18there's a whole lot about JavaScript
0:19:19that I really don't like.
0:19:20Granted, this is a little early for me
0:19:22to judge a whole language like this,
0:19:24but it certainly seems like Node and JavaScript,
0:19:28that combo is really just as hacky as PHP in many ways.
0:19:33And it seems like I'm taking a step sideways
0:19:36rather than a step forward.
0:19:38And I don't have a lot of faith in this combo
0:19:41for the future of my programming needs and career.
0:19:46So instead, tonight I started trying Go,
0:19:51and I'm gonna see how that goes.
0:19:52I literally have, I've written like 10 lines of code
0:19:54in it so far, I haven't had a chance to do any more.
0:19:56So maybe ask me next week how that's going, but,
0:19:59and the reason I'm picking Go right now to try next,
0:20:03it seems like the kind of thing that I would enjoy
0:20:07based on their philosophies,
0:20:08some of the decisions they've made.
0:20:10I mean, obviously the language looks really weird to me
0:20:11'cause it doesn't use C-style syntax for everything,
0:20:13and you know, this is the first non-C syntax language
0:20:16that I'm learning in a very, very long time.
0:20:18I used to say that if I had to pick a new language today,
0:20:21it would be Python.
0:20:23And looking around the landscape today,
0:20:25I think that would still be a reasonable choice,
0:20:28but there's no question that Python is aging.
0:20:31And there's all these new languages that are coming out
0:20:34that do things differently,
0:20:35that are more advanced in certain ways.
0:20:38And I feel like I learn new languages so infrequently,
0:20:42and the way I do it is I prefer to like really deeply master
0:20:46a very small number of them,
0:20:47rather than try a whole bunch of them
0:20:49and have some familiarity with all of them.
0:20:51Because of that, I'm afraid that Python
0:20:53will fall out of favor sooner by possibly
0:20:57as much as a decade than compared to something like Go,
0:21:01or Node, or Rust, or any of these newer languages.
0:21:04I could go that route, and I might still go that route,
0:21:07I don't know, we'll see where this experiment ends.
0:21:09But I think what I'm doing right now,
0:21:11making this thing that has to crawl
0:21:12a whole bunch of feeds in parallel,
0:21:13and then read stuff out of the database
0:21:15to know what to crawl and then write stuff
0:21:17into some kind of queue to hand it off
0:21:19to the rest of the app to do the rest of the processing,
0:21:21I'm getting a pretty good feel.
0:21:24I think this might be a good task to try
0:21:26in three or four different languages
0:21:28and just get some idea of what the language is like to use
0:21:33on this kind of scale and how appropriate is it
0:21:35for this kind of task.
0:21:36Right now I'm gonna try this in Go.
0:21:38I don't know if this is gonna be the last language
0:21:39I use for this task.
0:21:40I hope it is.
0:21:41I like the way Go keeps the language itself
0:21:45seemingly fairly simple.
0:21:47It doesn't have things like generics
0:21:49and a whole bunch of new things like that,
0:21:52all these meta-programming type features.
0:21:54It doesn't seem to have all those things.
0:21:56I like that a lot.
0:21:57I really prefer a language that can fit in my head
0:22:00and a language that is as easy to read as it is to write.
0:22:05And it seems like a lot of the new languages these days
0:22:08are throwing that balance a little more
0:22:10towards the other directions.
0:22:10They're making all these really, really crazy
0:22:14little features, little exceptions, little conveniences
0:22:16to make the code look really cool when you're writing it
0:22:19or to make it make for good conference slides
0:22:22or a good Hello World example where like,
0:22:24look at what you can do in these two lines of code
0:22:28and it's all really dense and concise
0:22:29and does cool things and abstract away
0:22:31what's actually happening below the scenes.
0:22:34And I don't like that style because it makes it very hard
0:22:36to both learn and maintain that code.
0:22:40That's not a style.
0:22:42That's abstraction, that's programming.
0:22:44I mean, why not just use toggle switches
0:22:46then you'll know what's going on.
0:22:46Why not push the electrons from the source
0:22:50to the drain and the transistors?
0:22:51I mean, like I kind of understand what you're getting at
0:22:54in terms of constructs that may look unfamiliar,
0:22:57but it's not like, it's not a choice of styles
0:22:59of like crane technique and drunken monkey technique.
0:23:01It's like, these are the languages that are trying to have,
0:23:06You know, ways to express more with less typing.
0:23:11And the general argument in favor of that is history has more or less shown that the
0:23:17number of bugs per line of code written doesn't change too much.
0:23:21So the only way to get fewer bugs is to reduce the number of lines of code you need to write
0:23:26to solve a hidden problem.
0:23:27Obviously you can go to extremes there where you're compressing things down to the point
0:23:32where it's not understandable.
0:23:33But I don't think Swift like Swift is not a good example of that
0:23:37I don't think anything in the language makes it like this one line is incomprehensible
0:23:41I think the the problem areas of Swift are more like the problem areas of C++ with like templates generics and
0:23:47operator overloading
0:23:49Giving you the ability to make incomprehensible
0:23:51Mumbo jumbo, but that's the opposite
0:23:54That's where there's more typing not less like when you when you see some giant declaration with a million generic types
0:24:00And then you can't make heads or tails of it that is not concise that is verbose
0:24:04And 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
0:24:09Whereas go not letting you do that type of thing you're never gonna see a crazy prototype like that. You know or even like
0:24:15block syntax or
0:24:17Pointers to functions and syntax and see where you have to like sort of be the compiler in your head and parse stuff out
0:24:22Make the language simpler you won't see that and that that's something that you know for example JavaScript has that going for it
0:24:27There's not much you can type in JavaScript
0:24:30that is too complicated to look at
0:24:32where you won't even understand programmer intent.
0:24:34You may be surprised by what it actually does
0:24:36because of weirdness, but you will get the intent
0:24:38of the line of code, whereas in C++ and Swift
0:24:42and a lot of other languages,
0:24:43sometimes you can't even figure out what the intent is
0:24:45without sort of parsing and lexing it yourself
0:24:48in your head to figure out what it does.
0:24:50- Right, exactly.
0:24:51Well, and also, I like to be able to look at some code
0:24:54that I'm reading and be able to roughly tell what it does
0:24:58without having to jump around to too much other code.
0:25:00And so if you have some crazy library
0:25:03or some crazy standard,
0:25:04you know like a lot of these new language features
0:25:06that a lot of the more crazy dynamic-ish languages offer,
0:25:11they're a lot like C macros,
0:25:12where it's like you could define your own,
0:25:15and you know same thing with operator loading
0:25:16and generics, you could define like your own meta language
0:25:20on top of this language for your own code.
0:25:22And so if you're reading someone else's code written in this language, or you're
0:25:26reading code you wrote a year ago in this language when you were being a little too
0:25:29clever, it can be really hard to figure out what's going on or what causes certain behavior
0:25:33you're seeing.
0:25:34That's one of the reasons I don't like Rails, and one of the reasons I avoided back
0:25:37forever ago why David and I decided to write Tumblr and PHP instead of Rails, was because
0:25:42it had a lot of the mix-ins, a lot of the behavior caused by things that are hard to
0:25:47find.
0:25:48And I'm sure it isn't like that anymore, I don't know.
0:25:52I literally looked at it once in 2006 for about a month.
0:25:56So take all that with a grain of salt.
0:25:58But generally I don't like having all that magic
0:26:02that's hard to find and hard to follow
0:26:04when you're reading the code
0:26:05or when you're debugging the code.
0:26:06That's why I like languages like C and like Objective-C
0:26:09because most of that magic is not possible
0:26:13or at least is very, very rarely used.
0:26:15- Well, C, you said it in C, it's macros.
0:26:17Macros make that a nightmare.
0:26:18And looking at someone, I mean, to give a great example,
0:26:21try looking at the Perl source code, not like, you know, Perl code, but the C program that
0:26:26is the Perl compiler and, you know, executable.
0:26:30It is so filled with macros, it is almost nonsensical.
0:26:33And macro, people don't like macros with good reason, but if you take macros and take away
0:26:38all of the evil sort of text processing crap about them, what falls out is Lisp, and people
0:26:43love Lisp.
0:26:44And that, this means, you know, when you say that if you look at a program, it looks like,
0:26:47you know, some meta program you can't figure out, that's why people love Lisp, that you
0:26:50you essentially define a language
0:26:52to solve your specific problem
0:26:53and then use that language to write your program in.
0:26:57And so that's the whole idea of Lisp is that you will,
0:27:00there is no syntax to speak of,
0:27:02it's just, you know,
0:27:03fingernail clippings all the way down,
0:27:05and then you just sort of define your own vocabulary.
0:27:09And if someone else was to look at that,
0:27:11yes, they would have to say,
0:27:11"I don't know what this does."
0:27:12I mean, that's true of looking at any program.
0:27:14It's kind of weird hearing you say that
0:27:15because you're working with like vast libraries
0:27:18millions of lines of code that you a didn't write and B usually don't even have access
0:27:22to the source code too. And that's the majority of the code in your program. Like an overcast.
0:27:25You know what I mean? The problem I have is that Marco, all I'm hearing you say is I want
0:27:31to remain a C programmer for life. And that's okay if that's what you want to do. But like
0:27:37you grumbling about generics, which I know is just like an off the cuff example, but
0:27:42you grumbling about generics is nails on a chalkboard to me because I love generics.
0:27:49Nobody loves generics, Casey.
0:27:50I do.
0:27:51And now I'm coming at this from C# where it's very…
0:27:59Generics came to C# at a time when everything was extremely strongly typed.
0:28:04Type inference wasn't a thing.
0:28:06And you had to cast everything all the time.
0:28:11And it was the most annoying thing in the world.
0:28:14And to me, generics are being extremely deliberate about what you're trying to accomplish.
0:28:21And I just, when you say, when you say that, oh, you don't, you don't feel like all the
0:28:27code is where you expect it to be and you have to jump around in different files to
0:28:31find it all.
0:28:32All I'm hearing you say is I want to be a procedural C programmer for the rest of my
0:28:35life and that's okay.
0:28:38But gosh, that's so limiting, and I hope that that's,
0:28:41I hope that's not what you mean,
0:28:43even if that's what I'm hearing you say.
0:28:45- No, I mean, that isn't what I mean.
0:28:47However, you know, like the languages I know,
0:28:49I've either, either they work this way
0:28:51or I've been able to make them work this way.
0:28:53What I, my goal is ease of reading the code
0:28:57and simplicity, keeping things small, reducing cleverness.
0:29:02I am not a very clever programmer.
0:29:05I program things in pretty straightforward ways usually.
0:29:08all of the increase of cleverness that is infecting modern language design,
0:29:14it makes things look cool up front, but it makes it really hard to use over time,
0:29:19or with a team, or when maintaining code, or when using third-party code.
0:29:24It gets very, very difficult.
0:29:26I feel like a lot of this is complexity for its own sake, or solving the wrong problems.
0:29:31Well, but your problem here is not a language problem.
0:29:34It's kind of a library problem.
0:29:36It's mostly an implementation problem
0:29:39because it's like you have a well-defined problem to solve.
0:29:41I don't think the language matters at all.
0:29:42All that matters is the libraries
0:29:44and the sort of stability of the implementation
0:29:46of that language and can it handle
0:29:48because you're doing things at a fairly large scale
0:29:50and you've got something that works,
0:29:51but it's kind of around the creaky edges
0:29:53of what PHP can handle and it's not particularly efficient
0:29:57as you saw when you did the Node implementation.
0:29:59It could be more efficient, but the Node is young
0:30:00and it's flaky and has its own issues
0:30:02And so what you're looking for is something that will work with less flakiness than Node
0:30:11had, fewer resources than PHP did.
0:30:14And so I think Go is a reasonable thing to be looking at.
0:30:16And as I said on Twitter, and I wasn't actually joking, if you want to do this in Perl with
0:30:20any event, which is a wrap around tons of event libraries, you could use any event wrap
0:30:25around the libev library.
0:30:30I think this would be fairly straightforward.
0:30:32And so would your Perl solution use fewer resources than the PHP one?
0:30:39Probably because it would use a real event library written in C.
0:30:42Would it have fewer bugs than the Node one?
0:30:44Probably because that library and that CPAN module are all way more mature than the Node
0:30:48implementation of it.
0:30:50But Go would definitely be faster.
0:30:52But when you do it in Go, you're left with, "Okay, well, am I going to use an existing
0:30:57event library?
0:30:58Am I going to sort of write my own event library?"
0:30:59because once you're sort of writing your own event library
0:31:01and go, if you're not going to use libevent or libv or something
0:31:05like that, then that's immediately worse.
0:31:08It doesn't matter how good the language is.
0:31:10No, don't try to re-implement your own event library
0:31:14or directly with system calls into it.
0:31:16Like someone did that already.
0:31:17What you just want is a language that
0:31:19exposes one of these mature libraries that
0:31:21works really well in a way that's not buggy,
0:31:23doesn't leak memory, that's fairly performative.
0:31:25And so I would obviously try Perl first,
0:31:28because I know there's a bunch of event library wrappers.
0:31:30In fact, there's a wrapper that wraps
0:31:31pretty much any event library called any event.
0:31:34And so you could go through like,
0:31:35let me try seven different event libraries
0:31:37with the same Perl program.
0:31:38And if they all suck, you're like, well, that didn't work.
0:31:40You know, 'cause I haven't done event-driven programming
0:31:43in Perl, anything more than like a trivial thing.
0:31:46So I can't tell you whether it will actually work,
0:31:47but I can tell you that it's old enough
0:31:49and been around long enough that there's a million wrappers
0:31:51for event libraries.
0:31:52And maybe that would just help you narrow down
0:31:53which event library you wanna use.
0:31:54And then you could just write against that one in C,
0:31:56which you already also talked about.
0:31:57hey, let me go to libevent,
0:31:59let me write it directly against it and see.
0:32:01But I've also heard that libevent
0:32:03is not the best event library if you're looking to do that.
0:32:05So what Lauren Burchard was just saying
0:32:06that he wrote an Objective-C wrap around libev
0:32:10to do something similar.
0:32:12- Yeah.
0:32:12- I think that's what it's gonna come down to
0:32:14is either the language has something like this built in,
0:32:17a couple of people mentioned Erlang or whatever,
0:32:18like has some sort of parallelization event loop type
0:32:21of making efficient use of CPU
0:32:24when a lot of things are gonna be in IO wait,
0:32:27either has that built into the language
0:32:29or it has a really good stable wrapper
0:32:30around one of the other low-level libraries
0:32:32that does this for you.
0:32:34- Yeah, well, I mean, and it should be,
0:32:37in case the implication here was not clear,
0:32:40I'm not just looking for a solution to this one problem.
0:32:44I'm also looking for a long-term replacement
0:32:46to PHP in my toolkit.
0:32:47- Yeah, but I don't think this is a great example for that,
0:32:52because say you find something
0:32:54that does a really good job on this,
0:32:55it still doesn't say, okay,
0:32:56now I'm going to write all of the stuff I used to write in PHP, I'm going to write in
0:32:59Go. I don't think you would do that, but I think Co could be an appropriate choice for
0:33:03this provided you get the event stuff nailed down. And by the same token, were you to get
0:33:08a handy little solution to this in Perl with any event or something, doesn't mean you would
0:33:13say, okay, now I'm going to rewrite all those PHP agents in Perl because that would, well,
0:33:17I think it would still be a big upgrade, but anyway, you're probably not going to do it.
0:33:21Well, in addition to Perl having many of the same problems that I just cited with PHP and
0:33:25Python, it just would feel like a sideways step.
0:33:30- I know, but I was suggesting it justice
0:33:32because you were at the point now where you're like,
0:33:34look, I wanna solve this problem without using
0:33:36240 PHP processes that are inefficient
0:33:38and use a lot of resources.
0:33:39It's like an economic, it's like a single purpose problem,
0:33:41like I have a problem, there's actual impact
0:33:43to me implementing this better.
0:33:45Node looked like it was gonna do it,
0:33:46but it's a little flaky, try a few other things.
0:33:49This could be one of the other things you try.
0:33:51- The reason I'm able to do the things I do,
0:33:53The reason I'm able as one person to run a web service with a few hundred thousand
0:33:58users and an iOS app and be able to keep up with them semi-okay is because I don't spend
0:34:05a lot of time experimenting with new languages and new systems and making things just for
0:34:10fun.
0:34:11Most of what I do is to serve the things I'm working on.
0:34:14And so I don't want to go on an expedition trying to learn a bunch of new languages to
0:34:19try to pick the best one for just this one task.
0:34:22I want to be able to leverage this, to use this,
0:34:24to basically build up my toolkit
0:34:26and modernize this one very ancient part of it.
0:34:29Because I know that PHP is,
0:34:31look, I could keep using it for a long time,
0:34:34it's gonna be around for a long time,
0:34:36but I do keep running into things that it's bad at.
0:34:39And I recognize that, as I said last episode,
0:34:43I really don't have a lot of faith
0:34:45in the quality of the direction it's going.
0:34:48And there are lots of other languages
0:34:49that I should be considering.
0:34:51I actually heard from Russell Ivanovich, I forget how you say his last name, I tried
0:34:57to remember it and tried to learn it and I forgot, I'm sorry Russell.
0:35:00He's one of the guys in Shifty Jelly, one of my competitors in the podcast app space,
0:35:03they make Pocket Casts, and he's the nicest guy in the world and he told me privately,
0:35:08they crawl what sounded like a pretty impressive number with a pretty impressively low amount
0:35:13of hardware and they do it all in Java.
0:35:16I don't know anything about Java in the modern day, the last time I used Java was in Computer
0:35:20Science 101 back in 2001.
0:35:25Maybe people told me that I should be looking at C# for this.
0:35:28And Casey, I'm curious to know what you think about that.
0:35:30But there are lots of other languages I could be looking at right now.
0:35:33I don't know.
0:35:34Casey, if you were faced with this problem, what would you do?
0:35:38I think the first thing I'd do is I would try to write it in Node.
0:35:45And I thought you had said on Twitter that the issue that you're having with Node is
0:35:51that getting the process to start again is where everything's going wrong.
0:35:58Like the set timeout is what's breaking.
0:36:01Is that, well, the set timeout is eventually leading to memory leaks.
0:36:04Is that a fair statement?
0:36:05Oh, it's immediately leading to memory leaks.
0:36:08It's like every set timeout is, for some reason it seems to be that it's capturing the scope
0:36:13of its calling scope and it's like retaining
0:36:16its calling scope even though it's just like,
0:36:19it's just calling a function.
0:36:21Like it's not, it's like I don't see why it needs
0:36:23to retain anything that's in the calling scope,
0:36:25but for some reason it is.
0:36:26And if you search around for node set timeout
0:36:30or set interval memory leaks, you see a bunch
0:36:33of other people hitting problems like this
0:36:35and some of the fixes look like bugs to me.
0:36:39Some of them are like, well if you set,
0:36:41If you just call setTimeout, then you'll get a leak,
0:36:44but if you assign it to a variable,
0:36:45say var t equals setTimeout, then it doesn't leak.
0:36:49There's a bunch of weird stuff going on
0:36:51with the way this captures things.
0:36:53Either it's a bug, or it doesn't make any sense, or both.
0:36:56Either way, that is a big problem for me.
0:36:59I don't wanna have to keep fighting issues like that
0:37:01in a language I'm gonna invest much time into.
0:37:04Also, again, what I said before is,
0:37:06I don't like JavaScript, and I don't foresee
0:37:10this being my long-term replacement for PHP,
0:37:12so it feels like I'm kind of wasting time
0:37:14doing a whole bunch in it.
0:37:16- Yeah, I think the reason I brought that up is
0:37:19if the only issue you're having with Node
0:37:22boils down to just tickling that Node process
0:37:25and getting it to do its thing,
0:37:26then couldn't you fire that from PHP
0:37:28and have Node do the crawling?
0:37:30- Well, no, the whole idea here,
0:37:33and when I asked on Twitter, am I doing this wrong,
0:37:37or does setTimeout just not work without leaking memory?
0:37:40and I got a bunch of responses from node programmers.
0:37:44None of them use it.
0:37:46All of them trigger recurring scheduled events
0:37:50with external cron tasks that call into the node
0:37:53with a web request or something.
0:37:55- Yeah, that's basically what I'm trying to do.
0:37:56- Yeah, or they use things like,
0:37:58there's something called I think Node-Cron
0:37:59or something like that, but if you look at the source,
0:38:01it's using setTimeout internally,
0:38:03so that's basically the only option.
0:38:06All I need to do is I need to crawl,
0:38:10for all these feeds, each of them has a TTL
0:38:12that I calculate.
0:38:13I calculate when the next one should run
0:38:16and I say call me again with this ID in this many seconds.
0:38:21That's it, that's all I have to do.
0:38:22So they shouldn't be nesting, they're not stacking up.
0:38:26I verified that, it's not like they're not being cleared
0:38:31and so making more and more calls per second,
0:38:34it's not doing that.
0:38:35It's just something about the memory capture.
0:38:37But again, that's honestly, I'm sure a Node expert
0:38:42could look at this and possibly fix it.
0:38:44It's more that I don't wanna keep investing in a language
0:38:47that is clashing with me on such a fundamental level
0:38:50and that I don't feel is serving my long-term goals.
0:38:54- Yeah, and I really wanna defend Node
0:38:56because I've not done a overwhelming amount
0:39:00of Node programming, but the programming I've done in Node,
0:39:03I really like.
0:39:04I want to defend JavaScript because
0:39:07although it is full of landmines and pitfalls
0:39:11and bottomless pits,
0:39:12it is actually to me anyway, fairly fun to write.
0:39:15But if I were in your shoes,
0:39:18I'd probably be coming to a similar conclusion.
0:39:22And it certainly sounds to be
0:39:23a pragmatic conclusion regardless.
0:39:26To go back and answer your question,
0:39:27well, what about like C#?
0:39:29Well, that's challenging
0:39:32because the right way to do it,
0:39:35if you're gonna do it in C#,
0:39:36is to run ASP.NET, IAS, the whole Microsoft stack.
0:39:41And I know, right, and you have no interest in that.
0:39:44And honestly, if I were in your shoes,
0:39:46I wouldn't have any interest in that.
0:39:48And you know what?
0:39:49When I was doing for fun programming in my own time
0:39:51that I was going to have to pay for,
0:39:55did I use C# and ASP.NET?
0:39:57Hell no, I didn't, because I didn't wanna stand all that up.
0:39:59I didn't want to have to worry about all that.
0:40:02So C# as a language, actually, I think would,
0:40:05I think you would like C# a lot to be honest,
0:40:08but the problem is you've got all the periphery to deal with
0:40:11that I don't think you would enjoy.
0:40:13Now, of course, you could take the approach of,
0:40:15well, let me look into Xamarin/Mono,
0:40:17and that might work.
0:40:20To be honest, I'm now outside of my comfort zone
0:40:22because I work in the Microsoft stack.
0:40:24So I don't really know a lot about the Xamarin and Mono,
0:40:29the way that would be deployed, but it's worth looking into.
0:40:33I don't think C# is going anywhere anytime soon.
0:40:37I don't know enough about Go to be able to say,
0:40:39yes, that sounds like an excellent choice
0:40:41of something that has long-term viability.
0:40:43I think Node is certainly very trendy right now
0:40:47in the same way that Python and Ruby have been in the past.
0:40:50But to your point earlier,
0:40:52are Python and Ruby going to remain trendy?
0:40:55I don't know.
0:40:56And is Node going to remain trendy?
0:40:59know and although it seems a little weird to me to throw node out entirely because of set timeout
0:41:05i can also understand how that's the straw that's breaking the camel's back so if i were your shoes
0:41:11i honestly don't know what i would do i guess i would try go and see how it worked um but geez
0:41:17it's a tough it's a tough call i'm not sure what the right answer is i was gonna say i think
0:41:21tangling both of these things up with each other finding a new language to replace php that's going
0:41:25gonna be worth your while long term and solving the specific problem is over
0:41:28complicating it. I think those are two things that you should do and I don't
0:41:32think they need to be combined. It's something, it's it'll be nice if you
0:41:35combine them. I can understand the desire like oh if I could get them you know two
0:41:37birds with one stone but the the needs are so different. I mean like on the one
0:41:42hand for example the best bet for a new language for you to learn that you're
0:41:46gonna have to use later is probably at this point Swift and not because you're
0:41:49gonna use your place PHP but because Apple's gonna make you use it too.
0:41:53Well, and I might learn that also but but because Swift is not open source
0:41:57there's nothing about Swift that can go on a server yet and and so I
0:42:01I'm gonna have to maintain these two languages like yeah, I know you still need something to replace PHP
0:42:07But yeah, exactly like it's like Swift put that aside
0:42:09You're probably gonna need to do that maybe look into it to see if it helps you here
0:42:13Maybe does maybe doesn't probably won't then you got the problem of what do I need to replace PHP?
0:42:17And then you've got the problem is what do I do short term to make this crawler take fewer resources?
0:42:21Well, I would also point out, I tweet shared this last week during the break, last episode
0:42:29of Core Intuition was really good, I'll have to look up the number, I'll put it in the
0:42:32show notes, where Daniel Jowkut and Manton Reese were talking about Swift and like, how
0:42:38safe is it to use Swift today?
0:42:41Or how safe is it to invest a whole lot of time in Swift today?
0:42:46And they rightly pointed out, like, we don't actually,
0:42:49like Swift is not a sure thing yet.
0:42:51It is a thing that is out there
0:42:53that Apple has put out there.
0:42:54They've also put out things like garbage collection
0:42:57in Objective-C, things like the Java bridge
0:43:00back forever ago, that ended up being axed
0:43:03only a few years down the road
0:43:04'cause they just weren't working out.
0:43:06We don't know if Swift is actually gonna be here
0:43:07for the long term and actually be the eventual replacement
0:43:10for Objective-C yet.
0:43:11All we know is that it seems like that's the goal right now.
0:43:14But this is not the first time
0:43:16something like that has come around.
0:43:18Apple's certainly in a better position now
0:43:19than they were when the other alternatives came around,
0:43:21but it is not a guarantee that Swift will be the next thing
0:43:26for Objective-C programmers.
0:43:29All this is is we're trying something now,
0:43:32and I would point out we seem to be
0:43:34in a somewhat turbulent time at Apple.
0:43:36In addition, I mean, God, looking at how strained
0:43:41their engineering resources are,
0:43:43it does seem like a terrible time
0:43:44to have introduced you to language.
0:43:46(laughs)
0:43:47Like just for them, like not even just for us.
0:43:49I mean, we'll deal with it, whatever they do, but--
0:43:52- But I do think Swift is much stronger of a,
0:43:56if you had to bet on one of them,
0:43:57you just named a whole bunch of them.
0:43:58The Java Bridge, Java Bridge was done
0:44:00from a position of weakness,
0:44:01'cause it was like maybe people only use
0:44:02these crazy square brackets.
0:44:03That is a super weak position,
0:44:04and they were just trying to get people
0:44:05to develop for the rest.
0:44:07Garbage Collection was always kind of half-heartedly pushed.
0:44:10It was like, "We're making Garbage Collection,
0:44:12and maybe we'll dog food it here and you should make your apps work with it."
0:44:17But then they couldn't even convince all Apple internal library people to use it for their
0:44:21libraries and make them garbage collection safe.
0:44:24It was never like…
0:44:26The amount of publicity and the push behind and the specific team behind Swift is like
0:44:33their team that has proven that they can get things done within Apple having changed their
0:44:38whole compiler infrastructure over several years.
0:44:41It was in a keynote, but you know, it was also in the keynote.
0:44:44We're going to the standards bodies starting tomorrow, and we're going to make
0:44:49FaceTime an open industry standard.
0:44:51Yeah, but that was Stitch Steve Jobs saying random things on stage and people
0:44:58going crazy behind the scenes.
0:44:59Like this, this is of all of the sort of major technology based things.
0:45:05I would say this is even stronger than like, by the way, you should build your
0:45:09OS X apps using Project Builder.
0:45:11Like this was more emphatic than Project Builder
0:45:14'cause it took them a while to get,
0:45:15in fact, I think it basically took them
0:45:17until they had the X code name to say,
0:45:20no, this is it, this is, you know,
0:45:22we're telling you like we are completely taking over
0:45:25the compiler infrastructure,
0:45:26which they were from the beginning anyway,
0:45:27but they were kind of timid about, you know,
0:45:28especially coming off the whole
0:45:30code warrior thing and everything.
0:45:32My recollection anyway,
0:45:33is that they were externally not shoving it in your face
0:45:37that by the way, if you're gonna develop
0:45:38applications for our platform, you're going to use our IDE and our compilers, because
0:45:43they were in a transition period there and eventually said, no, you're going to use our
0:45:45stuff.
0:45:46And to emphasize that, it's called Xcode now instead of Project Builder, and you're just
0:45:49going to have to deal with it.
0:45:51Swift was very bold and very strongly backed in.
0:45:55I would say that the thing you should be wary about using it now is they've said they're
0:46:00going to just constantly break the syntax and there could be all sorts of weird things
0:46:04having to do with source code compatibility.
0:46:06the tools are very immature right now and the performance of the compiler sucks and
0:46:10all this other stuff.
0:46:11Yeah, yeah, there's plenty of reasons to stay away from it, but like this is just so much
0:46:14stronger than the other things you've listed.
0:46:16So even though those things have happened in the past and you had to be like, the problem
0:46:20with Swift is the opportunity cost of not doing it seems much higher.
0:46:23Like you could sort of say, all right, well, they're still supporting Objective-C, right?
0:46:27So I don't have to do this Java thing.
0:46:28We'll see how that shakes out.
0:46:29And the garbage collection is like, well, I'll wait to see what happens.
0:46:32You can do it with Swift too.
0:46:33Let me wait to see what Apple actually implements in Swift.
0:46:36But even as soon as Apple implements its first Swift only library or something, even then,
0:46:42I still think you could potentially say, "All right, I'm all in on Swift," and they could
0:46:45still change their mind.
0:46:46So I think we have probably three years to be sure, but I think the degree of confidence
0:46:51in Swift being a thing, whether it's good or not, the fact that Apple is going to stick
0:46:55to it, it's pretty high at this point.
0:46:57Yeah.
0:46:58And plus, I don't know Apple's history with like MetroWorks and CodeWarrior and stuff
0:47:02like that.
0:47:03I came way later than that.
0:47:04Certainly, it seems like a lot of the moves they've been making over the last five to
0:47:0910 years, probably five-ish years, have been to set the things in motion to get Swift to
0:47:15be a thing, you know, to work on LVM, to work on Clang, to work on all of these things that
0:47:22make up the Swift toolchain.
0:47:24It seems like a very deliberate multi-year process to get to where we are today.
0:47:28And yeah, Apple will throw things away on a whim if they so desire, but geez, it seems
0:47:32Seems like that's a lot of work to be thrown away just for fun.
0:47:36And of course they have the big problem that they throw it away.
0:47:39They just say, "Okay, well back to Objective-C.
0:47:42Retreat to safety."
0:47:43They need, as I've said many times, they need something.
0:47:48You can't just stick with Objective-C forever.
0:47:52Swift too soon, should they retreat and then advance again in a couple years in the future?
0:47:55I think they're already behind and they need something like Swift.
0:47:57And if it's not Swift, this will be a huge mistake for them because they will have wasted
0:48:00years and tons of resources attempting the Swift transition and if it fails it's like
0:48:05"uh, uh, what do we do now? C# I guess? I don't know." They have a problem.
0:48:10We are also sponsored this week by Fracture. Remember Fracture? They print photos directly
0:48:14on glass in vivid color. Go to fractureme.com. F-R-A-C-T-U-R-E-M-E dot com. I have Fracture's
0:48:23hanging all over my office. They are awesome prints. I like them a lot. Other people have
0:48:28compliment to them whenever they've seen them.
0:48:30They're fantastic.
0:48:31So they print photos directly on glass and then you can hang them up directly.
0:48:35You don't have to frame them.
0:48:36They are their own frame basically.
0:48:38It's really, really nice.
0:48:39The price I started at just $15 for a 5x5 inch print and I use that size.
0:48:44I have a little row above my window in my office here.
0:48:47I have a little row or the little square prints and I use them to print app icons of the apps
0:48:52I've done.
0:48:53It's kind of like this nice physical,
0:48:56almost like a trophy row of like,
0:48:57here's the things I've made.
0:48:59Because in our world, you know,
0:49:00you don't get a lot of like physical recognition
0:49:01of things you make in software.
0:49:03I really like that and people have,
0:49:05people have taken that idea and ran with it.
0:49:06I've heard of a lot of other people who are doing that too.
0:49:08You can do that.
0:49:09You can also print photos.
0:49:10I have a couple of photos printed on the other wall
0:49:12over here.
0:49:13I have like, looks like it's probably like an 11 by 17 size.
0:49:16It's a nice size.
0:49:18Anyway, every fracture is handmade, checked for quality
0:49:21by their small team in Gainesville, Florida.
0:49:23It is the thinnest, lightest, and most elegant way
0:49:26to display your favorite photo.
0:49:28I can attest to that also.
0:49:30You would think a big slab of glass would be heavy,
0:49:32but the glass layer is actually very thin on the front,
0:49:36and behind it is a little bit of,
0:49:37it's almost like a foam board kind of thing
0:49:40so you can mount a hanger or something.
0:49:42So it actually isn't unsafely heavy.
0:49:46'Cause I was also afraid, how big do I want a piece of glass
0:49:49hanging out of my wall?
0:49:50but it's nice, it's a very nice weight balance.
0:49:52It does not seem crazy to hang this on your wall.
0:49:55They also have desk stands, it's really great.
0:49:57Anyway, you can get 20% off your first order from Fracture
0:50:00by using coupon code ATP.
0:50:03That'll also let them know that you came from our show
0:50:05and that'll make them sponsor us more in the future,
0:50:07so please do that.
0:50:08Go to fractureme.com and use coupon code ATP for 20% off.
0:50:13These are great, everything you need is in the box.
0:50:15Great quality, I can't recommend them enough.
0:50:17Thank you very much to Fracture for sponsoring our show.
0:50:20- All right, any other thoughts on your adventure
0:50:24into the wilderness that scares you?
0:50:26- I mean, this will probably be an ongoing topic.
0:50:28I mean, heck, maybe 2015 will be the year
0:50:30of me learning too many programming languages
0:50:32or just switching to Java.
0:50:33I don't know.
0:50:35- I doubt it'll be you switching to Java, but I'm with you.
0:50:37- Probably not, but you never know.
0:50:39- Fair enough.
0:50:40All right, I would like to, time permitting,
0:50:42talk about your new iPad, but before we do that,
0:50:46Jon, why don't you tell us about some survey
0:50:48that's been going on lately?
0:50:50I didn't get the survey because I don't have any apps in any of the app stores, I assume.
0:50:54I don't know if it was sent to everybody, but a lot of people got a survey from Apple
0:50:58asking them questions about the app store, and people have been tweeting little pictures
0:51:02of it.
0:51:03I want to talk about the survey in general, but one specific part of the survey screenshotted
0:51:08and sent to us by Joe Seger.
0:51:11This is a question from Apple Survey.
0:51:13It says, "Which are the top three most effective marketing channels in driving downloads of
0:51:17your apps on the app store?"
0:51:19So this is asking people, how do you
0:51:21get people to download apps in the App Store?
0:51:22There's tons of choices, not just one.
0:51:24And there's a little red arrow in this picture
0:51:26that shows the second choice in the list.
0:51:28The first choice is in-app messaging.
0:51:30And the other choice is like email, PR, community,
0:51:33social media, television, print, all different ways
0:51:35that you get people to come and download your app.
0:51:37The second choice is push notifications.
0:51:41And so this is great, because you're like, all right,
0:51:45is this a trap?
0:51:46Are they trying to send it to people?
0:51:48And then if you check push notifications,
0:51:50everybody checks push notifications,
0:51:51gets a little email from Apple and says,
0:51:53"You've indicated that the most effective marketing channel
0:51:55"is push notifications.
0:51:56"You may not be aware, but section 5.6 says
0:51:58"that you can't use push notifications
0:52:00"for marketing purposes and blah, blah, blah."
0:52:01Or did the person who wrote this question have no idea
0:52:05that that rule exists and is merely reflecting the reality
0:52:08that push notifications are a common marketing channel
0:52:12or some combination thereof?
0:52:13Like, it's baffling to me.
0:52:16talk about one hand not knowing what the other is doing.
0:52:18You can't tell from the question whether it's, you know,
0:52:21another situation where some department
0:52:23doesn't understand another department.
0:52:25Or it's, maybe they just like, want to just be honest
0:52:29and just see how many people will check that as their answer.
0:52:32I don't know, it confuses me greatly.
0:52:34But Marco, did you get this survey?
0:52:36- I did, and I honestly, I didn't even,
0:52:39if that was in mine, I didn't even notice it.
0:52:41I just blew right past it probably.
0:52:44I honestly, I mean, it's pretty clear from so many things
0:52:48that it seems like the only person at Apple
0:52:52who even thinks that rule exists, maybe,
0:52:55is the person who wrote that document,
0:52:57which might have been Steve Jobs,
0:52:58so he's not even there anymore.
0:52:59I don't think, I mean, the rule against push notification
0:53:02spam is sadly such a joke that I wish it was,
0:53:07I mean, we'll go over this a million times,
0:53:10I wish it was enforced, I really do.
0:53:11I think everybody would be better off, especially Apple and its customers, would be better off
0:53:17if that rule was enforced because the App Store and iOS is turning into such a spammy
0:53:22flea market of garbage.
0:53:25And it's annoying.
0:53:26Your phone is full of ads now.
0:53:29This is completely the opposite of what I think Apple would want to encourage and would
0:53:34tolerate.
0:53:35But now your phone is full of ads because of this, primarily because of this one rule
0:53:40being flagrantly ignored.
0:53:42It is literally a way to push ads to your phone
0:53:45whenever somebody feels like it with no penalties.
0:53:48Now, how often do you get these sorts of ads?
0:53:51And I'm asking honestly, because I get this once a month,
0:53:55maybe?
0:53:55I do not receive these that often.
0:53:57Now, they infuriate me when I do get them.
0:53:59But it doesn't happen that often.
0:54:00Does it happen that often for you?
0:54:02Well, no.
0:54:02It doesn't happen that often to a lot of nerds like us,
0:54:04because we usually either don't use the kind of apps that show
0:54:08them most often or we turn them off. But that is not representative of the population at
0:54:14large. Like if you see, we talked about this before, like if you see like normal people
0:54:16using their iOS devices and you know, have somebody, have like you know a family member
0:54:22who uses an iOS device, have them show you their notification screen if they're willing
0:54:25and see what's there. You'll see. They are extremely common in brand, big brand apps
0:54:33and games, free to play games. You know, it's so, so common.
0:54:38So speaking of common, this survey here, is this the first survey about the App Store
0:54:42you've ever received, Marco?
0:54:43Yes, and I got six of them.
0:54:46And so this seems from the outside, looking again, just seeing the stories about this,
0:54:51this is like a response from someone inside Apple to all of like the bad press that the
0:54:56App Store has been getting lately with this current cycle of rejections and people complaining
0:55:01and so on and so forth.
0:55:02So I disagree entirely.
0:55:04You think it's just a was that's what I was gonna ask is like, is this something they
0:55:06do every year?
0:55:07- No. - Why now?
0:55:09- I think it's something that the App Store marketing team
0:55:12decided to do on their own, basically.
0:55:14I don't think this has anything to do
0:55:16with the developer policies.
0:55:19I don't think, you know, like we all posted on Twitter
0:55:21like what we said in the final question,
0:55:23because like is there any other feedback
0:55:24you'd like to give Apple?
0:55:25So of course, you know, all of us developers
0:55:27unloaded on them with like,
0:55:28well here's all the ways the App Store sucks.
0:55:29And I don't think this is going anywhere.
0:55:33I think this is going into a giant black hole
0:55:36and I think the marketing team--
0:55:37- I'm gonna ask him what's gonna happen from it.
0:55:38I'm saying, why send the survey now?
0:55:41Why send this survey now?
0:55:42Is it just a complete coincidence
0:55:44or is it because this is part of some like,
0:55:46well, we're getting a lot of press,
0:55:47so first thing we need to know is like, where do we stand?
0:55:49Is it just a bunch of cranky people or whatever?
0:55:51Let's just gather information.
0:55:52Send out a big survey that just covers all bases
0:55:54and let's just send it to everybody
0:55:56and see what we get back.
0:55:57Because just looking at a bunch of news stories
0:55:59of cranky developers doesn't tell you anything
0:56:00because there's thousands and thousands of developers
0:56:02and like five of them are angry.
0:56:04And so they're just gathering information.
0:56:05Not like they're gonna take this information
0:56:07and do anything with it, but I think this is a first,
0:56:08it seems to me, this is a first step
0:56:10and let's see where we really are.
0:56:12Because I can imagine inside Apple,
0:56:14the argument is, and always is,
0:56:16that's just a bunch of cranky people,
0:56:18that's just a website that doesn't like us,
0:56:19that's just someone going for page rates.
0:56:21It's not actually a big deal.
0:56:22We have hundreds of thousands of developers,
0:56:2499.99% of them love us and think we're awesome
0:56:26and the app store is awesome and everything is great.
0:56:29This is what I can imagine VP saying.
0:56:30And we just have to manage these squeaky wheels
0:56:33with good PR and stuff like that.
0:56:34but realistically speaking, everybody loves us.
0:56:37Our developer sat is awesome.
0:56:38And just like, that's what they tell it.
0:56:40You know what I mean?
0:56:41And for all we know that could be true.
0:56:42So the first step that someone could say is,
0:56:45that's what you keep telling me,
0:56:46but I don't like reading stories.
0:56:47So step one, prove to me that's the case.
0:56:49Survey all the developers, send back this thing.
0:56:51Let's see what the survey results say.
0:56:53And if they say like 99% love us and 1% hate us,
0:56:56then I'll believe you.
0:56:58But if not, then we'll have further discussions.
0:57:01- I would believe that might be the case
0:57:04if I didn't go through the survey.
0:57:06But having gone through the survey,
0:57:08it is pretty clear that this was written
0:57:10by marketing people, not developer relations.
0:57:15- Yep.
0:57:15- And so, you did it, right, Casey?
0:57:18- I don't remember if I got it,
0:57:19but I certainly saw the survey,
0:57:21'cause we have certainly seen pretty much
0:57:25the entirety of the survey.
0:57:26I thought it was only two or three pages, right?
0:57:27- No, it was long.
0:57:28It was probably 20 screens, yeah.
0:57:30- Oh, then maybe I clearly have not seen it then,
0:57:33but the pieces I saw just reeked of me,
0:57:36reeked to me of marketing speak.
0:57:39And I agree with you, Marco,
0:57:41that this was marketing acting on its own,
0:57:43just trying to figure out what the state of the world was.
0:57:45I don't think this is any big conspiracy
0:57:47or anything like that.
0:57:48- Was that, so give me an example of some of the questions.
0:57:51Were all the questions basically like,
0:57:52how do you market your app?
0:57:54- Yes.
0:57:54- And how can we help you market your app better, basically?
0:57:57- Basically, yeah.
0:57:58Like it was not, I mean, I could be wrong,
0:58:01but it really did seem like this was like
0:58:05some App Store marketing team doing their own research
0:58:08for their own department and it was not,
0:58:10it didn't seem representative of the developer program
0:58:12as a whole or the App Store as a whole
0:58:14carrying what developers thought about the App Store
0:58:16and it really did seem like it was what it said
0:58:20and nothing more than that which is
0:58:21a survey about how you market your apps.
0:58:23Like that really seemed like that was it.
0:58:26Was there anything in there about like findability
0:58:29in the search and stuff like that?
0:58:31- Very little.
0:58:32- Oh, yeah.
0:58:33A lot of it gets overshadowed, you're right,
0:58:34by like the people posting the free response thing
0:58:38where you get to type whatever you want
0:58:39and everyone just dumping a pile of turds
0:58:41on the Apple store stuff and not the other questions.
0:58:45So if it's just the marketing department,
0:58:47like I still question,
0:58:49it's not like every individual department
0:58:51can decide to email every single developer
0:58:53whenever they feel like it,
0:58:54or like a lots of, enough developers that, you know,
0:58:57it seemed like all the big names got this, right?
0:59:01That seems like something that is not,
0:59:04that you need a higher level okay about.
0:59:06And maybe it was just the marketing department
0:59:09initiating this thing, but why would you give the okay?
0:59:11For like, I'm sure every department wants to do this.
0:59:13I'm sure, you know, everyone would love to email
0:59:15all developers and ask them questions
0:59:16about whatever their thing, developer relations
0:59:19or the development tools team or the frameworks team
0:59:22and send a how you like in this framework
0:59:24that we just made, fill out the survey, but you can't.
0:59:26Everyone can't email every single developer.
0:59:28And Schiller's organization, I guess,
0:59:30got the go ahead to send a 20 page thing
0:59:33that's mostly about how you market your apps.
0:59:36I don't know.
0:59:36- Well, Schiller's organization
0:59:37is the developer organization.
0:59:39- But it's also marketing, right?
0:59:40- The entire developer relations division at Apple
0:59:42is under marketing, which is under Schiller,
0:59:45which is part of the problem, honestly.
0:59:47- But that's getting back to what I'm saying.
0:59:48If you said this is just marketing
0:59:50and not developer relations,
0:59:52but it was all in the same department,
0:59:53maybe the questions were just bad.
0:59:54Maybe you felt like the questions should have been asking
0:59:56you more about the stuff that you wrote about
0:59:58in the summary thing at the end,
1:00:00instead of just asking you how you advertise
1:00:03your applications to people.
1:00:05Was there questions about like,
1:00:06how do you deal with the reviews on the site?
1:00:08You should just post a full survey
1:00:09so we can all look at the questions.
1:00:11- Yeah, I'll go back.
1:00:12I think I got like five or six of these links
1:00:14and I didn't even check to see like what emails
1:00:16they were going to,
1:00:17but maybe I'll go back and screenshot every page.
1:00:19But it's excessively boring.
1:00:21Like it's really, it's extremely dull
1:00:24and it is really mostly a marketing survey.
1:00:28I don't think the purpose of this was what you're saying.
1:00:31However, there was something interesting I think
1:00:36posted a few days ago on December 30th
1:00:39to the developer news feeds.
1:00:40Here, I'm pasting the link in the chat here.
1:00:41You gotta look at this.
1:00:43I don't know if you guys caught this.
1:00:45I was away on vacation so I didn't blog about it yet
1:00:49but which might be the point.
1:00:51If you look at this, so this is a quick thing,
1:00:54I'll just read it, it's pretty short.
1:00:55It's a quick thing posted to the Apple developer news feed,
1:00:58posted on December 30th, titled,
1:01:00"Getting Help with App Reviews and Rejections."
1:01:04So here's the entire text of it.
1:01:06iTunes Connect is now available after the holiday shutdown.
1:01:08Please remember, if you need to appeal an app rejection
1:01:11or request that the review of your app be extradited,
1:01:13the fastest way to get help is to contact
1:01:15the app review team through the Contact Us form.
1:01:18To view app rejection details and ask for clarification,
1:01:20Visit Resolution Center in iTunes Connect.
1:01:22We look forward to seeing the innovative new app
1:01:24you'll create in 2015.
1:01:26- We look forward to seeing them and maybe rejecting them.
1:01:29- Right, so this I think is much more interesting
1:01:33than the marketing survey.
1:01:35What do you think this angle is?
1:01:39I mean, I think this is hilarious.
1:01:40And so I think this might be, I mean, obviously,
1:01:44you have to read a lot through the tea leaves here.
1:01:47It might be a thinly veiled threat,
1:01:49But if you read it as if it's a threat, it kind of works.
1:01:54- It says the fastest way though.
1:01:56It doesn't say running to the press never helps anything
1:02:00or whatever the phrase was.
1:02:01And then the guidelines thing,
1:02:03it is not as passive aggressive or as aggressive aggressive
1:02:05as those things were.
1:02:07It reads more like a reminder to like,
1:02:09if there are developers out there
1:02:10who don't know about the resolution center, I don't know.
1:02:12- It's very easy to read this as a threat,
1:02:14but I think this might,
1:02:16and maybe this is just me being optimistic
1:02:18about this kind of stuff.
1:02:19I think this might be the kind of implied mea culpa
1:02:24on some of the recent rejection crap.
1:02:25I think this might be like,
1:02:27hey guys, don't worry, we're getting this under control.
1:02:30I don't know.
1:02:32Maybe again, maybe that's unreasonably optimistic.
1:02:34What do you think?
1:02:35- I read it the same way that this is them saying,
1:02:39all right, all right, all right, everyone relax,
1:02:42everyone relax, just let us know.
1:02:45We'll fix you up, it'll be okay.
1:02:48But man, does it frustrate me that
1:02:52Apple's so institutionally crotchety maybe?
1:02:55I don't know.
1:02:56Like why can't they just say,
1:02:57"Hey guys, we've seen that there's been
1:03:01some questionable choices on our part,
1:03:04we're gonna fix it."
1:03:05Like, is that so terrible?
1:03:06Is being vulnerable really that bad?
1:03:11I know it'll never happen, but.
1:03:13- Step one, admit no wrongdoing.
1:03:15- Yeah.
1:03:16I mean, that's not Apple's MO.
1:03:18They have admitted wrongdoing before.
1:03:20Even when they think they aren't wrong, like Antennagate,
1:03:22everyone gets a free bumper,
1:03:23even though we think it's not a problem or whatever.
1:03:26But in general, this specific part of Apple, App Review,
1:03:30does not admit wrongdoing.
1:03:32In the whole, we'll reject your app,
1:03:35and then you'll make a big fuss about it,
1:03:37and then we'll accept it.
1:03:38And then that cycle happens,
1:03:40and there's never a part where Apple comes out
1:03:42and sort of bears its soul and says,
1:03:46"We've thought about this and we've..."
1:03:48The admission of wrongdoing, I guess,
1:03:51is okay, now your app is back in the store,
1:03:53but it's like, this isn't a systemic problem.
1:03:56This is a one-off case that just didn't happen to go right.
1:03:58And it being in the press has nothing to do
1:04:00with it getting fixed.
1:04:01It's just one of those things that happens
1:04:03and oh well, it got fixed and don't worry about it.
1:04:05And it just happens repeatedly over and over again.
1:04:06And there's never any sort of public acknowledgement
1:04:09that this might be a thing and not just like,
1:04:11"Well, those things just happen sometimes."
1:04:13And that's what frustrates people so much
1:04:15that that part of the organization is A,
1:04:17so different than individual Apple employees,
1:04:19which as we all know are human beings
1:04:21and are actually forthcoming.
1:04:22And B, it's not like the larger corporation
1:04:25in terms of when they make design mistakes
1:04:27or when they have large scale problems
1:04:31like the labor difficulties in China,
1:04:34the diversity within the organization,
1:04:35things that Apple has fallen on its face about,
1:04:38and they come back and say,
1:04:40"We're not doing well enough on diversity."
1:04:42Where Greenpeace yelled at them
1:04:43and they thought it was unfair that they got yelled at,
1:04:44but you know, we are gonna make that stuff better.
1:04:46Before we were worse at it, now we're better.
1:04:47Labor practices, we're gonna try to be more transparent.
1:04:50We're gonna do it, you know,
1:04:51all those are situations where Apple did something wrong
1:04:53and it's publicly trying to do it better
1:04:55by admitting that the past was bad,
1:04:57the present is bad, and they're trying to get better.
1:04:59But there's never anything like that
1:05:00having to do with App Store review, at least not public.
1:05:02- No, well, 'cause again, this is all under Schiller.
1:05:04I mean, if you think about the kind of public persona
1:05:08Schiller shows. I mean I don't know anything about the guy, you know, non-publicly, but
1:05:12what he shows publicly, he is kind of like this, you know, terse, quiet guy who doesn't
1:05:18appear to be ever having any fun. I mean even like, even in his presentation in the last
1:05:23few years, is it just me or does he just kind of seem angry? Like it's, it doesn't,
1:05:29you don't get, like if you look at this person knowing he's the one in charge of
1:05:32this organization and knowing that he does have a lot of direct involvement with some
1:05:35these decisions, it's no wonder that the attitude we get
1:05:39is just a brick wall with occasional terse-ness coming out
1:05:42and not really openness or friendliness,
1:05:45because that appears to be the public persona
1:05:46Phil Schiller shows.
1:05:48- That's not Tim Cook at all though.
1:05:50- No. - Like Tim Cook's persona,
1:05:51and I think Tim Cook's persona has been infecting more
1:05:54and more of the sort of higher level, entire corporation,
1:05:57Apple stuff, it's just that this is a corner
1:05:58of the corporation, so the entire corporation is diversity,
1:06:02labor practices, finances, you know, the environment, that is big picture stuff, human resources,
1:06:09like charity, all that stuff, that is big, big picture. Hopefully that will be filtering
1:06:15down to the smaller thing. And of course, like the, you know, the whole management reshuffle
1:06:19and collaboration is more important and unifying things under Johnny Ive, but it just that
1:06:24that influence and that tone seems not to have made a Tapper view yet.
1:06:27- No, I mean, I honestly, as long as Phil Schiller
1:06:31is in charge of the division that App Review was under,
1:06:34I don't foresee any major changes in this area.
1:06:37Because I really do think it goes to him,
1:06:39and I think he's the one who is in control to fix this,
1:06:44and seems to believe that the way they're doing it
1:06:46is the correct way to do it.
1:06:48- Yeah, I don't know.
1:06:51Part of the reason that we all love Apple
1:06:52is because everything is so secretive and interesting,
1:06:56and you never know what's going to come next.
1:06:58But I don't know.
1:06:58I feel like holding onto that apple
1:07:01is perhaps not the right approach anymore.
1:07:04They're not the underdog.
1:07:06They're not the apple they once were,
1:07:09and they're bigger than they once were.
1:07:10And it's probably unfair for me to prescribe
1:07:13what Apple should do from my chair here, the other coast,
1:07:17but I'm not going to let that stop me.
1:07:20It just seems like, can't we get a little more feedback?
1:07:23And all I keep reflecting on,
1:07:24and I'm not the first person to realize this,
1:07:26is that when we all left WWDC this year,
1:07:29we were all so amped up and so excited and so reinvigorated.
1:07:33And then I feel like six months later, we're all grumpy again.
1:07:37Maybe it's just because we are all grumpy people in general.
1:07:40But I don't think so.
1:07:41I think we really were excited about all this stuff
1:07:43and how open they seem to be becoming
1:07:46and how they seem to be listening to us.
1:07:49And now, six months later, it's like, oh, we're
1:07:53back in this same dull grind that we're always in.
1:07:57And that's just not a fun place to be, it's just not.
1:08:01And part of the reason that we're all so attracted
1:08:03to this environment and attracted to writing apps
1:08:06for this platform is because it's fun.
1:08:09And God, are they working hard to suck the fun out of it.
1:08:12- Yeah, I feel right now about Apple development
1:08:15the way Phil Schiller sounds on stage
1:08:17at the most recent keynotes.
1:08:19- Completely unamused and bored.
1:08:21- Yeah, just kind of going through the motions,
1:08:23kind of almost angry.
1:08:26The mood has shifted from the Craig Federighi
1:08:29that we saw at WBCC showing us all the cool,
1:08:32new technical stuff to the marketing hammer being dropped
1:08:37and saying, "Nope, this is how things should be.
1:08:39"This is not how things should be, period."
1:08:41And back to old school.
1:08:42I mean, look, Phil is old school Apple.
1:08:44He was under jobs, he's been there for a very long time.
1:08:46Like, he is, he represents that attitude at Apple.
1:08:50and you look at the leadership,
1:08:52Ben Thompson talked a lot about this,
1:08:53a lot of the other leadership has changed.
1:08:55He's one of the oldest SVPs there now,
1:08:57or longest running at least.
1:08:58And I really do think this is how this department is run,
1:09:03this is how he thinks is the right way to do it, clearly,
1:09:07otherwise he wouldn't be doing it this way.
1:09:08I mean, he has enough power in the company,
1:09:09he could change it if he wanted to,
1:09:10so we know that this is how they think
1:09:12they should be running the company,
1:09:13or this division rather.
1:09:15So obviously, this goes to Phil, this is all under Phil.
1:09:20Phil is the guy who's responsible for this being this way
1:09:22and the guy who could change it if he wanted to,
1:09:24but he doesn't want to.
1:09:26And maybe this, look, it seems to be working okay.
1:09:28Again, like, you know, as you said,
1:09:29who are we to say what they should do?
1:09:31Obviously they're doing something right.
1:09:33But certainly it's not right for developers.
1:09:36It is right for Apple, probably, maybe.
1:09:38Long-term it's questionable,
1:09:40but it is right for them for now.
1:09:42It benefits their users in certain ways, but not others.
1:09:45But you know, overall it's probably a benefit.
1:09:47But yeah, you're right.
1:09:48I mean, the overall attitude is pretty negative
1:09:51and it's pretty stifling.
1:09:52And I think that ultimately is what is gonna cause
1:09:57possible long-term problems for Apple.
1:09:59They really do depend on developers
1:10:02to push the boundaries forward with their platforms.
1:10:05And not just the phone, but especially the iPad,
1:10:08and probably also in the future, the watch.
1:10:11They need us to make reasons
1:10:14for people to buy these things.
1:10:15The phone is an easy success
1:10:17because it's a really good smartphone
1:10:19and everybody buys a smartphone.
1:10:20They're subsidized in so much of the world.
1:10:22Everyone has decided they need one.
1:10:24I mean, smartphones are this magical business
1:10:26where everyone buys them
1:10:27because they just provide so much utility
1:10:30and everyone is willing to spend whatever it takes
1:10:33as long as they can,
1:10:34which is a lot of people these days
1:10:36'cause they're so cheap.
1:10:37They're willing to do it because smartphones are just,
1:10:40so they're ubiquitous.
1:10:41So the question isn't do I buy a smartphone?
1:10:44The question is which smartphone do I buy?
1:10:46and so they can compete well there.
1:10:47If you look at the iPad, the iPad is like, it's optional.
1:10:51It's an accessory for most people.
1:10:52It's a luxury, it's an extravagance, it's a fun device.
1:10:57It is usually not your primary computer,
1:10:59and usually most people don't say, I need to have an iPad,
1:11:02it's only a question of which, or rather,
1:11:04I need to have a tablet, it's only a question
1:11:06of which one do I buy.
1:11:07No, it's just an extra.
1:11:09The watch is gonna be that same thing.
1:11:11Most people, I don't think, wear watches,
1:11:13and certainly the ones who do wear watches today,
1:11:16I don't think it's an obvious thing to say,
1:11:17well, I have to get a smartwatch.
1:11:19Like, I think the watch is gonna have
1:11:21the exact same challenge that the iPad has
1:11:23of it's going to have to justify its purchase.
1:11:25It is coming from zero.
1:11:27It is not gonna be like a phone
1:11:28where they just have to pull people into the store
1:11:31who are already buying their phone anyway.
1:11:33The watch is gonna be like,
1:11:35you have to tell me why I want this.
1:11:37And so much of that rests on what developers do,
1:11:40what apps are out there.
1:11:42so many people end up buying these devices
1:11:45because of one or a very small number of specific apps
1:11:49that run on them.
1:11:50And if developers keep getting marginalized
1:11:53and restricted too severely,
1:11:56it's very hard for us to push those platforms forward.
1:11:59It's very, and it becomes less likely
1:12:02that the next big thing is gonna be on iOS.
1:12:05And how does that help Apple?
1:12:07- Yeah, I agree.
1:12:08And I think perhaps the most obvious
1:12:10and specific example of this is watching everyone's reactions to WatchKit.
1:12:18And a lot of popular developers, and I wish I could think of a specific person,
1:12:22but I can't off the top of my head, but a lot of big developers have said,
1:12:25"Yeah, it looks cool, but yeah, I'm going to wait and see how this shakes out
1:12:30before I do anything real." And that is a different reaction than I remember
1:12:35ever having seen before. Like when the iPad came out, if nothing else,
1:12:40everyone said, "Holy crap, I'm going to make an iPad app
1:12:43"so I can be a part of the gold rush."
1:12:45Where now, I'm hearing a lot of really popular developers
1:12:49say, "Well, we'll see how it goes."
1:12:52And that's not where Apple wants to be.
1:12:55- Right, and like what Apple has shown this fall
1:12:58with all the iOS hate stuff and all the crazy rejections,
1:13:00racing forward to be first to market
1:13:03is not necessarily a good idea.
1:13:05And that's, I think that feeds into this.
1:13:08And now we're seeing WatchKit,
1:13:10We know it's gonna be a new device.
1:13:11It's very restrictive with what you can do upfront.
1:13:15There are gonna be more capabilities added over time,
1:13:16but all the crazy policies and rejections
1:13:19that we've seen for iOS so far,
1:13:23the watch is gonna have its own set of those.
1:13:24It's gonna reset from zero.
1:13:26It's gonna have an entirely new set
1:13:28of weird decisions Apple has to make,
1:13:31many of which the developer community will disagree with
1:13:34and bloggers will get angry about.
1:13:36We're gonna start over.
1:13:37We're starting from scratch here.
1:13:38And all the same people who caused all this stuff
1:13:40with iOS rejection so far this fall,
1:13:43they're all still making the decisions,
1:13:45they're all still making the calls.
1:13:46And so the same system's in place,
1:13:48it's gonna have the same problems with this new platform.
1:13:51The only question is, will the watch sell enough?
1:13:53And so, we're all here because A,
1:13:58most iOS developers, if not all iOS developers,
1:14:01use iOS devices themselves.
1:14:04These are the devices we choose to have.
1:14:05So that makes us already right there
1:14:08encouraged to develop for them.
1:14:10And then secondarily, although it's a matter
1:14:12more for your big company, there's so many of them out there
1:14:15they sell so ridiculously well that it's just a good
1:14:19business idea to target them in many cases,
1:14:21or in most cases.
1:14:22The watch we don't know yet.
1:14:24The watch, we don't know if developers are gonna end up
1:14:27loving them, or if it's gonna end up being like
1:14:29what a lot of us say about the iPad, which is like,
1:14:31"Eh, I don't really use it that much ever, you know,
1:14:33"ever since the big phones came out or whatever."
1:14:35We also don't know if they're gonna sell very well.
1:14:37That's a big question mark right now.
1:14:39They might sell like crazy.
1:14:41They might be blockbusters,
1:14:42and we might be looking back at this episode in six months
1:14:45and laughing at how pessimistic we might have been
1:14:49or how much we might have underestimated
1:14:50how much they would sell.
1:14:52Or they just might not sell that well for a while, if ever,
1:14:55and we don't know.
1:14:57And because of the attitude
1:15:01that they have shown developers,
1:15:03I mean, since the beginning of the App Store, really,
1:15:06that's not a new thing,
1:15:06especially because of the recent mood among the community
1:15:10of all of this chilling effect coming
1:15:13from all these rejections,
1:15:15I think that makes us even less excited
1:15:18to jump into this unknown, this big question mark.
1:15:21So again, this is why I'm saying,
1:15:24the timing of these things is terrible.
1:15:26The timing of all these really frivolous
1:15:28or weird capricious rejections is just awful
1:15:32because this is when Apple needs all the enthusiasm
1:15:35that they earned this past summer.
1:15:39They need that enthusiasm now for all of us
1:15:41to start building cool stuff for the watch
1:15:44to increase the chances of them selling lots of watches.
1:15:47And instead, they've totally burned so much of that
1:15:50with these rejections, and again, for what?
1:15:53For what was the benefit there?
1:15:56- Well, when I think of what the pointy head boss
1:15:57would say to all that, they would say,
1:15:59"It's just these weird indie developer blogger things
1:16:02"that are angry at us.
1:16:04"Starbucks is gonna have a watch app.
1:16:05Weight Watchers will have one, Nike will have one,
1:16:08JetBlue will have one.
1:16:10They just go through all these big name brands
1:16:11and like, "Oh, my relationships
1:16:13with those other C-level executives is awesome
1:16:15and we drive our Lamborghinis down to the golf course
1:16:17and have golf all the time.
1:16:17They're totally making watch kit apps.
1:16:19Who cares if the bunch of these hipster people in Portland
1:16:23aren't gonna make a watch app right away?
1:16:24They'll make one after the other apps are out.
1:16:26We don't care as long as we can say
1:16:27that there's a Walmart app on our watch
1:16:29and that's all that matters.
1:16:30I mean, you go past a Starbucks,
1:16:31it'll bleep a little thing that'll give you a discount
1:16:34and you can get a coffee.
1:16:35Like that's the point you heard, boss, like dystopian scenario, the idea that, you know,
1:16:39the people, the things that we care about, you know, argument would be like, yeah, but
1:16:43these little guys tend to make the most interesting things.
1:16:46You're not going to get a really super innovative app coming out of Starbucks or anything for
1:16:49your watch.
1:16:50We agree that Starbucks has to be there, right?
1:16:52You need that on your watch.
1:16:53You need like, you need a Twitter app, you need to whatever, like whatever.
1:16:56You need the big names, but you also need this other community.
1:16:59And from their perspective, it might be, well, the other community is annoying and they bother
1:17:02and they say mean things on websites about us.
1:17:04And Starbucks never does that.
1:17:06And we're gonna have them and you better get on board.
1:17:08And if you don't wanna have your app there on day one,
1:17:10a million people writing applications,
1:17:13all those people who make all those clone free to play
1:17:15or rip off applications,
1:17:16they're all gonna be at the watch on day one
1:17:18'cause that's their whole freaking business.
1:17:19They make a million clone copyright violating apps
1:17:23until they get pulled from the store
1:17:24and it's just the shotgun approach
1:17:26and they're all gonna be all over the watch.
1:17:27So we're gonna have huge numbers
1:17:29that we can put up on slides and we show a big pie chart.
1:17:31look how many apps the watch has already, you know,
1:17:33because every app is created equal
1:17:35when it comes to stats on slides, right?
1:17:37And we have all these big names,
1:17:39and let's put up the logos
1:17:40of a bunch of Fortune 500 companies.
1:17:42And the fact that Panic isn't on there
1:17:43because Panic was afraid about putting a watch thing
1:17:46'cause they wanted to take a wait and see attitude,
1:17:47nobody in the audience cares,
1:17:49and we at Apple don't care, and if you care, boo hoo.
1:17:51- That's true, however, it's only a matter of time
1:17:56before the next Instagram, or the next Dodge,
1:18:00the next Crossy Road isn't on iOS.
1:18:03- I know, that's the argument we would make,
1:18:04is like, if you're expecting,
1:18:06you don't know where the next innovation's coming from,
1:18:08and it's probably not gonna come from Fortune 500 company,
1:18:10it's probably gonna come from one of these little random,
1:18:12that you never know where it's gonna come from.
1:18:14Somebody you've never even heard of.
1:18:15Who heard of the guy who made Flappy Bird?
1:18:17Who heard of the people who made Crossy Road
1:18:19until they made, you know, like, that's argument for,
1:18:22I'm not saying this is Apple's attitude,
1:18:23I'm saying these are the two endpoints on this continuum.
1:18:27And I don't know which endpoint is which.
1:18:28for all we know Apple is totally on board
1:18:30with what we're saying.
1:18:31They're like, you've got to, you know,
1:18:32and they're having this internal debate.
1:18:33Or there's somebody in power at Apple
1:18:35who's on the pointy haired boss side or whatever.
1:18:37We're like, again, with an information vacuum,
1:18:39you can, if you're in a bad mood,
1:18:40you imagine that pointy haired boss side.
1:18:42And if you're a good mood,
1:18:43you imagine all the good people at Apple
1:18:44fighting the good fight and just
1:18:46haven't quite gotten their acts together yet.
1:18:48- Right, and as a quick little side note,
1:18:50I'm really curious to see what happens
1:18:52with WatchKit and games.
1:18:54Because WatchKit is really not designed for games,
1:18:58pretty clearly.
1:19:00And so when they do the native SDK,
1:19:01which they say later next year,
1:19:03which people have been assuming that means WBC next year,
1:19:08I actually think that might be too early.
1:19:10I would guess next winter,
1:19:12just like a year from this year's watch kit,
1:19:15which came out in November,
1:19:16I'm guessing maybe next November we get that.
1:19:20And next spring, like spring 2016,
1:19:24new watches come out that can use it.
1:19:26So anyway, that's just a guess.
1:19:28But we don't know yet, like,
1:19:31it sure looks like all of Watch Kit so far
1:19:34was designed not only to not enable games,
1:19:36but policy-wise to prohibit most of them.
1:19:39- Well, but it'll have the most important gaming feature.
1:19:41The most important gaming feature of the watch
1:19:43is to tell you when gems are 50% off for the next one.
1:19:46- That's unfortunately, God, that is true.
1:19:49- That is the most important gaming feature of the watch,
1:19:51and it will be supported,
1:19:53because that is the one thing you're able to do,
1:19:54is send up a little notification with a button
1:19:56and then you press the mix, you know,
1:19:58and that's all they care about.
1:19:59- God, games today are terrible.
1:20:01But you know what's not terrible?
1:20:02Our final sponsor, it is Squarespace.
1:20:06They are back.
1:20:07Go to squarespace.com and check it out.
1:20:09They have recently, this past fall,
1:20:11unveiled a ton of new features
1:20:13and a giant redesign with Squarespace 7.
1:20:16It's a new interface, 15 new templates,
1:20:18and so much more than that.
1:20:20It now integrates with Google Apps.
1:20:21You can connect it to your Gmail,
1:20:23Google Drive for iCloud storage,
1:20:25Google Forms for surveys and much, much more.
1:20:28They have now partnered with Getty Images,
1:20:29so you can actually buy and use,
1:20:33like I forget the number, it was like a few hundred thousand
1:20:35or a couple million images, all from Getty Images
1:20:38right there in Squarespace for just 10 bucks once.
1:20:40You just pay 10 bucks an image
1:20:42and you can embed it as your header, your template,
1:20:44your background, in a blog post.
1:20:46If you need a nice high quality legal stock photo,
1:20:50you can get all that right there.
1:20:51And honestly, I've bought stock photos before
1:20:53for the magazine and Getty was always
1:20:55my favorite place to get them.
1:20:57You can take care of all your stock image needs
1:20:59in the same place you manage your site
1:21:01right from the Squarespace interface.
1:21:02I saw a demo of this feature at the launch event.
1:21:05It's fully integrated, it's beautiful, it's simple,
1:21:08exactly what you'd expect from Squarespace.
1:21:10And of course, Squarespace has their classic features.
1:21:12They have all the beautiful designs
1:21:14with simple yet powerful interfaces.
1:21:17They have 24/7 support via live chat and email.
1:21:20Their designs are all responsive
1:21:22But now what's even cooler about the new design, if you shrink the browser window down, it
1:21:27will actually show you, it will simulate an iPhone or an iPad sized screen on the right.
1:21:32So you don't have to actually go test on an iPhone or try to get your browser all the
1:21:36way down to 300 pixels wide.
1:21:38You can just do it right there, you can preview it right there in the interface.
1:21:41It's all what you see is what you get.
1:21:44It's really impressive that they did all this in a web app.
1:21:47Anyway, they also have commerce capabilities.
1:21:49If you want to integrate a store with your website, you can do that at no additional
1:21:52charge.
1:21:53All of this starts at just $8 a month and if you buy a whole year up front you get a
1:21:58free domain name with that as well.
1:22:00So start a trial today, no credit card required.
1:22:03It's a real free trial, you don't have to enter a credit card, you can just start doing
1:22:07it and you can build a website, I believe it's a week.
1:22:11It's a good trial.
1:22:13Anyway, start a free trial today with no credit card required.
1:22:16Start building your website today.
1:22:18and you decide to sign up for Squarespace,
1:22:20make sure to use the offer code ATP,
1:22:22that is offer code ATP, to get 10% off your first purchase
1:22:26and to show your support for our show.
1:22:27Thank you very much to Squarespace
1:22:29for sponsoring our show once again.
1:22:31- So to end on a potentially happier note, I hope,
1:22:35last week we had made mention of you having new thoughts
1:22:38on the iPad and then we genuinely just didn't get a chance
1:22:42to talk about it.
1:22:43So would you like to talk about your new thoughts
1:22:46on your new iPad?
1:22:48Do you want me to talk this whole episode?
1:22:49I mean, I can, but I feel kind of bad
1:22:51monopolizing the whole show.
1:22:52- Whatever, nothing else is going on.
1:22:53- I'll interrupt you and tell you
1:22:55why you're wrong about it, so go ahead.
1:22:56- Perfect, okay.
1:22:57(laughing)
1:22:59I would ask nothing less.
1:23:00All right, so I was very impressed
1:23:05with the iPad Air 2's spec upgrade this year.
1:23:08And we bought one as a gift for a family member,
1:23:12and as I was playing with them in the store,
1:23:16I was really, really won over by it.
1:23:18because so for the last couple,
1:23:19the last full size iPad I bought was the iPad 3.
1:23:22I skipped the 4 and the Air 1.
1:23:24And I bought both iPad minis,
1:23:29the first terrible one and then the first Retina one.
1:23:33The iPad 3 and the two iPad minis made me hate the iPad
1:23:38because the iPad 3 was, I love the Retina screen so much,
1:23:43but it was so heavy.
1:23:47It also had weird performance characteristics
1:23:49because it had boosted the GPUs
1:23:53to deal with the extra pixels,
1:23:54but it didn't boost the CPUs.
1:23:56So any kind of CPU-bound graphics operation
1:23:59or process was very slow on them.
1:24:03So it was very weird for that.
1:24:04It was also, the iPad 3 ran warm,
1:24:07and it was a whole thing.
1:24:09- I still use mine every day and love it, go on.
1:24:10- Perfect, okay.
1:24:12iPad Mini 1 comes out.
1:24:14It instantly ruined the iPad 3 for me
1:24:16because it's so much smaller and lighter.
1:24:19It makes the iPad 3 seem like this giant boat.
1:24:22It's such a massive difference.
1:24:24But the screen on the iPad Mini 1 is so terrible
1:24:27'cause it's non-retina.
1:24:28It was just a miserable experience.
1:24:31I would look at that and I would say,
1:24:34man, this is the great form factor.
1:24:36I love this form factor, I think,
1:24:37but man, this screen is so bad.
1:24:39And then I'd try to look at something on my iPad 3
1:24:42and it was so big and heavy.
1:24:45So it was like the worst of both worlds.
1:24:47I thought the Retina Mini would solve this problem.
1:24:49- It does.
1:24:50- For you.
1:24:51But you don't even call it that,
1:24:53you call it the Retina Pad Mini, right?
1:24:54- That's right.
1:24:55- Right, so, sorry Steven.
1:24:58I thought that would do it.
1:24:59And what I found instead was that
1:25:02the Retina Mini had two main issues for me.
1:25:05Number one is that the screen is not as good
1:25:07as the Air One screen, which Tiff has.
1:25:09It is a lower end device in some ways.
1:25:13and there are small ways, but it is noticeable
1:25:16and the screen, the color isn't as good
1:25:19and you can really tell.
1:25:20The second thing is that all the people
1:25:23who went through the progression of full size iPad
1:25:25to iPad mini and then to a new phone this year
1:25:29and a lot of them are saying, oh, I haven't touched iPad
1:25:32since I got my iPhone 6 or 6 Plus
1:25:34or something similar to that.
1:25:36The iPad is never gonna be always with you
1:25:39unless you have really giant pockets year round
1:25:42but that's unlikely for most people or a purse maybe.
1:25:45Even then, I know a lot of people with purses,
1:25:47none of them carry an iPad in all the time.
1:25:50The iPad is always gonna be a secondary device.
1:25:53It's never gonna be always in your pocket
1:25:54the way a phone is.
1:25:56The things an iPad is better at,
1:25:58or the things that I enjoy more on the iPad,
1:26:01all need the full-size screen.
1:26:04They all need the 9.7 inch screen,
1:26:06or at least they're better on it.
1:26:08What I found, so what I found having,
1:26:11when I finally got the mini that had a decent enough screen,
1:26:14what I found is that the things I would do on an iPad,
1:26:18I wasn't enjoying them as much.
1:26:19They weren't as good,
1:26:20they weren't as much better than on the phone
1:26:23because they all benefited from having larger screens.
1:26:27And so this smaller one,
1:26:29even though it was the same resolution,
1:26:31it just wasn't as good,
1:26:33it wasn't as much better than the phone.
1:26:34The difference between the iPad and the phone got smaller,
1:26:37at least the enjoyment of it for me.
1:26:40Again, this is all for me.
1:26:41This is all very much an opinion, not a fact piece here.
1:26:44So, please bear with me.
1:26:46Anyway, so this year I was so wowed by the iPad Air 2
1:26:51in so many ways, most notably the size and weight,
1:26:56but also just the screen is really, really nice.
1:26:59It's, you know, they did some new stuff
1:27:00with how the pixels are glued on or whatever,
1:27:02and it's really, really nice.
1:27:04The anti-reflective coating is minor, but also nice.
1:27:06The speed is insane because it has that triple core chip
1:27:09and the two gigs of RAM, so it's like,
1:27:11this was a major upgrade to the iPad line.
1:27:14The Air and Air 2 are both major upgrades.
1:27:16I just skipped the Air 1.
1:27:18So I decided, you know what, let me try it.
1:27:20And let me also unload the notion
1:27:24that I need to get every iPad for testing.
1:27:26'Cause here I am, I've already skipped two generations,
1:27:29the 4 and the Air 1.
1:27:31And as a developer of an iPad app, it didn't matter at all.
1:27:36Even when I had Instapaper,
1:27:39and even when I had the magazine,
1:27:40both of those were much more heavily used on the iPad
1:27:43than Overcast was.
1:27:45I always thought, you know,
1:27:47someone's gonna write it and say,
1:27:48you know, this works really badly on my iPad 3.
1:27:51You know, what's up?
1:27:53Or this crashes on the iPad 3.
1:27:54And I always thought, I better save all these iPads
1:27:57and get every model because that way,
1:27:59if somebody does this, then I'll be able to really,
1:28:02you know, get in there and fix it.
1:28:04In practice, that has literally never happened.
1:28:06Not once.
1:28:07has, in the entire time, developing Instapaper,
1:28:11the magazine in Overcast,
1:28:13which has been since the iPad launch,
1:28:14I was there on day one with Instapaper,
1:28:16so that entire time, throughout every iPad,
1:28:20I have never had a single bug report or complaint
1:28:23about something that was specific to any one iPad model.
1:28:26So I think that's a bunch of crap.
1:28:29I think that's something that developers tell themselves,
1:28:33myself included, to either paranoia,
1:28:37to keep existing iPads or justification
1:28:39to buy all the new ones.
1:28:41So that I can tell you if you're a developer,
1:28:42if you've ever wondered about that,
1:28:44it is probably unnecessary.
1:28:45If you have a very high-end 3D game,
1:28:49that might be different because the GPUs do vary a lot.
1:28:52Other than high-end game developers,
1:28:55I would say the differences are small enough
1:28:56that you don't really need to care,
1:28:57you don't really need to have them.
1:28:59And worse comes to worse,
1:29:00if you really need something you can find a friend
1:29:01who has an iPad 3 or buy one on eBay for cheap.
1:29:05Anyway, so I decided now I'm gonna sell every iPad I have
1:29:09that's not this one and just keep the Air 2,
1:29:12which I can make myself to buy.
1:29:13Getting back to that, so anyway, sorry.
1:29:15Sorry for the long, selfish rant.
1:29:17First of all, before I move on, is that wrong?
1:29:21Do you guys disagree?
1:29:22I assume you do, 'cause you have things
1:29:24that I've just said were crap.
1:29:25- I have an iPhone 6 now, as does all three of us do.
1:29:31And I still reach for my iPad mini regularly.
1:29:36And I actually, so I had an iPad one, an iPad three,
1:29:41and now the iPad mini with Retina display.
1:29:44And the iPad mini, I think is my favorite iPad so far,
1:29:49in no small part for two reasons.
1:29:51One, because it is so much more portable,
1:29:53which sounds so stupid if you're a big iPad owner.
1:29:58Like when the first mini came out and everyone was like,
1:30:00"Oh, it's so much better because it's so much smaller."
1:30:02I was like, "Are you people crazy?"
1:30:03No, it really is so much better
1:30:04'cause it's so much smaller.
1:30:06And also because this is the first iPad I've ever had
1:30:09with cellular, which is awesome.
1:30:12And between the two, that changes everything for me.
1:30:15And I take it with me, out with me a lot,
1:30:20where I define out with me as,
1:30:22like I throw it in the glove box of the car
1:30:24or something like that.
1:30:25Or maybe I'm at a meeting
1:30:27and I don't wanna bring my computer,
1:30:28but I just bring my iPad.
1:30:29So if I need to look up something in an email or something like that,
1:30:32or even take brief notes, I can do that. I use my iPad mini constantly.
1:30:36I love reading. Well, you still have reading Twitter on it,
1:30:38but speaking of apps that are old, uh, tweetbot is a little on the old side. Um,
1:30:43it's still for iOS six, isn't it? Yep.
1:30:45And now you can't make fun of me for fast text. So ha ha. But, um, sorry, Paul,
1:30:50I still, uh,
1:30:51love my iPad mini and I use it constantly.
1:30:56And I know John that's all. I mean,
1:30:58obviously you have a big iPad, but almost everything else is you would echo is that correct?
1:31:02Well, so now I have the iPhone 6 right and the iPhone 6 has
1:31:07Is better competition for my iPad 3 than my iPod touch was?
1:31:12but the vast vast majority of the time when I've got both devices next to me I
1:31:16Pick the iPad 3. I you know, it's like it's gone from maybe you know
1:31:2199% to 98% of the time
1:31:24So the iPhone 6 and I really think it is the bigger screen the iPhone 6 on the bigger screen
1:31:29the reason I reach for it is not because the CPU is like just vastly faster than than the
1:31:33iPad 3 because that's not what I tend to run into
1:31:36Because I'm mostly just reading things and browsing the web or even just playing games
1:31:42I just don't notice any speed difference of the silly games that I play
1:31:44But because the screen is bigger
1:31:47But the reason the iPad 3 this giant everything you said about the iPad 3 is totally true
1:31:52It's just a massive battery slapped onto a retina screen.
1:31:55The reason I keep picking that is because basically
1:31:58when it's not like, oh, I need the text to be bigger
1:32:01or I need to read more stuff.
1:32:03It's like when I'm using it to do anything,
1:32:06it's closer to being like a desktop.
1:32:08I know I won't get the mobile site.
1:32:10I won't get the little tiny site.
1:32:11Like mobile sites frustrating me to no end.
1:32:13I can load full-size web apps in it.
1:32:16I can see big, and this doesn't make sense
1:32:18given like the massive hardware advantage of the iPhone 6.
1:32:23But I feel like if I need to do something on the website,
1:32:26it probably won't work on this handheld thing.
1:32:28I'll need a bigger screen to be able to do it.
1:32:31And that's obviously silly because it's like,
1:32:33if it's something CPU intensive
1:32:34or some stupid poorly implemented
1:32:36JavaScript scrolling ad banner crap,
1:32:38like it's gonna be way worse on the iPad
1:32:40than it is on the iPhone 6.
1:32:42But I still find myself going to the iPad
1:32:44because I feel like I'm a desktop person.
1:32:46Like I want the real full web here.
1:32:49Like I want the real full article.
1:32:51And you know, if I'm looking at comics obviously
1:32:53or anything having to do with images
1:32:55or you were just looking for iPad Instagram apps,
1:32:57like I've always had an iPad Instagram app.
1:33:00That's how I prefer to go through Instagram
1:33:02even though the pictures are, you know,
1:33:03supposedly not high-res enough to make a difference.
1:33:05Like they're not.
1:33:06I like to see the pictures and the comments underneath them.
1:33:09It's just, I just want a bigger screen.
1:33:11And so that's why my current bigger screen,
1:33:14the iPad 3 with its terribly unbalanced hardware and the now aging battery and the heat and
1:33:21the weight and everything like that still beats out the iPhone 6 when I want to sort
1:33:26of have that experience of like when you would when I was still with it, I still get print
1:33:30magazines sit down and just read a magazine sit down and just read the computer equivalent
1:33:34of a magazine. I always go for the iPad.
1:33:37So that's actually I'm glad to hear that and that's actually kind of what I'm finding.
1:33:42So I decided, let me give the iPad one last try before I write it off as just a device
1:33:48that's not right for me.
1:33:50So I got myself the mid-range Air 2 config and I figured if I'm going to give this a
1:33:55fair shot, I want to give it a really fair shot.
1:33:56I want to have no complaints about the hardware at all.
1:34:01So the iPad 3, big, heavy, whatever.
1:34:04iPad mini, I just thought it was too small for the screen for my tastes and didn't like
1:34:08the screen quality.
1:34:10The Air 2 is great.
1:34:11And what I found is that, you know,
1:34:13I have many of the same frustrations
1:34:15that you just mentioned about, you know,
1:34:16things like being served the desktop
1:34:18or the mobile website on a phone,
1:34:20and I know you can get third party browsers to switch it.
1:34:23We all know that, so please don't write in about that.
1:34:24- Well, you can even, you can switch it in Safari now.
1:34:27- Oh yeah, right, yeah, it does,
1:34:28that you pull down and yeah, yeah.
1:34:30So we, that's all fine.
1:34:31The fact is, there is still a lot of web stuff
1:34:35that's out there that people need to do on a regular basis
1:34:37that is either impossible
1:34:40by somebody's stupid web programming,
1:34:42or at least it's very clunky or very difficult
1:34:44to do on a phone.
1:34:45The screen is just too small for a lot of things,
1:34:50or at least, as you said, John,
1:34:51at least it's better on a bigger screen.
1:34:54I've also had a miserable time ever trying
1:34:57to get anything done on an iPad.
1:34:58Like getting work done, I know a lot of people do it,
1:35:01that's fine, but the kind of work I do
1:35:04and the way I like to work,
1:35:05it just does not work well on an iPad.
1:35:07The iPad is a terrible work machine for me.
1:35:10I've also found that if I'm gonna be playing a game,
1:35:13I much prefer to play the game on the iPad.
1:35:15I will save games for the iPad.
1:35:17Like our friends, Nevan and Matt Comey made The Incident,
1:35:22The Incident, no that's the old one, what's the new one?
1:35:23- Space Age. - Space Age, yes.
1:35:25- Yeah, I can't even, I didn't even know
1:35:26Space Age ran on the phone.
1:35:27- I think it does, 'cause I think it installed
1:35:30on both places and I just deleted it off the phone
1:35:31as soon as it installed.
1:35:32Because I'm like, I wanna play this on the iPad.
1:35:34Like this is a game, like I want to fully enjoy this
1:35:37properly, I want this on an iPad.
1:35:39I find myself, if I'm gonna be doing games,
1:35:43and like our family thing,
1:35:44we do a lot of games over the holidays.
1:35:46So one of the reasons I bought this right before Christmas,
1:35:49'cause I figured I'd be using it a lot, which was true.
1:35:52I just really enjoy playing games on a full-size iPad.
1:35:55And the Mini I thought was substantially worse for games,
1:35:59just because so many iPad games,
1:36:01they designed the interface before the Mini was out,
1:36:03they still assume the big screen.
1:36:04And again, I think if you're playing a game on it,
1:36:07no question, the full-size one is better.
1:36:09I mean, unless it'll make the difference
1:36:12between whether you bring it with you or not
1:36:13on a trip or something.
1:36:14But I don't think the size difference
1:36:17between the two is a major enough difference
1:36:21that so many people would not bring an iPad Air,
1:36:26but would bring an iPad Mini.
1:36:28It's still the same class of things that need a small bag
1:36:32or a very large jacket pocket.
1:36:33Anyway, so I set up the new iPad.
1:36:38I did a clean install, I didn't import any of my old iPad stuff.
1:36:43I downloaded all the games that I had downloaded to the iPad and a couple new ones.
1:36:48I didn't install anything to get any work done.
1:36:52And most importantly, I didn't install a Twitter client because Tweetbot on the iPad
1:36:58is, as you mentioned, very old.
1:37:01It has not been updated for a very long time and it is just really, you know, it was fine
1:37:07for the time it came out, but that was a very long time ago, and it's pretty outdated now.
1:37:10Well, and it's functionally broken in a couple of ways.
1:37:13For example, the new-ish Twitter animated GIFs, that's just infinitely going.
1:37:18It infinitely opens that tweet screen.
1:37:23And so it's getting to the point that I'm struggling to use it, even though I freaking
1:37:28love Tweetbot.
1:37:29I use Tweetbot on all my devices, but it's hard to use it on the iPad now.
1:37:34- Forget about Tweetbot and old,
1:37:35because I have the same problem with it.
1:37:37Twitterific sometimes when you click on a Twit pick
1:37:40or a pick that Twitter or whatever link,
1:37:42it just shows the same tweet over and over again
1:37:43and you just keep chasing the link, right?
1:37:46Twitter itself, the mobile website,
1:37:47when I give up and say open in Safari,
1:37:49that doesn't load for me like 50% of the time.
1:37:51- Oh, easily 80 to 90% for me, it's ridiculous.
1:37:54- I don't understand it.
1:37:55Sometimes you just get a spinner forever,
1:37:57somebody just, not it won't load an animated GIF,
1:37:59but like, I don't even know if it's an animated GIF
1:38:01'cause all it will show me is the Chrome,
1:38:03you know, like, and then maybe a spinner
1:38:05or maybe it's just gray, maybe the page is, anyway,
1:38:07that's, I don't understand how these super famous,
1:38:12highly used sites have like a 50% failure rate
1:38:14of just viewing the content
1:38:15when you're not using the official Twitter app,
1:38:17which I bet works great.
1:38:18- You're still mad about Vine.
1:38:19- Yeah, that too.
1:38:20(laughing)
1:38:21- So I set up the new iPad Air with,
1:38:25the primary things I'm doing on it are looking at email,
1:38:30not even responding to email,
1:38:31just looking at email 'cause it's good for that,
1:38:33and it's good for me going through the overcast
1:38:35support email 'cause I don't respond to most of it.
1:38:37Games and browsing.
1:38:40Browsing is an important category.
1:38:41So browsing, I don't just mean a web browser,
1:38:44although that's part of it.
1:38:45I mean anything that involves browsing a feed
1:38:48mostly for consumption.
1:38:49Yes, I know it's a cliche, it's only for consumption.
1:38:52For what I'm saying, this actually works very well for me.
1:38:55So Amazon, for instance, works very well on the iPad.
1:38:59So that's shopping, Instagram, any kind of news browser,
1:39:03any kind of newsstand publication.
1:39:06Like there's this objc.io, btiffc.io,
1:39:10we'll put that in the show notes.
1:39:11I like that a lot.
1:39:12I read that on the iPad, even though you can read it
1:39:14on the iPhone, but it's better on the iPad, I think.
1:39:16Anything that involves browsing code in general
1:39:18is better on the bigger screen,
1:39:20'cause usually it wraps too much on the iPhone screen.
1:39:22- Yeah, that's why I can't read like, you know,
1:39:24Reddit or Hacker News or anything.
1:39:25Any sort of, because you know you're gonna follow a link
1:39:27that's gonna have code in it.
1:39:28And as soon as there's code, it's like, well, forget it.
1:39:30I just cannot read this on the phone
1:39:31because it's truncated, you got a two-finger swipe
1:39:33to try to scroll.
1:39:34It's like, what am I even doing?
1:39:35Because it's fixed width.
1:39:36You can't just arbitrarily rewrap it.
1:39:40- Right, exactly.
1:39:41Also, any kind of web forums like Hacker News,
1:39:44any kind of old PHP BB kind of forum,
1:39:46so many of those don't have very good responsive
1:39:49or any responsive layouts.
1:39:51So many of those are still very hard to browse on a phone
1:39:54without having to either do it in landscape
1:39:56and only have two lines on screen at once
1:39:57or had these really tiny little text columns
1:40:01that you could get like squint to see the text
1:40:03'cause it doesn't resize properly.
1:40:05So many things like that.
1:40:06Like browsing the web in general,
1:40:08if I have the option to use both of these devices
1:40:11to browse the web, I'll prefer the iPad
1:40:13because everything we've been saying.
1:40:15So now that I've restricted the iPad conceptually
1:40:19to like not to serve the exact same roles as my phone.
1:40:22If I wanna browse Twitter and do stuff like that,
1:40:24the phone is a better device for that for me,
1:40:26mostly for software, but the phone is a better device
1:40:29for that.
1:40:30But for browsing, lounging, and playing games,
1:40:35the iPad is very pleasant and better in a number of key ways.
1:40:39And so that's how I'm reframing the use of it.
1:40:42I think, as I said, like, you know,
1:40:43I got rid of my hardware complaints.
1:40:45I now have zero complaints about the hardware.
1:40:46The iPad Air 2 hardware is amazing.
1:40:48So I have no complaints about the hardware.
1:40:50I'm gonna sell every other iPad I have
1:40:52because I hate them all.
1:40:53(laughs)
1:40:54And they made me hate the iPad, damn it.
1:40:56So I'm gonna get rid of all those
1:40:58and just keep this one for a while and see how it goes.
1:41:03Chances are it's not gonna stick as much as I want it to.
1:41:06Chances are I just bought it 'cause it was shiny
1:41:07and new and light and thin
1:41:09and you'll be making fun of me in six months
1:41:12when I say I forgot about it.
1:41:13But right now I think I found a way
1:41:16to make this fit better in my life
1:41:18by not making it just be a bigger version
1:41:21of everything on my phone
1:41:22'cause some of the things are gonna be worse.
1:41:25but instead reframing it as like,
1:41:26this is the device that I keep next to the bed,
1:41:29browsing at night, having fun,
1:41:31playing a game or reading the news.
1:41:33Like that, that I think is gonna be
1:41:36a lot better for the iPad.
1:41:37- So you really have no hard work complaints,
1:41:39not even the one I'm about to say,
1:41:41can you guess what it is?
1:41:42- Are you upset about the mute switch?
1:41:44- I am, but that's minor in the grand scheme of things.
1:41:46I am annoyed they took that away,
1:41:47'cause that's like why you got all this
1:41:49freaking room for switches and it's really useful.
1:41:51And anyway, yeah, my wife's got an attitude as well.
1:41:54My complaint is the same complaint I had about the mini.
1:41:57Well, one of the complaints I had about the mini.
1:41:59- The bezel width?
1:42:00- Yes, yes, why?
1:42:02It's so upsetting to me because that's not there.
1:42:07I understand why they make the bezel width smaller and smaller
1:42:11on things like monitors and stuff.
1:42:12'Cause it's like, what's the point of it or whatever.
1:42:14But there was an actual point to the border
1:42:16around the previous iPads.
1:42:17It wasn't just there because that's as small
1:42:19as they could make it.
1:42:21And they needed a buffer.
1:42:21Like, no, it's there because that's where you hold it.
1:42:23and the thumb rejection stuff just driving nuts.
1:42:26And maybe it's just me,
1:42:27maybe I just can't get over the idea of like,
1:42:29just go ahead, just put your thumb around,
1:42:30don't worry, you'll never accidentally activate a button,
1:42:33the thumb rejection will totally handle this for you,
1:42:35I just can't get over it.
1:42:37And so I constantly feel like I'm holding it by like,
1:42:39I'm actually trying not to touch the screen with my thumb,
1:42:42and it just, it feels more precarious.
1:42:44It's like, why, why do I just make it wider?
1:42:47And by the way, if you make it ever so slightly wider,
1:42:50it doesn't have to be as big as it was in the iPad 3,
1:42:51but it needs to be a thumb width, right?
1:42:53If you make it wider, you can also fit more battery.
1:42:55Just saying.
1:42:56(laughing)
1:42:58- Do you use a case on it by any chance?
1:43:00- No, no, never.
1:43:01- Cover?
1:43:02- Yes.
1:43:03That's another thing that I like is that,
1:43:04if you wanna keep going into iPad Air complaints,
1:43:06the Smart Cover, the one with the metal hinge,
1:43:08which I'm sure had some kind of problems or whatever,
1:43:10way better in terms of going off axis
1:43:12when you open and close it, you know, like not staying--
1:43:15- Oh, you're talking about the iPad 3 one,
1:43:16the original one, yeah, yeah.
1:43:18- Yeah, the original Smart Cover, which I still have,
1:43:21there's probably some kind of durability problem with it
1:43:23and maybe it scratches up people's iPads.
1:43:25Like I'm not sure what the issues are,
1:43:26but the one thing it did do is when you open and close it,
1:43:29the edge of the iPad matches up with the,
1:43:31like it doesn't go off at a different angle.
1:43:33Whereas the mini version where it's a cloth hinge,
1:43:37the cloth hinge one is off axis all the time.
1:43:39That is just, if you're anal retentive,
1:43:41that really bothers you.
1:43:42Like mute switch, the bad cover,
1:43:45the number three folds instead of four,
1:43:48like those are all minor things,
1:43:49but all of them are trumped by the little skinny edge,
1:43:53which I just feel like doesn't need,
1:43:54especially since it's so light and so thin.
1:43:55Like I don't feel like, oh, don't we really need
1:43:57to make it an extra two centimeters narrower?
1:43:59No, you don't.
1:44:00Let me, give me someplace to put my thumb.
1:44:02- So for whatever, I got the full wraparound case this time.
1:44:05This is my first time having one of those
1:44:06because like they made it so incredibly thin and light
1:44:09that like the extra bulk of the wraparound case
1:44:11is so minimal and it does make it easier to hold
1:44:13in certain ways or certain situations.
1:44:16I never, the smart covers always seem like a good idea
1:44:18in theory, in practice I always found them kind of annoying
1:44:22in various ways.
1:44:23The case is in some ways slightly less annoying.
1:44:26That's all I can say.
1:44:28It's not perfect, you know, it still has the problem
1:44:29of like, oh you have this thing that flaps around
1:44:31in the back sometimes and doesn't hold on very well.
1:44:33But it at least fixes any alignment issues you have
1:44:35because the case is always perfectly aligned.
1:44:37- Yeah, I might try that case.
1:44:39- Yeah, again, it's not great,
1:44:40but I think it's a little bit better.
1:44:42- For the in-house kind of magazine like iPad like mine is,
1:44:46the awesome thing about the Smart Cover is,
1:44:48because I don't have a lock code on it
1:44:49'cause the thing never leaves my house.
1:44:51When you open the cover, it's activated.
1:44:53You know, there's no--
1:44:54- Oh yeah, well the case does that too, obviously.
1:44:56- Yeah, I know, so that's the handy thing.
1:44:57And I also, of course, I leave mine face up
1:45:00with the cover on it so that I can stack things
1:45:02on top of the cover without fear of scraping anything.
1:45:05- Yeah, but then you're gonna scratch the back.
1:45:06- Yeah, there's nothing underneath.
1:45:07I mean, it's actually sitting on top of like a,
1:45:09it's sitting on top of its own case.
1:45:10I have a slip case for it that I use
1:45:12when I take it to WWDC.
1:45:13- Oh yeah.
1:45:14- For all the, I mean, this has come with me
1:45:15every single WWDC I've been to,
1:45:17And except for one small dent in the corner, which was my fault,
1:45:20and I think I've discussed before, it's not beaten up.
1:45:23It's in pretty good condition.
1:45:24It's survived.
1:45:25I've found, in my experience, full-size iPads
1:45:28are surprisingly durable.
1:45:29Maybe the Air will change that because it's so thin.
1:45:32We haven't had any iPad Air bend gates.
1:45:34That's what we need.
1:45:34Someone to make a YouTube video, take an iPad Air,
1:45:36and they put it over their knee, and they just
1:45:38lean on it really hard.
1:45:39And then it bends, and they tailed it up and go, huh?
1:45:41See?
1:45:41Totally a problem.
1:45:44Marco, is your iPad cellular or Wi-Fi?
1:45:48- I got cellular because I still do,
1:45:51so and I think this might be my last cellular one
1:45:54because I do think like, I wasn't sure like
1:45:56will I end up bringing it on trips again like I used to?
1:45:58I don't know.
1:45:59And so far I've been bringing it on the last couple trips
1:46:03I've taken so the various holiday trips,
1:46:05but I haven't actually used the cellular function yet.
1:46:07And I think if I don't use it again
1:46:09in the next like six months,
1:46:10I'm just gonna stop buying them with cellular.
1:46:13Honestly, I think it'll be a few years
1:46:14before I buy another one,
1:46:15but I did always use it for carrier diversity.
1:46:18I would always have the Verizon iPad and the AT&T iPhone.
1:46:21And that way, wherever I was,
1:46:23I could tether with either one.
1:46:25So if I went on a trip,
1:46:26I would never have to use terrible hotel wifi.
1:46:28I could always tether with one of them.
1:46:30And usually Verizon was a better one to do that on.
1:46:32Usually the places I was going, Verizon had better coverage.
1:46:35In the last year or two, that has been less of the case.
1:46:40Verizon's coverage has gotten worse for me
1:46:42in many places I go, and more often than not now,
1:46:45I use the AT&T tethering because it just is faster
1:46:48where I am, and that, first of all, is concerning.
1:46:51(laughs)
1:46:52The world is turning upside down,
1:46:54but so it might just prove that I don't need a Verizon
1:46:57at all anymore and I could dump them finally,
1:46:59but we'll see.
1:47:00- All right.
1:47:01- And I do recommend, if you're the kind of person
1:47:04that's gonna carry around an iPad with you in the world,
1:47:06like not just leave it in your house all the time,
1:47:09definitely get cellular.
1:47:10It is very much worth it because if you're using it
1:47:14by itself most of the time, tethering is still
1:47:16a little bit annoying.
1:47:17That being said, the new iOS 8 tethering
1:47:20with how it detects your phone through continuity
1:47:22or whatever, that might make it a little bit better,
1:47:24that might close the gap a little bit, I don't know.
1:47:26But I do recommend still, I think, getting cellular
1:47:29if you're gonna carry it around.
1:47:30But if it's gonna be in your house the whole time,
1:47:31I don't think it's that important.
1:47:33- Yeah, I couldn't agree more 'cause this is, again,
1:47:35my third iPad for cellular and I wasn't sure if the,
1:47:38What is it like $130 was really worth it?
1:47:41I did the exact same thing you did
1:47:44in that I got a Verizon iPad and I have AT&T for my phone.
1:47:49I then got the, I don't know if this is still a thing or not
1:47:52but you could, right around the time the iPad mini
1:47:57with Retina came out, you could give T-Mobile 10 bucks
1:48:00and they'll give you a SIM and you could,
1:48:04they will give you 200 megs of data every month for free
1:48:07on the hope that if you already have their SIM card
1:48:09in your iPad, when you need to pay for data,
1:48:11well, A, you'll be in a place that T-Mobile actually works
1:48:14and B, that you will pay T-Mobile for that data.
1:48:18And I find that for the amount of time I'm running about
1:48:23with my iPad, 200 megs of data is actually usually enough.
1:48:27And then if I'm traveling, I can either use T-Mobile
1:48:30if I'm in a major metropolitan area or Verizon if I'm not
1:48:34and get online with that.
1:48:36And I gotta tell you, being at the beach
1:48:39and being able to screw around on Twitter,
1:48:41if I so desire, with my iPad, that's pretty cool.
1:48:44So I agree with you that if you think
1:48:46you're gonna be leaving the house a lot,
1:48:47definitely spend the extra money to get a cellular iPad.
1:48:51I really do think it's worth it.
1:48:53- And that T-Mobile thing is still there.
1:48:54I looked when I was activating mine.
1:48:56I ended up just transferring the Verizon,
1:48:57'cause if you, the new ones had the Apple SIM,
1:48:59but if you sent it to Verizon, it locks to Verizon,
1:49:02which is stupid.
1:49:03I'm sure that was Verizon being a pain or something.
1:49:05Anyway, so I just transferred the SIM from the old iPad.
1:49:09But the Apple SIM does still offer that option.
1:49:13So you don't even have to go get 10 bucks
1:49:15and give them to a T-Mobile store.
1:49:17You can bypass that step.
1:49:18You can just buy new iPad Air 2 with cellular today
1:49:21and just select T-Mobile from the startup screen
1:49:24on the cellular plan thing.
1:49:26And it does offer that 200 megs for everything.
1:49:29- That's awesome, I didn't know that.
1:49:31- Anyway, thanks a lot to our three sponsors this week.
1:49:33Harry's, Fracture, and Squarespace,
1:49:36and we will see you next week.
1:49:38(upbeat music)
1:49:40♪ Now the show is over ♪
1:49:43♪ They didn't even mean to begin ♪
1:49:45♪ 'Cause it was accidental ♪
1:49:47♪ Accidental ♪
1:49:48♪ Oh it was accidental ♪
1:49:50♪ Accidental ♪
1:49:51♪ John didn't do any research ♪
1:49:53♪ Marco and Casey wouldn't let him ♪
1:49:56♪ 'Cause it was accidental ♪
1:49:57♪ Accidental ♪
1:49:59♪ Oh it was accidental ♪
1:50:00♪ Accidental ♪
1:50:01And you can find the show notes at ATP.fm
1:50:07And if you're into Twitter, you can follow them
1:50:11@C-A-S-E-Y-L-I-S-S
1:50:15So that's Casey, Lis, M-A-R-C-O-A-R-M
1:50:20N-T-M-A-R-C-O-R-M-N-S-I-R-A-C
1:50:25U-S-A-C-R-A-C-U-S-A
1:50:27It's accidental
1:50:30♪ They didn't mean to accidentally ♪
1:50:35♪ Tech podcast so long ♪
1:50:39- You were saying something about,
1:50:42it was hard to see code on a tiny screen and stuff like that.
1:50:44- Yep.
1:50:45- This phenomenon, I don't know if it's new for Twitter.
1:50:48Maybe it's not just Twitter, maybe it's lots of things,
1:50:51but I find very often when I am doing stuff
1:50:54on my phone or iPod touch,
1:50:57and somebody does that thing where they post a screenshot
1:51:00and either it is a screenshot trying to show
1:51:02some piece of software or something,
1:51:03or more commonly I find it is that insane thing
1:51:07that makes no sense to me,
1:51:09except for maybe as a way to get around tweet limits,
1:51:11which I actually think this is about Twitter,
1:51:12where they post a picture of text.
1:51:15- Oh, God, it's so bad.
1:51:17- It's like a picture of a web page,
1:51:20like they screenshot their web browser
1:51:22and then put that in a thing.
1:51:24Sometimes it's a picture of a tweet,
1:51:26which really boggles my mind,
1:51:27'cause there's a mechanism for retweeting.
1:51:30(laughing)
1:51:31I guess maybe in the non-technical person's
1:51:35like view of the world,
1:51:36a screenshot is somehow proof in the same way
1:51:38that a photograph was proof,
1:51:40which really just makes zero sense.
1:51:42But anyway, my problem is,
1:51:44all right, so people do this thing.
1:51:45And sometimes it's just a legitimate screenshot,
1:51:47like showing some application or whatever.
1:51:49And whatever I'm using,
1:51:50whether it's a Twitter website or a Twitter client,
1:51:52or if it's a Vine thing,
1:51:53or if it's an imager link,
1:51:54or like I don't even know what software I'm using,
1:51:56but very frequently I find myself tapping something,
1:51:59seeing a picture and I can't freaking read it,
1:52:01no matter how much I zoom because it's so massively low,
1:52:04like the resolution is not sufficient to resolve letters.
1:52:07Like the letters are just a jumble of, you know,
1:52:09it's JPEG compression, you know,
1:52:12like if it's like some big indented comment or whatever,
1:52:16and it's like, I know this is not the original image
1:52:19because nobody would have posted this image
1:52:20'cause it's illegible, they're trying to make a point.
1:52:22And like, sometimes it's just the picture,
1:52:23like, oh, look at this, read this text and become outraged
1:52:26or whatever the hell they're trying to say, right?
1:52:27and it is 100% illegible.
1:52:29And that means something between me and them
1:52:32is causing a massively compressive version
1:52:34of this image to come in.
1:52:35And probably it's Twitter doing it,
1:52:38like try to say, oh, we'll serve the mobile version.
1:52:41What I'm getting is that so many things,
1:52:43so many web services seem to have the idea
1:52:45that all pictures are photos
1:52:47and no pictures are screenshots or contained text.
1:52:50And in my experience, it's the opposite.
1:52:52Almost all pictures are not photos
1:52:54and are like screenshots or text or something.
1:52:56And I want to be able to read them.
1:52:58And these services,
1:52:59like this is another reason I want to be in my iPad,
1:53:01because at least in the iPad,
1:53:02I have a fighting chance that they won't try to serve me
1:53:04the super duper compressed tiny scaled version of the image.
1:53:08And I find that incredibly frustrating.
1:53:10It's like, I'm not allowed on the quote unquote,
1:53:11real internet.
1:53:12I have to be,
1:53:13it's like being in a WAP browser again.
1:53:14Like I have to be in the toy version of this.
1:53:17You can't handle the full quote unquote photo.
1:53:20Here's this totally mangled version that is useless to you,
1:53:22but you can't read a damn thing on it.
1:53:24It drives me up a wall.
1:53:26- Yeah, I can't get over, what is it?
1:53:29Tweet shotting or something like that?
1:53:31- When I said, "Sh*t pic" the other day,
1:53:32was that, that's like a thing?
1:53:34- I have no idea, but basically where,
1:53:36like John was saying, where you take a screenshot
1:53:39of something and maybe if you're really cool,
1:53:42you'll like highlight the line
1:53:44that you wanna call attention to.
1:53:48Like that's annoying, but I can get over it
1:53:51if you can include a link to whatever page
1:53:53you're trying to link to, but my favorite,
1:53:57and by favorite I mean the thing I fricking hate,
1:54:00is when they take a screenshot of this thing
1:54:02and they don't provide a fricking link.
1:54:04Oh God, it's so annoying.
1:54:06- People are posting examples.
1:54:08Like, you know, this one from MG Siegler
1:54:11is obviously a screenshot of like Mobile Safari
1:54:13because you can see they've highlighted the paragraph
1:54:14or whatever.
1:54:16And sometimes it's not like, you know,
1:54:17the content may be good.
1:54:18Like what people are trying to do with this?
1:54:20And there's strategies beyond like the using screenshots
1:54:23A lot of it is like, I can't fit this in a tweet.
1:54:25I can put a link to it in a tweet,
1:54:27but I think if I put a link to it, you won't follow it.
1:54:28And so many Twitter clients inline images
1:54:30that if I put the actual image,
1:54:32you can read texts that I couldn't otherwise include
1:54:35in the tweet.
1:54:35It's like people are just doing what works
1:54:37'cause people will quote unquote engage
1:54:40with your tweet more if they can see the paragraph of text
1:54:44that you're, you know.
1:54:45I don't even use a Twitter client that,
1:54:47I mean, Twitter does inline images,
1:54:50but I have that feature turned off.
1:54:51And for the longest time,
1:54:52didn't inline images and also my experience with Twitter is very different.
1:54:54I would rather just follow the link, but sometimes it's nice to be able to know exactly where
1:54:57it is.
1:54:58This is another thing with in-page anchors that either people don't know how to use or
1:55:02they don't exist or both.
1:55:03And so the best way people can communicate, there's an article and this part about it
1:55:07I want, basically what they're doing is a link list kind of blog post where they're
1:55:11running a link blog, they want to link you to something and they want to quote the passages
1:55:14that they found relevant and comment on them.
1:55:16And the way they do it is tweet on top 140 characters or less plus the link to the image
1:55:22and the image has the part highlighted that they're interested in.
1:55:25So it's kind of a mutant inverted form of blogging where you can't disperse the two
1:55:30things.
1:55:31Anyway, bottom line, if you're writing your mobile application, don't assume all photos
1:55:34are text.
1:55:35If you're going to want to be clever and you want to save bandwidth, figure out if their
1:55:37photos are text or not.
1:55:38If they're text, make sure that you don't scale them down so brutally that it becomes
1:55:42complete gibberish.
1:55:43All right.
1:55:44I'm tired.
1:55:45What are these titles?
1:55:46SSL is not pancetta? Who said that?
1:55:49I think we discovered that Boar's Head makes pancetta.
1:55:53I don't know if that's going to be any good because it's not really an Italian brand, I don't think.
1:55:58Anyway, we bought some, we're going to try it.
1:56:01Well, I agree that SSL is not pancetta.
1:56:04This is true.
1:56:06Full of landmines, pitfalls, and bottomless pits is pretty decent, although I might have said that. It was either me or Marco.
1:56:12So I think it was UK's talking about no.
1:56:14Yeah, I think so.
1:56:15How about how about get rid of how about get rid of the full of and just go with landmines pitfalls and bottomless pits
1:56:19I could do that. I like that and then but put the Oxford comment
1:56:23So landmines comma fit pit falls comma and bottomless pits
1:56:26It makes me so happy to hear that you also appreciate an Oxford comma and this is that unanimous?
1:56:31Did I hear Marco say the same? Oh, absolutely
1:56:33Appreciation everybody agrees that the only people who don't agree. No, no, it's crazy. It's great
1:56:38It's not like a style choice
1:56:40like well
1:56:40you go on with the other it is a
1:56:41clarity 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
1:56:47And go see and I guess those people are like, oh well
1:56:49I guess you'd have to use it there or don't write that sentence or some crazy thing. It's no forget it
1:56:54I've never heard a convincing argument against I could not agree with you more friend of the show Steven Hackett
1:56:59Swears that the Oxford comma is evil and I am glad that we all agree that he's wrong
1:57:03So what does he say on you know, when people bring up the examples of like this sentence?
1:57:07Changes the meaning of the sentence and it's totally crazy
1:57:09And if you don't let me put a comma there, I cannot express the meaning the intended meaning of the sentence
1:57:13What does he say then? I have no idea we could probably call him
1:57:17I have no idea
1:57:19See like what what drives me nuts about about the the absence of the Oxford comma when it's absent
1:57:24It's like when I read and I don't know if everyone reads this way
1:57:27Maybe 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
1:57:34Yes, and and so I write with this in mind
1:57:37So I try to avoid giving people this feeling and it's hard, you know to know what with your own stuff
1:57:42And 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
1:57:48Cuz I thought I meant this and you know, so it's good to you know
1:57:50Pay attention to that and reword things when you need to but like for me
1:57:54It's like like I read in a stream and I don't want to have to read the whole sentence
1:57:58To understand the beginning of it unless you know, you know, you can like push the claws on your stack and everything
1:58:04but you know for the most part it's like
1:58:07as you're reading you don't want to be tripped up
1:58:09by something like the end of a list not happening
1:58:13the way you thought it would,
1:58:13or parallel structure errors are a great example
1:58:16of this, stuff like that.
1:58:17And I think the absence of the Harvard/serial comma
1:58:22increases the likelihood of people tripping up
1:58:24as they're reading that list of items
1:58:26and mis-parsing it for a second
1:58:28and having to go back and be like,
1:58:29oh, wait a minute, oh, that's what they meant by that.
1:58:32- I really don't understand how people could think
1:58:34that not having the Oxford comma is an option.
1:58:38Because I agree with Jon.
1:58:39Like it dramatically changes the meaning of the sentence,
1:58:42but whatever.
1:58:43I'm so, it makes me genuinely happy
1:58:47that we all agree on this.
1:58:48- The only thing we all agree on.
1:58:50(laughing)
1:58:51- Well, that and iPads aren't a complete waste of money.
1:58:54- Yeah.
1:58:55Well, ask me to get in six months.
1:58:56- That's true.
1:58:57You gotta figure out this note issue.
1:59:00I know you're gonna give up on it and you probably should,
1:59:02but it makes me sad.
1:59:04If I loved everything else about Node,
1:59:05I would try to figure this out more.
1:59:07- It just doesn't seem like a type of, I mean, it's young.
1:59:10It's like it hasn't been tested in this way,
1:59:12in the way that a lot of these older things have,
1:59:15especially if it seems like the type of thing where you,
1:59:18okay, so you run into this problem
1:59:19and you ask the question and the answer is not,
1:59:22oh, of course, everyone runs into that problem,
1:59:23here's how you fix it.
1:59:24The answer is, oh, of course, everyone's into that problem
1:59:26and you're right, it's a problem.
1:59:27Like that's bad because the beginner
1:59:29should not immediately find the thing
1:59:31that causes people who know to say,
1:59:35yeah, no, that totally doesn't work.
1:59:36I mean, what should really happen is you should run
1:59:38into all the problems and everyone should be like,
1:59:39yeah, that's what everyone runs into, here's what you do,
1:59:41and then you run into another one.
1:59:42Like, it should be the progression of you learning
1:59:45a language, it shouldn't be, you know, three days in,
1:59:48you immediately hit a roadblock that is a legitimate
1:59:50roadblock and there's not a commonly known workaround.
1:59:53- Yeah, and it's like, and like what,
1:59:56you can always tell the warning signs from the community
1:59:59that this might be the wrong thing for you.
2:00:02Like if the questions you answer,
2:00:04like so the question is,
2:00:06why is setTimeout leaking memory?
2:00:09If all of the answers are don't use setTimeout,
2:00:13and there's nothing else that does the same thing,
2:00:15then it's like okay, that's a red flag right there.
2:00:18That means that something's not right here.
2:00:21Some part of this is a bad fit.
2:00:23Like this is not what I'm looking for.
2:00:25- Yeah, I remember trying to look for a sleep call
2:00:27in JavaScript early on, I was like, well, you know,
2:00:31every language has some way to just, you know,
2:00:32I was just doing it to like induce a race condition
2:00:35or whatever.
2:00:36It's not like I wanted setTimeout.
2:00:36I wanted like just you do nothing for a while, please.
2:00:39'Cause I wanted to have a race with some of the stuff
2:00:41that was going on.
2:00:42And it's like, how can a language not have a sleep call?
2:00:45This is like Unix addling my brain,
2:00:47assuming every language has access to the Unix API.
2:00:49But yeah, without setTimeout, without a way for you to say,
2:00:54don't do this now, but in a little bit,
2:00:57in a time that I'm gonna specify in milliseconds, do this.
2:01:00And if you can't do that,
2:01:01I was trying to think when you were asking that question,
2:01:03well, if I don't use setTimeout, then what's my alternative?
2:01:06Maybe Node has an alternative, 'cause Node, you know.
2:01:08- No, that is, Node implemented setTimeout
2:01:11and setInterval itself, in its engine, to work this way.
2:01:16And that is, if you look at,
2:01:17they call it the timers module,
2:01:19if you look at the Node timers module, that's it.
2:01:22Those are the functions that you have
2:01:24to schedule something in the future.
2:01:25- And it's not just like a thing where you have to be
2:01:28careful about what you reference inside the closure
2:01:30and stuff like this, there's like no work around.
2:01:32Like oh everyone knows when you do setTimeout
2:01:34you gotta be careful not to have,
2:01:35not to close over these references
2:01:36or to like explicitly do something, you know,
2:01:38to make it happy so you don't leak memory, there's nothing.
2:01:41- I haven't looked too far into it.
2:01:42I even tried, I'm like, you know, maybe,
2:01:45maybe it is doing something way too,
2:01:48literally the call is like setTimeout,
2:01:50pull URL, CTL, and then like ID, that's it.
2:01:54and the ID is an integer.
2:01:55And I even tried parse int on it
2:01:57just to make sure it sends an integer
2:01:58and doesn't try to retain something crazy.
2:02:00And I even tried making it a string eval thing
2:02:04to set time out, but unfortunately no doesn't support that.
2:02:07So, 'cause I was like, maybe that would force it
2:02:10not to retain anything intelligently
2:02:12'cause it doesn't know what I'm calling.
2:02:13Nope, didn't help, can't be done.
2:02:15- Yeah, this and the memory limit,
2:02:17which also seemed to turn out to be,
2:02:18no, actually that's the limit,
2:02:20and it's the limit and it's low,
2:02:22and apparently people aren't bothered by,
2:02:25like it's not, I don't know.
2:02:27It's like Chrome and emoji support.
2:02:29Some things just can't be explained.
2:02:32- Although isn't that coming?
2:02:33- I'm sure it's coming, I'm sure.
2:02:35Anytime now.
2:02:36- Overall, I think I would say,
2:02:39if I had to predict, and granted,
2:02:41most of my predictions are comically wrong,
2:02:43but if I had to predict the future of these languages,
2:02:47I would say Python and Ruby will outlive Node
2:02:52in common usage.
2:02:54- But no, it's not a language.
2:02:54JavaScript is a language.
2:02:55And JavaScript is a language sucks.
2:02:57And the only reason anyone cares about it all
2:02:59is 'cause it's every freaking where.
2:03:00We all have to deal with it.
2:03:01And like, so that's that for JavaScript.
2:03:03And Node is like, well, wouldn't it be great
2:03:05if you could use the same thing
2:03:07on the server-
2:03:16node.js is not the one.
2:03:18Or maybe it needs more time to bake or whatever.
2:03:20But there's nothing about Node that says
2:03:22Like, oh, maybe Node never works out,
2:03:23but then someone else comes out with the server side.
2:03:25There have been other server-side JavaScript engines.
2:03:27There will be other ones in the future.
2:03:29Until we can, unless we can get JavaScript
2:03:31off of the browser, there will always be
2:03:35a place for JavaScript on the server.
2:03:37And whether, who implements it and who does a good job,
2:03:40and if there are bugs and if it gets used
2:03:41in large scale applications,
2:03:42I think that will change over the years.
2:03:44But until we can get rid of JavaScript
2:03:46on the browser side, we're probably stuck
2:03:48with some kind of JavaScript on the server side.
2:03:51You know, I should point out that the current version of Node is 0.10.35, which, I mean,
2:03:59obviously everyone's version numbers mean something different than everyone else's,
2:04:03but we are far from...
2:04:04Well, it looks to me like we are far from 1.0.
2:04:08Although this is something that should be solved already.
2:04:10Yeah, I mean, there's nothing technically about Node that says that it couldn't be made
2:04:13to be better.
2:04:14Like it's just young yet, and people obviously haven't stressed it to do the type of stuff
2:04:19the market was doing or haven't found that that's where the limit is, it needs time to
2:04:24mature and become battle tested.
2:04:26>> Right, I mean, maybe I'm using the wrong tool for the job here, but it really seemed
2:04:30like it was a good tool for this job.
2:04:32>> Yeah, it really bums me out because I really wanted you to like it.
2:04:35I don't even know why.
2:04:36Like, it doesn't matter, but it just seemed like this is the sort of thing I would use
2:04:41Node for, to your point.
2:04:43And it seems like it's a lost cause.
2:04:47- And it would work fine if you had 10,000 URLs to query,
2:04:50but once you're up into 250,000,
2:04:53then that's getting creaky.
2:04:54- And it would work fine if I was willing
2:04:56to restart the process every six hours
2:04:58with only 10,000 URLs to crawl.
2:04:59Like, it's a memory leak, like it leaks forever.
2:05:03Like, it eventually gets too big, and yeah.
2:05:06And when I'm crawling the full,
2:05:08and I'm not even crawling all 250,000,
2:05:11like I did, like my last test was I was just crawling
2:05:14an eighth of them, so whatever that is,
2:05:15like 40 or whatever that is.
2:05:17And even doing that, it would pass a gig
2:05:21within like 20 minutes.
2:05:22It was really bad.
2:05:24Like it's doing something.
2:05:25And I tried, there's a heap dump thing.
2:05:28So I tried taking heap dump profiles
2:05:29and loading them into Chrome's developer thing
2:05:31and looking at all the stacks.
2:05:33- I saw them, it was like iTunes, everything was other.
2:05:35- Yeah, exactly.
2:05:36Well, and for the few objects it is tracking,
2:05:39you could see some of them had really, really deep,
2:05:41recursive set timeout calls.
2:05:43So you can tell that's where the problem is.
2:05:45The problem is setTimeout is retaining things recursively,
2:05:49even though I'm not calling functions recursively,
2:05:51but the function at the end of itself calls setTimeout
2:05:55on itself for some point in the future.
2:05:58And I even tried not doing that
2:06:00and doing a worse solution using setInterval instead.
2:06:03And I tried clearing the intervals, of course,
2:06:05I tried all of that.
2:06:07I could not get it to work.
2:06:08I worked on this most of the afternoon today,
2:06:10and I could not get it to not leak all over the place.
2:06:13And it just, again, it just is not,
2:06:16it is not a good enough fit in every other way
2:06:19to what I want in a new language
2:06:21to make it worth fighting on this point.
2:06:23So, I mean, but Casey, I mean, you're getting what you want,
2:06:27which is you're getting me to try a new language.
2:06:28And now, because Node is not working out,
2:06:31I'm trying even more new languages.
2:06:32So really, this is awesome.
2:06:34- Well, yes and no.
2:06:37I think you're predisposed to hate
2:06:38almost everything you're trying,
2:06:40But to your credit, you are trying,
2:06:43and that is making me happy.
2:06:45- I wouldn't say I'm predisposed,
2:06:47once I actually, I'm predisposed to hate things
2:06:49I haven't tried before,
2:06:50'cause I don't wanna have to try them.
2:06:52Once I actually try a new language,
2:06:54like now I feel like I've spent two weeks
2:06:58or however long it's been getting pretty decent
2:07:01at this one really complicated task in Node,
2:07:04and now I feel like I'm throwing away all this knowledge.
2:07:06I mean, granted, at least it was quick,
2:07:07you know, at least I already knew the JavaScript syntax
2:07:09and everything, like, you know,
2:07:11Go is gonna take a little bit longer to learn
2:07:12just because it's so much more different than what I know.
2:07:15So I'm gonna be more upset if Go doesn't work out.
2:07:19But once I try something, I want it to work
2:07:22because I don't wanna learn something else.
2:07:24That's just like, it's like natural human defensiveness.
2:07:26Like you want, when something is new and unfamiliar,
2:07:29most people's default reaction is to try to reject
2:07:33its relevance to them so that they can continue
2:07:37the way they've been doing things or the way they,
2:07:39you know, the way they think things are,
2:07:42your instinct is to reject new ideas
2:07:44or dismiss them as soon as you can.
2:07:46- There's a political joke here, but I'm gonna let it go.