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