Three Phones Ago
You guys should both turn off your hands.
You should do the sweat lodge thing with me and we'll start to have visions.
That'll be the best episode ever.
It is indeed the Friday night, the 9th of August, and we are recording early because one of the three of us is disappearing for a week again.
But after this, we should actually be recording on a regular schedule.
And everyone keeps bemoaning the fact that our schedule changes a lot, and I don't really blame them.
And people will ask, well, why don't you have the schedule on the website?
And the problem is 99% of the time it's Wednesdays at 9 Eastern U.S.
time.
Well, that's not entirely true because we're only 25 episodes in, 26 now.
And there's been a lot more than a quarter of one episode that's been non-scheduled.
You know what I mean.
That's the default.
Wednesday at 9 is the default.
That is the default.
So when it's not the summertime and when everyone's not going crazy vacations all the time, well, at least when two of the three hosts aren't going crazy vacations all the time.
Your life is a crazy vacation.
Yeah.
Thank you.
Thank you.
The chat room wants me to comment.
Thank you from Apollo Zach in the chat room.
Wants me to comment on the beta Instapaper web redesign.
Do you guys see this yet?
I linked to it earlier today.
I saw that it existed.
I haven't looked at it.
And you know what?
There you go.
There's a topic.
We haven't had enough reviews telling us that this is the Marco show.
I know, really.
Let's keep going.
Well, you guys aren't helping me out right now.
This has nothing to do with Marco.
This is somebody else's product now.
This is the first time that I don't have a new app to announce on the show in weeks.
Oh, look at me.
I'm Marco.
I'm so smart.
I'll start writing one now.
By the end, you'll have something.
I was writing one earlier today.
Another new one?
No, the big one.
I've been working on it.
I've had a very solid week working on it, doing a whole lot of low-level stuff.
I thought you were done with the low-level stuff.
Well, there's more.
I was done with part of it.
Oh, my goodness.
Anyway, so Instapaper beta.
Yeah.
I knew they were moving everything to AWS.
And now, looking at what they've done, they've been doing a heck of a lot more than that.
And I'm really happy to see this.
I mean, this was way faster than I expected for this level of work.
And so they unveiled today a beta that's, I would say, about,
It looks on the surface, I haven't had that much time to poke around with it, but it looks like it's probably about two-thirds done, or three-quarters done even.
And it is really, really good.
And it's just the web interface right now.
They say updates for the apps are coming, and I believe them because I see this, and they really delivered.
I mean, this is really good.
And the web interface, as I wrote in my little post about it, the web interface was always...
my biggest embarrassment about Instapaper because I knew it was terrible.
It looked terrible.
It worked pretty poorly.
But not only am I a terrible web designer in most cases, but I also was not motivated to ever improve it because, well, the short version is all the money was in iOS, right?
And I always used iOS.
And so for something that made very little money directly with just the web interface, and a web interface that I hardly ever saw, I just was not motivated to really ever improve it.
And that's one of the problems when you have a one-person company.
One of the problems is if that one person isn't that interested in working on something, it generally doesn't get done.
And so now it's multiple people doing what's right for the product and what's great for everybody instead of just what they want to work on.
And it's really looking good.
What do you guys think?
I think it looks good.
I will say I can only imagine how much of, I can't think of a better word than a relief or perhaps of indication that this is the first major change that I'm aware of tends to paper since you, you've sold it.
And how good was that?
Must that make you feel that,
you now have a data point that says they're not going to ruin it.
And not to say that I expected Betaworks to, but now you have empirical evidence that says they're not going to ruin it.
And in fact, it's already getting better.
And that's got to make you feel, pardon the really bad pun, but like a million bucks.
It must make you feel really good that this is already trending up.
oh totally because you know before when i was selling it you know when i was in the process selling it i thought you know i talked about this on the show so i'm not going to go into too much depth here but i i thought the worst that can happen really is that they neglect it but i'm neglecting it and i've been neglecting it for like a year or two so you know the worst that can happen is that they just keep neglecting it so it's not that bad because obviously i've been neglecting it for a while and it's been okay um
Now this is concrete evidence that they're not just neglecting it, and that was the worst-case scenario.
Now, you're right.
Everywhere to go now, it's going to go up.
That doesn't make sense.
You know what I mean.
Apply the appropriate metaphor, please.
John, would you like to absolutely destroy it now that we've both been talking positively about it?
I didn't mind the old web interface that much.
It wasn't anything nice to look at.
It was just there and didn't really have much pizzazz or style, but it did what it was supposed to do.
And I used the web interface a surprising amount because there's a lot of stuff that I would Instapaper...
were things that either I didn't want to watch on a phone or couldn't watch on an iPad because they involved Flash, or it was like a 1080p trailer for a movie and I wanted to see it on my big screen.
And so I did spend a lot of time with the web interface, and it's just showing me a bunch of links.
The only thing that really annoyed me about the web interface were encoding problems, where you get a capital A with a hat on top of it or something when you have a...
double-encoded UTF-8 thing that's poorly escaped, but you never know whose fault that is.
I think I complained about it to Marco a couple times, but other than that... It was in the title, right?
I don't remember.
Yeah, probably in the title.
But the new web interface is nice.
It's kind of... It's a little bit like if you...
You can kind of see, oh, I don't know which technologies they're using, but like, oh, those look like, you know, I wonder if they use Bootstrap for that.
And I think I've seen that icon set before.
And, you know, but all the animations are nice.
All the interface is nice.
And the fact that Instapaper's look was kind of black and white, you know.
they you know it's i'm not gonna say it's easy for them to come up with a new design but they didn't have to do all sorts of like lavish graphics and custom uh images of wood at high resolution for you know you know all the sorts of things like if that had been into paper style would have you know been more difficult here they could go with a straightforward design with nice typography with black on white and it totally fits with the brand so i give thumbs up to the web thing i give it thumbs down to all the instability that has gone on since you sold this thing i don't know if it's because of the aws move or whatever but
i've hit read later and or tapped it or held down on it or done it in the umpteen different places that i do it and gotten you know either a really really really long pause or a timeout or a service is not available way more between the time you sold it now than the entire rest of the history of instapaper i'm assuming it's because they're moving into aws but that made me sad like if i'm reading something and instapaper is down even if it's down for five minutes now i gotta remember five minutes from now to come back and
hit the same link so I hope they get through that instability and we can get back up to the old Marco level stability which was very rarely down and only occasionally slow
Yeah, I haven't really asked them about that.
I've only hit a problem once in this time, and maybe it's just because when we're hitting them, I don't know.
I would imagine one of the differences among us is that you probably wake up a lot earlier than I do.
And so that might put you in a different usage zone.
But yeah, I've only hit a couple of problems, or one problem over the whole course of it.
But as far as I know, it's problems that are probably because they were moving it to AWS.
And that's...
I'm really surprised how quickly they were able to do that move and how well it's gone.
Because so much of when I'm running servers is about knowing the intricate details of exactly how much I can get away with performance-wise in certain characteristics or on certain servers or in certain software.
And by shifting things to AWS, you dramatically change the foundation of what everything is, like the assumptions you've made about characteristics.
Like my database servers were mostly SSDs.
As far as I know, AWS still doesn't offer that, do they?
Yeah.
I wouldn't know.
I don't know either.
But certainly I know that if they do offer it, it probably isn't simple or maybe complete.
So I would make assumptions like, all right, well, this server is going to always have at least this much RAM.
This server is going to always be 64-bit.
This server is going to always have really fast disks.
And this one is always going to have tons of CPU cores.
And so I was making all those assumptions all that time.
And to shift it to a system that works completely differently is a heck of a thing to do.
And I also had, I think, about 11 servers when I sold it.
And those were 11 pretty high-end servers.
The number of AWS instances required to replace them has to be more than that.
And so that...
I can't even imagine the scale of the work that is.
And the reason they did it was because they host all their stuff on AWS, so they know it really, really well.
And so that's a very good reason to do it.
But I think it really shows how good they are that they were able to do that kind of move with so little downtime, really, for what that is.
I mean, moving to not only a different host, like moving all of your servers to a different host, not only that, but moving them to a different type of host.
That's a big job.
The search still doesn't work in the beta, too.
It just gives a 502 error, so something's not hooked up there.
But the search works in the old one, so it's not like the search is down entirely.
I don't know if this is accurate or not.
Somebody on Twitter said that they're rewriting it in Python.
And I know somebody had mentioned the possibility of that to me once, and I said, yeah, do whatever you want.
I don't care.
But they might be doing that also.
I haven't even asked them again because I don't really care, honestly.
I haven't really asked them, but...
That might be part of this.
Maybe the beta is all a Python engine and the old side is still running the old PHP code.
I don't know.
Certainly, I don't have any problem with that because I respect Python as a language.
I don't know it very well, but I've always said that if I was going to learn another web scripting language today, it would probably be Python.
So yeah, good for them.
I think it's working really well.
And Instapaper is like a small enough application that it's not crazy to think of rewriting it because like how many screens and how many features it has.
And it's, and it's hidden behind like an API, like web interface.
So as long as you maintain the same sort of, you know, HTTP endpoints and the same, you know, protocol between them and they're redoing the native apps anyway.
But the point is like, it's, it's small enough that I feel like if they had a team who knows how to use these technologies well, and they're like, I know exactly how I do Instapaper and how I would shard everything and how I would
you know implement all the different services and there's like four things you can do with it you can read later you got a text parser you got this you got that like there's enough pieces where you can where you can hold it all in your head it's not like somebody said you know i'm going to rewrite this operating system in java you know it's not that level of uh of undertaking so i think it's a reasonable thing for them to do especially if that's what they have the expertise in if they've already staffed up to do that
Exactly.
And you're right.
I mean, the web code base, the way I handed it off, the web code base is really, really simple.
And in fact, I handed it off in kind of a messy state because I was kind of halfway transitioned between two text parsers.
So there was like the old one and the new one, both coexisting in various different places, and it was kind of a mess.
So I...
Sorry to anyone over there, if you're listening, if you had to clean that up.
But yeah, I mean, the web code base really is not that complicated.
And so they can rewrite it in whatever they want, and it's not really that big of a deal.
The iOS app, of course, is where most of the code is.
But you can't rewrite that in anything else, except, I guess, Xamarin?
What is that?
c sharp c sharp yes it's good times uh you know it's funny hearing you guys say that oh yeah you can rewrite it no problem uh because i keep flashing back to spolsky's article from years and years ago about rewriting something and how no matter how simple you think it will be it always ends up being a terrible disaster and i'm i'm
hugely paraphrasing, of course, but it keeps reminding me of that.
And the other thing I keep wondering or thinking to myself is, and I don't know if this is a worthwhile topic or not, but at what point do you choose familiarity over anything else?
So in other words, they may be more familiar with AWS and Python, but no matter how you slice it, they bought, Betaworks bought, something that was successful and functional.
And is familiarity more important to their team, which it appears it is, or is keeping what works more important?
And I wrestle with this a lot when I write code.
And you can also extrapolate this to be, is writing code in a clear way more?
Better than writing code in a clever and perhaps maybe not succinct is the best word, but, you know, if you could take 150 line function, let's say, and do some really clever stuff and get it down to 50 lines, but it's a lot harder to understand.
Is that really a net win or not?
And, and to me, as the older I get, the more I think, you know, familiarity really is important and really is worth fighting for.
And I found that I'm using less clever tricks in my code than I would have in the past, because I don't know if I'm going to remember what it was I was thinking in a month, let alone a coworker have any idea what I was doing in a week.
I don't know if you guys have anything interesting to add to that, but when you're buying, when you're buying like a company or a product or whatever, like it,
If you have the intention to go forward with that product, to make new versions of that product, add features and everything, you have to make sure that you have the ability to do that.
So if you buy something in PHP and Objective-C and you have nobody who knows PHP and Objective-C and nobody who knows iOS APIs, well, A, that was probably not a great idea to purchase that.
But B, you need to do one of two things.
Either get people with those expertise or change it to something that your people already have expertise in.
And like Marco said, with the iOS app,
they're going to get people who are familiar with iOS, or they probably already have them.
Like you can't change the language, basically, maybe they could change it to the C sharp or something like that.
But in general, that decision is made for them.
We bought an iOS app, we got to make sure we have people who understand the iOS API's, and they probably already do.
So we're good there.
And on the website, they bought something that was written in PHP, but
Like I said, it was small enough and simple enough that it's not that big a deal.
They could get expertise in PHP and go forward and enhance the application in PHP, but I bet they already have people who know how to do web stuff in Python really well.
And they have to do something so that they can add features and enhance this application.
And it's probably more efficient for them to rewrite the whole thing in Python,
Uh, because they have like an army of people who know Python and they think they can rewrite it really quickly.
But they probably like, like Marco does.
He's got his framework for web applications and stuff like that.
He's got a box of tools in PHP.
So when it comes time for him to do something on the web, it's much faster than just take out a toolbox with these tools that he's worked on.
Uh, and, uh,
and put something together so they probably have a toolbox full of python things and they're familiar with various python frameworks and they have their own in-house things or whatever so like oh i know exactly how i do instapaper i do with this that and the other thing and it's small enough that they can do it uh the joel article was kind of one of those things where he wanted to explain all the reasons why you might not want to rewrite something and he did and i think he explained them pretty well but
uh you know as as time goes on and and memories fade or whatever it becomes like oh that's the article where he said you should never ever ever rewrite anything which of course any sort of absolutist position like you should always rewrite or never rewrite it's not going to be you know your people are going to argue with it and that's going to be the straw man that they're going to disagree with uh i think he did a good job of highlighting why like the value in old code but every situation is different and you have to decide it
given your situation and the parameters and the requirements that are put upon you and what you actually want to do going forward, what you, you know.
What you're going to do.
And so the thing I think you used an example was Netscape being rewritten to become Mozilla and everything.
And first of all, no one's thinking, oh, Netscape is a simple application.
Like that won't be hard to rewrite.
Web browsers, those aren't complicated, right?
That'll be no problem.
Like they knew that it was complicated.
But, you know, with 2020 hindsight, you can say, look, that code base, that old Netscape code base was not going anywhere.
It was basically going to be a dead end.
It would not exist today, no matter how much work they put into it.
And even though there was tremendous value in, like, look at all the stuff we debugged and look at, you know, all those little tricky things we did to make sure that it worked with weird, you know, mail servers because there was a mail client built into it and how it worked with NNTP and all these nuances of talking to news servers and dealing with the web as it existed in 1993.
All that stuff had value, but the value by now is either gone or pointless because the web browsing engine world has gone so far.
And if they hadn't rewritten it, they would be completely irrelevant now.
And as it stands, they probably are due for another rewrite or something because their engine, Gecko and Mozilla and everything, is kind of looking like the old grandfather next to WebKit and Blink and all these fancy new things.
Yeah.
uh you know people saying now joel you wrote that article but look if they hadn't rewritten everything they'd be completely irrelevant and they're almost irrelevant now even though they did rewrite everything so you know there's a time the time comes when you need to cut your losses and move on but i think the value in that article is explaining why there is why uh old code has good qualities that you might not see when all you could see is how disgusting it is and how you wish you could rewrite it all
Oh, yeah.
I mean, there's definitely a very common programmer immaturity that you see where a programmer is assigned to take over a project, whether they were hired in as a new lead on it or they're looking at someone else's code who was previously there.
Almost always, young programmers want to rewrite it their way.
And that's generally a pretty immature and inefficient position to take because it's easier for you to start poking around and say, oh, this whole thing is a mess.
This is not going to work.
It's terrible.
This previous person wrote this was an idiot, and we've got to rewrite everything from scratch.
And, you know, you're right, like in the real world, like the Joel article is pretty good advice most of the time.
Obviously, there's exceptions to everything.
The example he used of Netscape was, of course, a very extreme example.
Netscape is a and was a tremendous code base, absolutely tremendous, doing so many things.
And
So obviously rewriting that was a pretty big ordeal.
Rewriting a pretty simple web service that doesn't do a whole lot on the web service end is not that hard.
And so, you know, I mean, I wrote Instapaper, the first version in like one night and, you know, built on it from there part time, but it was never, the website was never really a big time suck.
So rewriting that is very, very different from rewriting Netscape.
Two quick questions for you.
In a very qualitative and off-the-cuff way, it seems clear that the Instapaper website, you would say, is not very complex.
I'm thinking mostly about the text parser.
That strikes me as though it would be pretty complex, but it seems to me like you're waving it off as not that bad.
Is that fair to say?
The text parser really isn't that bad.
It's really not that complex.
You would be surprised how easy it is to do a pretty good job parsing out body text.
All right.
And then with that in mind, how much code smell would you say the code base had?
Like you said, you were half baked between a major rewrite.
And that obviously induces a little bit of stench, if you will.
But would you say that generally speaking, it was in pretty good shape aside from that?
the text parser was in bad shape, but everything else was pretty solid.
Uh, as far as I remember, honestly, I spent so little time working on the website.
I barely even remember the code, but, uh, but yeah, it was, we can tell one thing that one other direction I want to take this conversation briefly is, um, there was this great article.
I posted the link in the chat room a few lines ago, um, by James Haig.
And I'll put a link in the show notes.
And, um,
It's called Organizational Skills Beat Algorithmic Wizardry.
And he was first talking about all the crap about brain teaser tech interviews, which are terrible.
And then he has this one line that I love.
When it comes to writing code, the number one most important skill is how to keep a tangle of features from collapsing under the weight of its own complexity.
And he goes on to say, to a great extent, the act of coding is one of organization, refactoring, simplifying, figuring out how to remove extraneous manipulations here and there.
And that's a fantastic bit of wisdom there because so many times what makes me want to rewrite parts of my own code or modules or even entire apps, which is pretty rare, but what makes me want to rewrite stuff like that is...
tricks and optimizations and complexities that i've that i implemented forever ago and have since forgotten how they work and you know it's like like you're competing with like yourself from the future when you're writing code and uh and it's really really easy to you know oh you see something here that oh we could do this cool little thing if we just add this little bit of complexity here this little little weird hack here that it you know it's not pretty but it'll work and it'll achieve this cool thing
Well, then six months from now, you get to that, you see that, and you see, oh, I don't know how this works.
This thing's a mess.
We've got to rewrite the whole thing.
Casey's question from before about doing clever things in code or whatever, I think most programmers go through that phase of where you don't understand the clever thing, then you do understand the clever thing, then you start to invent your own clever things.
Yeah.
I try to get myself away from looking at the code at that level, because what I found is that the most important question I have to ask about the block or the method or whatever, the module or whatever class that I'm looking at or whatever, is what is this code supposed to do?
And that question should be phrased in some very clever or flowery way and put into a big giant poster shoved in front of you like the old IBM Think poster.
Because almost any time anyone is having a programming problem, aside from me having to teach them how debugging works, which is surprising that our programmers...
don't know and i don't know how they get their jobs done is that question what like so say you're in there and you got this clever bit that does some clever thing and it's got some loops and some lines and some variables you're like i don't know what the hell this thing is doing if you know what like the function it's in is doing like i know the purpose of this function either because it's documented or it's named well or both or you just know what it is because you wrote it recently and say the job of this function is it takes this input it gives you this output it's very you know i know what its job is i know where it fits into the whole block diagram of my thing and
You're like, well, of course I know that.
I always know when I'm looking at a couple lines of functions.
Of course, everyone knows what this function does.
But as you work on code for a long time, and especially if you're not constantly thinking about this, you will find yourself in the midst of a function, and someone will ask you, what is this function supposed to do?
it just, it does, it doesn't matter, it gets called, and then I'm in here, and I have to do this thing, like, well, wait, wait, wait, no, it matters, you know, don't say it doesn't matter, like, this just gets called when this happens, and eventually, you know, I'm very deep in the call stack here, but this thing gets called, and I'm like, what is this job, what is it supposed to be doing, what is the job of this function, it's like, well, usually, it just takes this, and puts it there, and processes, and turns it to that, and flips that on, but sometimes, if this thing is also on, and you're like, whoa, if you can't explain to me what this function does, and it's like,
it what it does is affected by all this global state and it's got lots of conditionals and it behaves in seven different ways and it's deeply intertwined with other things and it's it's all mixed in with the gui and it depends on the you know the state of the database or what orientation of the device is in or you know you're like this function is not well that you've lost sight of this in the beginning maybe it was a simple function but to make your application work you continue to screw up to the point where now i ask you what does this function do and you have to tell me a story that's three hours long
So that's your problem.
It's not the clever line where you're doing some sort of bit field masking and some sort of clever thing where you're, you know, sharing some variable and trying to reuse memory from a previous incarnation and do some caching.
That's not your problem.
Your problem is you don't know what the heck this frigging function does.
If you knew what it did...
Then by all means, do the most crazy, clever, awesome way that you could do it and then have an awesome unit test to make sure that that crazy, clever way works exactly the same as the boring way.
Then you're fine.
Then go nuts.
But that I find is the problem.
And that's just like it's functional.
Keep moving up.
What is this class supposed to do?
How?
How do these things interact with each other?
What's the relationship between these things in the program?
Is there supposed, you know, how many of them should there ever be?
What are the assertions you can make about them, about what states they should be?
If this one is in a state, then that one has to be in that state.
Like, those are the questions that you have to keep in your mind.
And the broader you can get that picture nailed down, the simpler it is.
I don't know if any of you've had this experience, maybe with a really simple application or something, where you have, or maybe an application that you've written like a hundred times.
Like, I bet people who are writing or teaching courses have this.
where you're like, I'm going to do like a canonical pet store example or something.
If you have a design that really is the correct design from the beginning, coding itself becomes mechanical, almost boring.
Because all you're doing is like, I know exactly what this function has to do.
What it has to do is not complicated.
I'm going to write it.
It's completely straightforward.
Maybe there's a couple of nuances and clever ways to do it, but who cares?
And it just falls out.
Your program just falls out of you.
Because if you have the design correct, implementation is trivial, you know, once you know any language, more or less, or any API.
That's rarely the case.
Usually you don't have the design done to that level, especially if you're doing some of the first time.
So you keep having to go back and revise and revise.
And if you don't constantly think about what is this thing supposed to do?
What does this class do?
What does this function do?
What does this method do?
What is its job?
And the answer isn't simple enough.
You just say, I know exactly what I have to do.
Then you have a problem.
Like that's why I think Marco's text parser is a reasonable thing to fiddle with because we know what this job does, right?
It takes a web page and it gives you back text.
It doesn't have all the crap all around it.
Like you can write a fancier explanation, but that's what it does.
It's simple input output operation.
What happens in there can be extremely complex and cool and interesting or whatever.
But, you know, in the grand scheme of things, that's a pretty simple function with very few side effects.
Exactly.
Yeah.
And you're right.
You know, like what I'm talking about.
You know, competing with yourself in the future and trying to understand what you wrote and, you know, buckling under complexity.
I am talking about, you know, I'm not talking about the, you know, how you, you know, how you shift the bits over here within this function that you're right, I don't care.
I am talking about the all like the crazy, you know, everything is at the global state, like things that are weirdly intertwined.
that have weird dependencies, that is like, you know, it works in your head while you're writing it because you know all that stuff.
It's in your memory.
But then, you know, in a month, you're going to forget how that works, and something's going to be breaking in a weird way, or you're going to have to add something to it, and that's going to break in a weird way, and you'll have no idea how this whole system works.
You just want to get it to work.
Like when, you know, when you get in that state, you're like, I just want to hit the button and see that thing appear.
Like, I just want it to work.
Right.
And so you're putting code, you're just putting code wherever you need to put code to make it work.
You, you land someplace, some variables instead, you put the code right there to say, set that variable right here without thinking, you know, like, is this the place where I should be doing this?
Because, you know,
Every program rolls into that crap because everyone reaches that threshold like, oh, I'm so close to this thing working.
If I just put a conditional there, the thing would work.
Is that the right place to put that conditional?
Why do you need to do that check?
No one wants to ask those questions.
They just want to click the button.
They want to see the thing appear.
And everybody does that to some degree.
And you multiply that by the number of programs and the complexity of the program.
And if you're not constantly...
revising your view of the world and constraining your code to say, is this the right place for this code?
Maybe there is no right place for this code, which reflects a problem that I designed that we didn't foresee.
So now it's time to go back to the giant block level and say, okay, maybe we need to redo these blocks.
And nobody wants to think about that.
You're like, but I'm so close.
Well, if I just put this conditional here, I'm so close.
It'll be fine.
Uh,
and i'll put a comment on the top of it it'll be fine you know it's that's that's why when other people when you look at you know hell is other people's code when you look at someone else's code you're like oh this needs to be rewritten it's because that person maybe didn't do such a good job of keeping their handle on things and you look at these functions you see this function does 10 different things and the name has very very tenuous connection with the content of the code that i see in there and it makes you want to rewrite it you know
You know, it's funny.
The way you're describing things, I unsurprisingly agree with everything you said.
It's almost like the five whys of developing code.
You know, why did I write this method?
Okay, why is this method part of this class?
Why is this class part of this namespace or part of this module and so on and so forth?
Yeah.
And you certainly make a very interesting point.
And I think that intrinsically, that's what developers tend to do.
But doing it more explicitly and deliberately certainly can't do anything but help.
Yeah, that was one of the many topics I had that I think I never got to in Hypercritical was like, what makes a good programmer?
And this article that Marco threw to Lincoln for is very similar to it.
My contention is, well, this gets more touchy-feely, but one of the things that there's lots of kinds of good programmers, right?
There are, you know, the classic good programmer like John Carmack or whatever is just like, you know,
A genius, really good at math, can do very clever algorithmic things.
Like, that's what we think of as like, oh, he's an amazing programmer, right?
And there's definitely a place to that.
But another kind of very good programmer is, again, I don't want to get a touchy feel of things, but like,
people are motivated to avoid things that make them uncomfortable.
And if disorder makes you uncomfortable, that will be a strong motivator for you to make things ordered in your life.
People who are...
uh, discomforted by, you know, things that are messy or disorder.
They usually like people say obsessive compulsive, but that's totally the wrong word for it.
It's, I don't know what the right word for it is, but you know, like they have websites where they show like a line of pencils or one pencils poking out the type of people who are annoyed by that pencil poking out and want to push it back down.
Everyone's annoyed by it by a little bit, but some people are made much more uncomfortable by that pencil poking out than other people are.
Uh,
The more you have that feeling, this kind of, you know, that like it makes you physically uncomfortable for your books on your bookshelves not to be aligned or for like things to be out of place.
And, you know, like I said, everyone has it in some degree, but some people have it to a higher, higher degree.
That is another kind of good programmer.
If you find someone who is really, really uncomfortable when things aren't indented properly.
You would think, like, oh, what makes me a good programmer is my technical skill, and I'm good with algorithms, and I know about user interface.
But really, an entire class of programmers, what makes them good programmers is their complete inability to tolerate things being out of order.
And that extending all is like, this class should not be doing this.
That's not the responsibility of this method to do this at all.
That state should not be touched by here.
There should be an abstraction between this and that.
You shouldn't reach into that to go that.
You know...
Every single one of those things, once you get some knowledge of programming, becomes like that pencil poking up, and you just cannot tolerate it.
All the way down to the simple things like inconsistent indenting.
Like, I know programmers who have no problem with inconsistent indenting.
Spaces, tabs, random curly brace styles.
Like, it's just a giant mess.
And that's not common.
I think programmers are more towards the can't stand it when their books aren't lined up on the shelf.
But that skill, like, it's not a skill, but, like, that sort of...
personality disorder i don't know mental impairment uh that you know being physically uncomfortable to a degree that's outside the realm of the norm by disorder makes you a better programmer of a particular kind uh and it's you know it's
usually not the people want to think that their superpower is derived from like their amazing strength or the super speed or the great intellect and don't want to think that the thing that makes them a good programmer is the thing that handicaps them in the rest of their regular life.
Like not, not to a debilitating degree, but that's, and again, obsessive compulsive is an entirely different thing.
I don't know what the thing is I'm talking about.
I know what the real term is, but, uh,
But that's like finding a silver lining in things that are mentally wrong with you.
And it's definitely the case with me.
I don't like disorder.
And I think it makes me a better programmer.
And I think every programmer has that to some degree.
Oh, definitely.
Yeah.
All right, well, before we continue, let's take a break to thank our first sponsor this week.
It's a new sponsor this week.
It is Warby Parker.
Warby Parker was founded with a rebellious spirit and a lofty objective to create boutique-quality, classically crafted eyewear at a revolutionary price point.
So this is what it is.
They sell glasses online, and they do it really, really well.
They believe glasses should not cost as much as an iPhone.
They have prescription glasses, including prescription lenses that start at just $95.
They also have a titanium collection starting at just $145.
All glasses include anti-reflective and anti-glare coatings at no additional cost.
They include a hard case, a cleaning cloth.
It's a really, really great product.
And they make home buying easy and risk-free.
They have this thing called the Home Try-On Program.
And what they do is you go to their site and you pick out up to five frames to try out.
And they have all these sorts of tools on their site.
You can do things like have an image of your face that it then maps the glasses onto your face.
You can preview it there.
Or...
So for the home try-on, for free, online, easy, risk-free, the home try-on, you pick five frames you want to try on in person, and they mail them to you.
You pick whatever you want.
If you want one of those, you can go buy it.
You send them right back, and then they send it to you with a prescription.
It's really, really great.
Now...
when they booked this spot um they they offered the three of us free glasses if we wanted to try it out so they they had us try out the home try on and and uh and you know so we could see how good of a product this was we could tell you about it and i don't wear glasses but my wife does and she's famous on the internet so uh i'm actually tiff is here so is so is hops but hops will be quiet i think um
Tiff is here, and she's going to actually be joining this and doing the rest of the sponsor read for me because she had a whole experience with him that was really quite good.
So here's Tiff.
Hi.
Hey, there we are.
How are you?
I'm good.
Hi, everyone.
Hello.
So we're all Warbees, huh?
Yeah, well, I am, and it sounds like you are, John.
I got the home try-ons, and I ordered my pair, but they haven't come yet.
Ah, okay.
So you're a little behind me.
Now, Tiff, have yours come in yet?
They have.
I got them yesterday.
Are they or are they not spectacular?
I am so impressed.
Like when I got that box, it is such high quality.
I'm just ridiculously impressed because I just recently bought new glasses maybe like a month ago for the first time in 15 years.
which is crazy.
And they were way expensive.
And when I finally got them, they ended up not fitting.
So having this experience was perfect for kind of fixing the bad purchase I had before, which ended up costing so much more money than the Warby Parkers did.
So what about you?
I got a pair of sunglasses, actually.
So I have terrible eyes, but my eyes are so bad that I actually have to wear contacts.
And I'm not going to get into the specifics about it, but I got a pair of non-prescription sunglasses, and I did the home try-on thing.
And one of the great things about the home try-on thing is you can say, as I did, well, you know what, self, let's reach a little and go out of our comfort zone and have Warby Parker send a pair of glasses that maybe you wouldn't have picked out if you just saw them on the rack.
Maybe something a little trendier than you're used to.
and and so i got these five uh set the five pairs of sunglasses and i tried them all on and i ended up actually choosing one that was a little bit out of my comfort zone and i and i got the final set uh about a week ago and i love them they're really well built really really nice and i have absolutely no complaints and granted i'm kind of compelled to say that but it really is genuinely true now john you said you have or have not gotten yours
i got my try on ones that's like the great thing about the trying box is like they you pick five glasses in that number right and i don't think like there's an option to pick fewer or anything and five is a good number because like casey said it does make you pick like because you can usually pick your top three and then after that you're like well i'm pretty sure i'm going to like one of these three that i picked right uh exactly but i have two more slots to fill and you pick like weirder you know weirder stuff i did the same thing uh and the other thing that impressed me is like on the website like if you don't want to do the home try on they have the thing where you can like upload a picture of yourself and try it on
And I'm like, okay, there's going to be something.
I'll upload a picture, and I'll paste a copy of the glasses over my face, and it'll look stupid, and I won't be able to tell if I'll like them.
But they do this thing.
I don't know how it works.
They must be doing face detection, figuring out where your pupils are, and then scaling it.
And they have a floating 3D version of the glasses frames, so you can rotate it and angle it so that it matches how your face is in the photo.
and it hides the little things that go over your ears so they don't overlap your face and everything.
It's really impressive.
I think I almost could have picked them out just from the website using the little 3D thing.
I would really love to know how that works.
I think it might be flash.
I don't know what technology they're using behind it, but I was really impressed by that.
But yeah, the fact that they're going to send you the glasses, you don't even have to bother with that if you don't want to.
You get the glasses, and yeah, just take out the box and sit in front of the mirror, put on one, put on another one.
And the great thing is I'm ordering sunglasses as well.
They gave me sunglass lenses in my sunglasses.
So it wasn't just like empty, you know, like sometimes at the eyeglass places, like it's just an empty frame with nothing in them or they're clear or whatever.
These had actual sunglass, you know, like not prescription, right?
Because these are just a triumph pair, but you could see how they would look on you as sunglasses, which was nice.
So I did pick the, you know, three pair that I thought I would like and the two exotic pair.
And I ended up picking one of the ones I thought I would like because I guess I'm a boring person.
But it was fun to try them out.
And I didn't end up with the ones that I thought would be like my clear number one.
Like, I don't need to do these five things.
I know I'm going to like this one.
I ended up picking like my third one.
See, I did a second round of home try-ons because I was so excited about the sunglasses.
I'm like, okay, I'm going to get a pair of regular glasses as well.
And I only picked three for my home try-on.
And so Warby Parker took it upon themselves to see the styles that I liked and that I picked.
And they filled in the rest of the other two in the box.
And when I got them, I ended up picking one of the pairs that the Warby Parker people had picked for me.
Which is pretty impressive.
So I thought that that was a really cool feature.
So you can pick fewer than five, but they'll fill in for you.
And they ended up making a better choice than even I did.
Who would pick fewer than five?
You have five slots.
You fill them all.
Well, this is my second round.
So I had already done five.
And then, so I was going to do, I'm like, ah, there's three more.
So on the second round, you picked one of the ones they picked you.
So you picked like altogether seven pairs of glasses and you didn't pick any, or no, eight pair of glasses.
And you didn't pick any of the eight, your own eight.
You picked one of the two that they gave you.
Correct.
Yep.
Wow.
That's pretty impressive.
Yeah.
so yeah they did a fantastic job and marco's hovering behind me so i think he wants to get back on the air but maybe shove him out of the way nobody likes him anyway oh poor marco no i'm just kidding oh thanks tiff i appreciate i appreciate the cameo all right thank you guys
She needs to get her own mic.
I know.
We should get her own mic.
I only have one mic.
I'll have to rig that up.
If only you had sold something recently so you can afford another.
Anyway, let's finish the spot.
So, a few more things I have to say.
So, yeah.
So, Warby Parker, they price their glasses affordably because they believe glasses are like a fashion accessory.
And...
If each pair doesn't cost you hundreds and hundreds of dollars, then you can afford to have more than one if you want to.
And they know that not everybody can afford glasses.
There's a whole lot of people in need who need glasses and who can't afford them.
They have a great program called Buy a Pair, Give a Pair, where for every pair of their glasses sold, they also donate a pair to people in need.
And that's really cool.
And it's just so...
ultimately they're a fantastic glasses company they make high quality products tiff was also i don't know i don't think she mentioned she's also uh very impressed by their quality relative to her like expensive professional ones from before um she said they're they're actually better in most ways than the one she got from her eye doctor um so very very happy with this company and um
So go to WarbyParker.com.
That's W-A-R-B-Y Parker.com.
And when you order the home try-ons, do it, you know, have fun.
When you order the final pair that you want to buy, use our coupon code ATP, and that'll get you free three-day shipping.
So again, use coupon code ATP when you make your final purchase, and it'll get you free three-day shipping.
So thanks a lot to Warby Parker.
Great glasses company.
Thanks for sponsoring the show.
Apologies that took forever, but they really are that good.
Oh, yeah, that's all right.
I figured it was fun.
I even ran the idea by them of having Tiff Cummings.
I'm like, look, and they have sunglasses and stuff, but I already have like three pairs of sunglasses.
Tiff was like, do you really need another one?
And she actually really needed the glasses because her existing ones that she'd just gotten were not fitting her at all.
And so I ran it by them, the idea of having her to be average.
And they're like, yeah, sure, that's great.
They're a fun company, so...
Anyway, thanks a lot to them.
I wanted to talk a little bit about an offshoot of the topic that we had right before the break about code, long-term health, and when things get too complex and they kind of buckle under their own weight.
So the Instapaper web app, as we discussed, was very simple and didn't have too many of those problems.
The iOS app, though, I'm afraid might.
Because on so many occasions, I mean, the Instapaper iOS app was in the App Store on day one.
So the first bits of code were written for iOS 2.
And most of the current code was written for iOS 3.
And I've matured it over time to add features here and there.
But the core code base, as it is today, there's still some view structure in there from iOS 3.
And there were some modern features that I never took advantage of, things like child view controllers, view controller containment, all that stuff that was introduced in, I think, 5.
I never even took advantage of that.
And back then, and the list of things that this applies to gets smaller every OS release, but over time, there's always been UI characteristics or effects that I've wanted to achieve.
And the API, for whatever reason, didn't expose them.
So you basically have to fake it or hack it somehow.
And over time, Instapaper built up quite a lot of those for various things.
And a lot of it was to its great advantage.
Things like the iBook style pagination.
There was an API for that, but the structure of it made it almost impossible to use in any reasonable way with a web view.
And of course, actually in iOS 7...
I think they even had it on one of the slides.
They've added pagination to WebViews.
It's just a flag you can set.
So one line of that will replace thousands of lines of Instapaper code.
But I'm trying... Over time, that really made Instapaper's iOS code base pretty big.
And there are a few hacks in there that are pretty uncomfortable.
And...
So now I'm working on this new big app, and it's actually going to be a Business Insider Reader.
That's the new app.
So I'm working on this new app, and what I'm trying to do in the UI is avoid those kind of hacks as much as I can.
If I want a certain really cool feature...
Rather than saying, oh, yeah, let me invest two weeks into making this tremendous pile of hacks that I'm going to hate in six months when I have to go back and change something and it's going to have all these weird side effects because I just have to do that one feature.
Rather than doing that, I'm trying, and this is actually pretty hard because I love doing those crazy hacks at the time, but I'm really trying to lean more towards just doing the 80% solution.
Doing whatever the UI affords me the ability to do easily, whatever the API allows in an easy way, just do that.
And don't get into this giant pile of hacks style of got to achieve this one crazy feature by doing this big pile of hacks.
I don't know.
What do you think?
I don't know if that's realistic.
Part of the reason I did it with Instaper was that A, it was cool, B, it got pressed, and C, it was a huge competitive advantage.
I don't know.
Maybe doing that sometimes is a good idea.
Yeah, I think you can't avoid it because it makes you stand out.
Like, you know, maybe there's a brief honeymoon period with iOS 7 where merely just doing the standard UI in iOS 7 is enough for, like, the day one launch.
But all those things that Instabaper did that made it different, you know, it's branding.
It's branding for your application.
And even if it's just like, boy, I wish that could slide out instead of just appearing.
And there's no way to do that.
Well, if I make it a totally different element or if I do something with custom core animation layers instead of just using the UIKit, you know,
navigation controller that does whatever it wants to do.
It'll just add that little extra little bit of difference there.
And those little things add up and make your application stand out as, oh, this is not just a bunch of standard controls and widgets interacting in exactly the same way as they would in some demo application.
it's got a little extra.
And you have to find the balance between a little extra or Letterpress, right?
So that's the continuum, right?
Full Brickter.
Right.
And clearly, you're not even approaching full Brickter, right?
But you're saying, well, maybe Instapaper, I saw what that was like when it lived over the course of three entire major releases of iOS, and it got a little creaky.
So maybe just try to start out with as few of those as you can, and maybe just use one.
There's just one...
effect or element or transition that I can't get that I'm going to do in a fancy way.
And it's something that people will see a lot and it will distinguish my application, but I'm going to hold off on being like, boy, I really wish that I could get that thing to do that.
But, oh, well, the thing that it does now is fine.
Or, you know, I really wish that was a little bit different, but I'll just use the regular collection class.
And even though the regular collection class doesn't display, you know, doesn't reshuffle or show the titles the way I want, or wouldn't it be great if the title could fly on, you know, all that stuff is going to annoy you about using Apple standard controls, especially the ones that are immature.
But if you just sort of grin and bear it and pick your battles and maybe pick one or two places in the first version where you do fancy stuff, and then just wait.
Because like you said, if you wait long enough, maybe it'll get built in.
And the people who waited until page turning was built in, maybe it had a competitive disadvantage.
But there are other instances where...
People didn't have a competitive disadvantage if they just waited for some sort of navigation controller feature to appear and you had hacked it in in version 2 and it appeared in version 3.
That was maybe not a worthwhile hack for something that most people didn't even know was a fancy behavior.
Well, and it's also about where you're making these fancy hacks.
So, for example, the iPad version of Instapaper had what basically was a collection view before there was a UI collection view.
Isn't that right?
It was called IP fake grid view.
Yeah, exactly.
And so what I'm driving at is you could do something fairly wild with UI collection view that isn't standard but is supported.
And that's a very fine line but a very important one.
So here it is.
You're taking UI collection view, which...
is a completely standard component, but you're doing a wild, I don't remember what they call it, like a layout or whatever.
You're doing a really wild custom layout in order to do something interesting.
And if you look at WWDC 2012, when they were talking about the collection view,
they did some unbelievably clever and trick things with the collection view with not a lot of code just by doing a custom layout.
And so maybe the right answer is you choose easy and intelligent places to make these custom wild things happen that are kind of supported.
Or maybe you just do some really wild stuff with core animation that isn't off the reservation, if you will, but it's different.
And by doing it in places that are sort of designed to have this flexibility, then maybe that'll prevent some of that creakiness in the future.
Yeah, like anything that supports views, like do something fancy in your view.
And that is probably more maintainable than saying the thing that controls these views, that's where I'm going to do the fancy stuff.
Yeah, exactly.
Because a lot of those hacks that I did over the years were things like transitions.
And to some extent, the fake grid view was actually... Honestly, the fake grid view was not that bad because it was self-contained.
As you're saying, John, it mimics a table view.
In fact, it actually was a table view subclass, which is its own breed of craziness.
And...
And it worked like a table view.
The data source, the delegate, all worked the exact same way.
So it was actually pretty black boxy.
So it wasn't really ever a problem.
And you didn't have to write UI collection view.
You didn't have to say, oh, this is a completely flexible collection view, and you can use it at any orientation with any number of rows and heights.
You can delegate the views to anything that wants to populate them.
You didn't have to make that.
You just had to make something that worked for Instapaper, which narrowly constrains what you have to do.
So you can make your grid view work.
You're not on the hook to make
A general purpose collection view that works in a million different contexts.
Right.
Exactly.
So, you know, that really wasn't one of the hacks.
The bigger hacks came from things like transitions.
And, like, especially more on the iPhone.
Like, on the iPad, I was doing a lot more of my own custom UI.
A very common practice, though, for programmers making iOS stuff is...
You want to generally stay within UIKit for a lot of uses, but then you hit some kind of weird limitation, some kind of edge case.
Probably it's an UI bar button item.
You hit some kind of edge case, and you're like, well, if I want this to do this thing, then I have to not even use UI toolbar.
Or I have to re-implement my own button.
Or something on a pretty large scale like that.
And if you say yes to even a couple of those things, it starts getting kind of insane.
And then if you start saying yes to things that involve multiple views and multiple controllers, like navigational structures or transitions, then it can start getting pretty hairy pretty quickly.
And every OS release that comes out, this becomes easier to do in a supported or at least a cleaner way.
iOS 7 supports all sorts of cool new stuff to make a lot of these hacks either unnecessary or substantially better and more maintainable.
But there's always going to be that bleeding edge of things that aren't supported.
And there's going to be...
I think it's a lot like when making Instapaper web app, Instapaper itself was a collection of very, very simple things with two hard things, the text parser and the Kindle format thing.
Those were two hard things, and I wrapped it with a bunch of easy things.
If the number of crazy things that you're doing is pretty small and everything else you're doing is pretty easy, then that is a competitive advantage and you can get away with it.
It's a matter of balancing those.
So in my new app, I have this one really crazy low-level feature that I really want to do.
But it's one of those things where it hits an edge of UIKit and I'm going to have to do a lot of work to make that work right.
And...
I'm weighing now, like, you know, should I even, should I maybe shift version one without it?
Because it's going to be so much work for one feature, but it's a pretty nice feature, you know?
So it's, it's, it's always this battle in my head of like, do I do this?
Do I not do this?
I don't know.
Yeah, it's a tough thing.
And especially early on, you know, you don't know when to say no yet a lot of the times.
And what I hear you saying earlier to turn this into the Joel Spolsky rerun show is, you know, the kind of the broken windows thing where if you allow yourself early on to go a little bit wild, then the next time you have the question, well, can I get a little bit wild with this?
Well, I already did it before.
Why not do it again?
Yeah.
And it's a slippery slope.
And so especially if you're early on in development, as I know you are, it's better in my opinion in most cases to try to stay as stock as possible and as simple as possible so that you don't allow yourself to go absolutely crazy from the foundation up.
Exactly.
All right.
Do we want to talk about something else that's awesome or do we want to wait another minute?
We do.
Let's do it now while there's a gap.
Excellent.
Our second awesome thing is yet another new sponsor.
I believe they're new to our show.
They're not new to my site or me as a person, but they're Igloo, also known as Igloo Software.
So Igloo is an intranet you'll actually like.
Now, I don't know of anybody who, at least anybody who's never seen Igloo before, I don't know of anybody who has any kind of positive association with the word intranet.
Generally, these are horrible internal corporate sites that you're forced to use at your job that are badly made, badly maintained, barely work, and require you to use IE6 or some craziness like that.
Nobody likes their intranet.
Unless they're Igloo customers, because Igloo actually makes an internet that you will like and that your workers will like.
You can share content quickly with all sorts of built-in apps.
They have blogs.
They have calendars, file sharing, forums.
They have Twitter-like microblogs, wikis, and everything can be social.
You can comment on any type of content.
You can at reply.
You can at mention your coworkers Twitter style.
You can follow content for updates.
You can tag things.
You can group things.
You can add on rooms.
You can have mini igloos for certain teams, certain divisions to work in.
The whole thing, all these features are very, very easy.
It's drag and drop.
It has responsive design.
It uses beautiful type kit fonts.
These people really know their stuff.
And it's like, you know, they're applying all the awesome, modern, progressive design and features that we get on the consumer web to the intranet world.
And that's extremely rare.
So they're doing it all for you.
Plus, Igloo has enterprise-grade security.
you can start using it right away.
It's free to use up to 10 people.
That's pretty cool.
If you have a staff of 10 people or less, it's totally free.
So go start using it today.
And when it grows, it's only $12 per person per month.
For a business, this is extremely affordable, way cheaper than developing your own, and it's just so much better.
It's worlds better than most people's intranets.
So go to igloosoftware.com slash ATP.com.
That's igloosoftware.com slash ATP.
Start building your igloo today.
Free to use up to 10 people.
Go for it.
Thanks a lot to igloo software.
They're a fantastic sponsor.
They sponsored lots of great podcasts.
They actually listen to the shows, which is pretty great.
And so they've done inside jokes on some of the shows.
In fact, let me go to this page.
And sure enough, it says, welcome ATP listeners up top.
And they're fans.
They're fans of our stuff.
They appreciate what we do.
So give them a shot.
igloosoftware.com slash ATP.
Thanks a lot to Igloo for making awesome intranets and sponsoring our show.
they should have a program where they like they send people to your office to convince the powers that be that they should get rid of because that like is often this i wish i could get rid of my intranet and replace it with igloo but i can't because i'm in a 2000 person company and i'm one employee right so it's like they should have a team that says look you need to change because i wish i wish we didn't have to use the things we're using oh they also have a sandwich video i mean come on how cool is that how can you go wrong with a sandwich video yeah so check them out they're awesome
If nothing else, go watch the sandwich video.
Intranets are so bad, usually.
Oh, man.
I mean, this is one of those problems.
It's like when we have hover advertising.
It's like everyone has seen terrible domain registries while everyone has seen terrible intranets.
Without revealing too much, only recently was I able to do something without using Java in my web browser on my intranet.
Remember Java in the browser?
Well, only recently was there a non-Java way to do it.
I'm like, yes.
Yes.
Small victories.
I recently wished for Java in the browser to work again.
For some reason, my machine doesn't work anymore.
I don't know if I uninstalled it from one of the security things recently or what.
But my livefish.com fish show downloader, like every time there's a fish tour, I buy it.
And then every night of the concert, I can go download the show from that night.
And they have a Java multi-file downloader thing.
and uh that that hasn't worked i've had to like hold that option and just click all the links one by one it's really a hard life like an animal yep exactly it's too bad you can't write like a program to automate that for you i thought about actually writing like or at least trying to like find a safari extension i'm sure i'm sure somebody not just safari extension just do the ghetto way where you copy and paste the source and
run it through a thing and make a bunch of... I could do that, but there might be some kind of weird session stuff.
I don't know.
Because it's all authenticated because it's... You just want to grab your cookie jar.
I've done it many times trying to grab WWDC things, grab Apple videos, and every time I do it, I'm like, you know, I should have a tool that does this, not just do it the crappy way again.
Just paste into BBEdit and repeatedly hold down insane chords that involve three or four modifiers at the same time that I have nonetheless memorized to...
grind the files up into bits and then throw in a double score data token and start writing ProCode on top of it and make a series of scripts to process it.
Actually, what this really should be is a bookmarklet because then you're running right in the context of the page.
It'd be really, really easy to make that.
Yeah, and you could write in JavaScript too.
All right, so what else do we want to talk about?
John, I know you had an interesting topic you wanted to bring up.
Yeah, this was LinkedIn Daring Fireball, I think, today.
I think that's where I got it from.
And the title of the story is Regular People Have No Idea How to Manage Photos on Their Phone, which is not really so much what I want to talk about.
I want to talk about the points that were gotten to at the end of this thing.
I don't even know who wrote it.
Bradley Chambers.
Yeah, okay, Bradley Chambers.
And he's talking about the problem with photo management on your phones.
People just buy phones, and they take pictures with them.
And, like, I mean, I think about this with all my relatives and friends.
non-technical friends who have phones like what do they think about you know they own a phone right and they're taking pictures with it and sometimes they're pictures that they care about like pictures of their kids or at their soccer game or their son scoring his first goal it's like something like they're important memories right did they ever think about like what happens if you drop your phone you know out your car window when you're driving or something like what happens if it you spill coffee on it
i think they don't think those photos are gone forever i think they just think like the photos are magically safe or maybe they don't i don't even know what regular people think about this but the bottom line is that apple doesn't take care of you or your data to the degree that i think it should and this was i think way back when i first started writing on like the fat bits blog on uh
Ars Technica years and years ago, one of the first things I wrote about was this problem that Apple has made these devices and encouraged everyone, even back in the digital hub days, to put your most precious non-living possessions on their hardware, and then they don't care what the hell happens to it after that.
Not that it's that bad, but...
I think there should be more concern about taking care of your stuff.
Because seriously, if your house burns down, your family and your pets all get out alive, the first thing that you care about other than hoping you had some kind of insurance is probably your family photos or your movies, because those things can't be replaced.
You can buy a new car, you can buy new furniture, you can build a new house as long as everyone is safe, but you can't recreate those photos.
We have all these devices to make these memories.
what's keeping them safe and unless you're a nerd and have like this crazy backup regime and know exactly where you know the problems are uh your stuff is completely vulnerable and we're so close now to having a technology where apple or any other company could take care of us and yet they don't and so the problem with the photos on your phone is like you start taking pictures and you keep going and once you get past like a thousand pictures or you know whatever the limit of what is it five gigabytes free they give you in iCloud yep uh
You know, if you drop, those photos may only be on your phone.
And if you drop your phone in the ocean, you lost all the photos that weren't, you know, in the last thousand that are in PhotoStream or something.
And that's if you, you know, I'm assuming you got through the process and got it set up in PhotoStream or whatever.
I don't know if people just assume that Apple's taking their pictures, but at this point...
Apple should be taking care of everything.
Apple's devices should be designed in such a way that if they're network-connected devices, that if you smash your computer with a hammer, and if your house burns down, and if you throw your iPhone in the ocean, your data should still be available.
And I'm not saying Apple needs to make that happen for free.
but they need to figure out some way to make it happen.
And back when I wrote about this on Fatbits ages ago, it was like I was saying that every single computer should come with at least two hard drives, but you shouldn't tell people that there's two in there and all your data should be redundant at all times, right?
Because hard drive failure was a big problem.
Online backups weren't tenable back then because people didn't have fast enough internet connections.
I was saying, look, at least make it so that if someone's hard drive dies, they don't lose all the picture of their kids.
Always have, like, double.
And who can afford to do that?
Apple is the only company because everyone else had razor-thin margins, but Apple maybe could, like...
Build it into the price of their devices or whatever.
And at the end of this article, I have a suggestion that's like, again, may not be economically feasible, but it would be nice.
And it's the same type of thing.
Make iCloud free.
This is reading from the article.
Make iCloud free for the total size of all active devices.
So if you have, like, a 16-gigabyte iPhone and a 32-gigabyte iPad, you should get 48 gigabytes of iCloud for backup.
So at the very least, every single byte of data that's on your phone and your iPad can be backed up.
And if you buy a new iPad and it's 32 gigabytes, boom, you get another 32 gigabytes of storage.
Like...
Make that the default.
If possible, make it free.
If you can't make it free, build it into the price of the device.
They're already like premium price devices.
If Apple would commit to this, they could be the vendor that gets the reputation like, oh, yeah, Apple costs more, but you won't have to worry about losing your data.
They protect it all for you.
They'll keep it backed up.
You don't have to worry about...
uh monthly fees and all these other things and worrying about your backup things you can buy an iphone take pictures with it chuck it into a fire go to the apple store get a new iphone whether you have to buy it or not don't worry your pictures will be there apple does not have that reputation nobody has that reputation now but the first person to get that reputation it will be worth a lot to people because i think most people are using these devices and using their computers and stuff and they're every all their digital memories are completely vulnerable and could be destroyed at any moment and they're just like crossing their fingers hoping it doesn't happen
You know, you're absolutely right.
And I had a friend call me maybe a month or two ago and he said, oh, you know, my wife, I think we're going to get a new iPhone.
And of course, this was just a month or so ago.
And I said, oh, my God, no.
Why?
You know, the 5S is coming out soon.
What are you thinking?
And so he said, well, she's out of space.
It's OK.
Well, try to take stuff off her phone then.
Well, she's got so many pictures on there.
Well, I mean, depending on how many pictures you're talking about, that may or may not be the problem.
Well, and she also – she takes a lot of video – oh.
Oh, boy.
Oh, goodness.
And so it took talking to both – well, they're both my friends, but talking to my friend, the husband who called me and his wife –
It took a while talking to them and saying, no, no, no, you've got to get this stuff off your phone because not only is it not secure on your phone, like John is saying, but it's taking up a crud load of space, especially 1080 video.
I mean, 30 seconds of video is like eight gazillion gigs.
And so you have to get that off your phone.
There's no need to buy a new phone just for that.
And then where are they going to put it?
The next question is going to be is going to say, okay, well, when I take it off my phone, where do I put it?
And it used to be at least you could assume they had a personal computer.
Put it onto your personal computer.
But that's just another place where it can die because you put it on your personal computer, and then that personal computer's hard drive is going to die in T minus two and a half years.
And what's going to happen is you know they're not doing backups, right?
And they're probably not even doing Time Machine because they didn't want to buy a second hard drive and hook it up.
Yep.
Like, there's no, you want them to be taken care of.
You want to be able to just tell them, like, you could, like, you know, what kind of computer should I buy?
Get a Mac, right?
You want to be able to say, what should I do about backups?
You want to be able to say something like, are you signed up for iCloud on all your devices?
Yes, then you're fine.
but you can't say that.
There's nothing you can say to them.
You have to have like a seven hour conversation about backup strategies.
It's going to make their eyes glaze over.
And even at the end of it, you're going to be going back home wondering, are they ever going to do any of the things I suggested?
Are they going to forget about it?
Is their time machine drive not going to be mounted and they're not going to notice for six months and they're going to lose all, you know,
We, as technical people trying to support less technical people, don't have any peace of mind about this.
And in reality, we're so close to having... We have basically the technology, and it's just an economic problem and a problem of will.
Google has come the closest with the Chromebook initiative.
That presentation they originally did on the Chromebook, despite the fact that just using a really expensive but nice-looking laptop that only has a web browser is not appealing yet to people and is kind of limiting, they had the right idea with...
Take your Chromebook, run it over the Steamroller.
Don't worry about it.
Get a new Chromebook, type in your stuff.
Everything is back.
You didn't lose a thing.
As long as we had time to upload it, you're fine, right?
Well, but hold on, though.
That's a big problem.
Time to upload.
Well, I know.
Think about that.
That's one of the big problems holding this up right now.
It isn't just about there's no web services that are highly integrated that are doing all this for you for low cost or for free.
That isn't the main problem.
The main problem is think about...
How many people own iPhones or devices like iPhones who are in a situation or have a home connection or have data caps in which uploading things to cloud backup, uploading photos and videos to cloud backup on a regular basis is impractical?
But you don't have to always upload it.
Think about when we did the transporter spot.
We have the technology to do most of those things.
If you could just say, buy a bunch of these things and stick them around your house like potted plants and put one in your office and give one to your friend.
If it was just easy enough for you to do...
We're close.
We're really, really close for it to being economically feasible for someone who can afford an iPhone to never have an excuse to lose their data.
And even if it's not cloud, cloud would be the third tier.
And the second tier is have a computer system that's redundant.
And the other tier is have a bunch of little network-attached wireless storage nodes around your house.
You know, it's like a caching hierarchy where, like, on the device is good, and then when you get back home to your, you know, 802.11 AC wireless that's super-duper fast that everyone's going to have in five years or whatever it's going to take for that to start to penetrate, right?
That'll go to your little, like, transporter-type devices or your time caps or whatever.
And then the next thing is, like, it'll be uploading to iCloud when you're asleep, and if you have your slow connection, it will, like, you know...
we're almost there.
It's just a matter of like working out a system and then some company committing to it and saying, you know what, we're going to be responsible for protecting your data, not saying things like when you're coming to the genius bar, make sure you have a backup and knowing everyone's going to look at that and go, yeah, whatever.
And then be pissed when they're all the data is gone, when their computer gets repaired.
Like I'm sure it happens all the time to them.
And I like, it's in Apple's interest as like the premium vendor and the guy who makes the hardware and software.
And now they have web services to, to get there before someone else does and figure this thing out.
Well, and it's more than that too, though, isn't it?
Because say you're on a vacation and like say when Marco and Tiff and Aaron and I were in Germany, what if I took a whole bunch of pictures on my iPhone because I'm not a photographer and I don't have a fancy pants camera.
I take a whole bunch of pictures on my iPhone, which at this point are irreplaceable.
I may or may not have had access to any network connection, but particularly Wi-Fi.
And all of a sudden now all those pictures are gone because Marco ran over my phone with his M5.
But you have access to each other.
So like you should be able to, if a family, like this gets into the whole other thing about families.
If you guys all go on a trip together, you should be able to enter into an arrangement whereby all of your own things are transferred among yourself in the little circle of like the ad hoc network that is your people there.
So if you drop your phone, oh, don't worry, I've got all your pictures.
They got pulled down onto my MacBook Air or some percentage of them.
The technology is there for all these things to work.
It's just a question of working out the interface and the decision to do it.
It shouldn't be like that your device is Little Island and that you guys could go on a week-long vacation with no internet access, and as soon as you drop your phone, all those pictures are gone.
We should be able to stop that from happening in some way.
Yeah, I don't know.
I mean, you know, there's always this balance between ease of use for regular people and getting around all these edge cases.
And so, like, you know, the ways to get around all these edge cases usually involve local hardware, you know, where you have either like a time machine disk or a time capsule.
And by the way, why don't iPhones back up to time capsules?
But, okay, that's a separate question.
Yeah.
So you have things like that to avoid the whole bandwidth and data cap issue.
But those things are all things that regular people are often going to either not think they need and therefore not buy because it's expensive, or they're not going to do it right in the way that I'm sure everyone listening to this show has at some point had a friend or relative...
say, oh, well, I lost files, my hard drive drive, can you help me get them back?
And you say, oh, okay, yeah, did you have a backup?
And they say, yes.
And you go over to their house, and they're here.
All my files were on my backup drive.
You get it?
Yeah?
Sinking in?
You know these people?
Where they buy an external hard drive because their laptop drive is too small.
So they buy an external hard drive and that just becomes the place where they put all their files.
And they think it's a backup drive because it's an external hard drive.
And they call it a backup and they think of it as a backup but it's just one hard drive with their files on it.
I tuned out as soon as you said you had friends that had backups that are normal people.
Yeah, because no one ever has backups.
People call external drives backup drives.
Well, now I'm with you, but I was still trying to process the thought of a regular person, not a nerd, saying, yes, I do have a backup.
Anyway, so you have those people, or you have the people who...
If you try to make it work for all these edge cases, because the other problem is that these modern devices, the cameras keep getting better.
So you have these devices that you mentioned with the video.
You can't just tell a regular person, oh, well, all your photos will be backed up in low resolution for a little while, but your videos mostly won't be because they're 400 megs each, and that's impractical.
So you get around that stuff by having local stuff that avoids the network.
Once you involve the network, though, it can be easy and automatic for everyone.
So you either have...
Local stuff that is expensive and can be easily misconfigured or screwed up that can back up everything.
Or internet-based stuff that can be automatic and foolproof, but you have that problem of bandwidth and data caps and therefore usually can't back up everything.
Like I said, we're so close.
It's kind of like when we just barely got the technology to do digital distribution of audio because MP3 came out, but we still couldn't really do movies or TV, right?
And even today, like, audio is like, no problem.
We throw around songs.
They're tiny files.
They, you know, they're easy to go.
You know, the bandwidth and the memory capacity and computing, everything totally went past audio.
But for video, we're like, you can buy TV shows, but we can't really store them all.
And...
We can't really have a big hard drive, so some of them will stream, and we can kind of stream 1080p, but it doesn't look like we're just on the edge of being able to handle video.
And for things like video you record yourself in 1080p, that's probably outside the realm of what we can handle.
But we're right on the cusp, and I think it's okay to start with, like, we can only do songs, but only crazy people are downloading videos on the internet, like back in the Napster days, right?
Just doing it for songs...
is a big win, and it lets you sort of work out the kinks of how things go so that eventually, 10, 15 years later, when feature-length movies start to become possible, TV is like, oh, well, we kind of already worked this stuff out with the iTunes Music Store, and it's like a natural extrapolation to do movies.
For backups, we should have been traveling the same road, but haven't been.
It needs to be ambient, like Wi-Fi.
Wi-Fi, wireless networking was a technology that nobody could use, and now everybody can use it.
And how do we go from something that nobody uses to something that's like, oh, just every, you know, coffee shops have Wi-Fi.
Everywhere has Wi-Fi.
How do you get on the Wi-Fi?
You know, if you told somebody back in the early days of computer networking, the regular people were going to be able to walk into a building and get on the network.
They're like, you can't get on the network.
They need a network administrator to help them.
And they're going to configure the network stack on their operating system.
No, they're not going to do that.
Yeah.
You work it out until you get the system that people can use, you know.
And there's an investment in deep technology that Apple is not really doing, Google is kind of doing, that makes that possible.
Because it's not like one company came up with this wireless network and it spread everywhere.
Like, Wi-Fi and those Wi-Fi standards, that is deep, deep technology that you can't just, like...
Well, we sort of came up with something in like six months, and I think this is how we're going to do wireless networking.
You have to have really smart people think about it for a long time and go through a standards process and get hardware vendors on board and revise, revise, revise over and over again.
And then finally, eventually, 10, 15, 20 years later, you reach the promised land.
You can't just say, well, we're going to do backups, and we'll have some device out there, and it will copy stuff, and it will make this...
photo stream service and we'll have iPhoto upload to it.
So we'll have the iPhoto team work on it.
Like you've got to think of it like as the overall problem and say, we need some side of, you know, tiered storage architecture that works on any device.
And we're going to take the next five years to develop this architecture.
We're going to start small and we're going to, you know, it's going to be like peer to peer between our devices.
And it's also going to be, you know, pushing things up to the highest level they can get and, and encrypted and shared.
And like, you know, maybe we'll have a new file system of some kind and,
mixed in there so you could send efficient block diffs between i don't want to talk about it but like that kind of that kind of like deep core technology you got to work on that for years before you get any bang out of it if you don't work on it all you're going to have is these half-assed solutions that like marco said you end up having edge cases that you think no one's going to be able to handle like you can't just sit around waiting for magically for us to have gigabit upload bandwidth from everywhere into a magic cloud that you know like i guess maybe that will come eventually but
We're close enough now.
Photos, I think, is the thing.
You could handle people's photos.
Maybe you can't handle their videos.
Maybe their videos are still screwed on because they're just too darn big and the ability to record video outpaced our other stuff.
But I think Apple and everybody else are dropping the ball on this, and we really need a solution.
With the hardware that's here, this stuff could work.
We just don't have the software to do it, and that's a failure of the software guys, I think.
Well, I also wonder if we don't have the impetus to do it.
What I mean by that is I almost feel like we need computer hardware, specifically mass storage, to be less reliable in order to force regular people to care enough to demand these things.
Yeah, that's work for Google because they had so many servers that you just have to build expecting them to fail, and that's not the case with individual hardware.
Yeah.
Right.
And it's like the argument that the only way we'll get more efficient cars is to make gas four times more expensive than it is.
You know, it's a similar thing where if hard drives failed constantly, then people would know I'm going to need four copies of these pictures because I know one or two of the four are going to die in the next six months.
Yeah, we need personal chaos monkeys.
You know about the chaos monkey?
Yeah, Netflix, right?
Yeah.
Love that.
Every company should have a chaos monkey.
And I'm not sure if it's like Netflix still does it or it was a one-time thing or it was a PR stunt or they really have a thing like that.
But for people who don't know, the chaos monkey is...
within Netflix, the idea that they have something intentionally going around screwing up their systems to test that their redundancies work.
So they don't wait for things to fail.
They have an active program or series of programs that go around and break stuff in their own data centers to prove to themselves that
okay, if this type of machine goes down, we're okay.
If three of these go down, we're okay.
If this switch dies, we're okay.
And they're doing it to themselves intentionally all the time to sort of, you know, build up their immune system.
So if you had like a person who came into your house at night and smashed one of your devices or like randomly erased one of your hard drives, like, and the guy came like once every two months, you would very quickly figure out some way, either you would figure out some way to develop a system or you would demand from all your vendors, look, Apple, you know,
The chaos monkeys come into my house every night and destroying things.
You guys got to come up with a better system to protect my data because I'm losing all the pictures of my baby.
And that's where it's got to come from.
It's got to come from the consumers.
Well, I mean, that's what leadership is, I guess.
It shouldn't have to come from the consumers.
Apple should be leading here.
They're in a position to do this type of thing.
They should be thinking about it and doing it instead of being the putzes that they are that still make it impossible for one family to share a single iPhoto library like sane people want to do.
All right.
But they're not.
And yeah, so if it came from the other direction, that would really help as well.
But as things stand, if your hard drive dies every three years, human memory is such that you'll be like, no, I think I might have had those on opticals somewhere.
Or you just like give up and like, well, I think I posted most of those to Facebook, you know, and I'll never look at them again.
I don't know what's going to happen when all these people are like 80 years old, you know.
50 years from now, and they want to see the picture of when their kid was one-year-old, will they have them anymore?
Because they won't have the physical photo albums that our parents did, right?
Like, if we go to our parents' house, we can look at those books.
Actually, that's a really good point, though.
You're right.
I've heard from a lot of people who have lost phones or whatever.
They say, oh, well, we still have the ones we posted to Facebook.
That's a very, very common reaction and kind of mental insurance policy for a lot of people.
I wonder, you know, what happens, what happens like 20 years from now when Facebook shuts down?
Yeah.
Or like you have them on Facebook there, but they're terrible quality because they're like recompressed.
Oh yeah.
Very small.
And good luck finding them 30 years from now.
If you go back 30 years in time, it's not, you know, I think I tweeted that 30 years ago.
Yeah, right.
Well, the thing that stuns me is I'll have people, friends, relatives, acquaintances that will have catastrophic data loss, bad, bad data loss.
And you know what they do differently after that happens?
not a thing because what can they do what like what is their recourse like they're already buying like the best quote unquote they're buying apple stuff and they were using them in like the way they see them used in apple commercials and they still lost all their data so like they don't have the tools to fix that they shouldn't have to fix it you know that's what i'm saying like apple should be providing a way to make it as easy for them to have their data protected as it is for them to take their phone and do a coffee shop and get on the network
And I completely agree.
But I guess what I'm driving at is it seems like the moment data loss happens, your average consumer says, yeah, I guess that's gone now.
And that's that.
And there's no more discussion.
And it's like a natural disaster.
It's like, well, what can you do?
There's an earthquake.
Like, what can you do to run earthquakes?
You can't do this to regular people.
Technology is basically just like it's like the weather.
Well, you know, you can complain about it.
But at a certain point, like, well, obviously, this is unchangeable law of the universe that we're going to lose data.
Right.
Well, because most people who are adults today have grown up having all sorts of computer failures.
And, you know, most people don't use Macs.
And even people who do use Macs still have failures.
They just have, you know, maybe fewer of them are different ones.
But, you know, so most people have grown up using some kind of crappy computers with crappy software and, you know, where things were very constrained and expensive and unreliable.
And so...
Almost everyone who's an adult today has at some point had a computer that had to be wiped or that had a hard drive fail or something.
Somehow the computer was forced to be wiped and started over.
So to them, it's like they're in an abusive relationship with technology where they're just like, well, yeah, okay.
I guess that's just what happens with computers.
Too bad.
They don't know that it doesn't have to be that way.
Yeah, and I don't quite understand why, again, Apple, of all companies, hasn't jumped on this more.
Because they're all about, like, figuring out what real people's problems are.
That's why iOS and the iPad and stuff are so successful, because they had the vision of, like, people hate that crap about installing and uninstalling stuff.
And people hate trying to find software by doing a Google search and stuff.
We just had one store, and you tap a button, and the little icon appears.
And if you don't like it, you put the little X, and it goes away.
That's what people want.
And they did that.
They did it that great.
Everything about the iPad is so much better than the Mac in terms of throwing it in front of someone who is not a technical person saying, here, go nuts.
They can browse the web.
They can send email.
They can play games.
It's fun.
It's exciting.
They even lower the price.
It's cheaper than a Mac.
uh but this whole thing about keeping your data they still have all those commercials about oh look how beautiful it is when you take picture of your children and all these memories and you're having these happy times and laughing with your friends and making videos and all that stuff is going to be gone and you know start the clock because they're not doing anything to help you like protect it long term and maybe they think you're not supposed to protect it maybe you're just supposed to like enjoy it in the moment look at it and then let it disappear when you buy a new phone or you drop it in the ocean but that's they don't mention that in the commercial like they don't show that experience of like a
Remember that time we went to Paris?
Let's look at those pictures.
Oh, that was three phones ago.
I don't have those anymore.
We're running long.
Should we be good?
One more thing.
Is this really the kind of thing you'd think Apple would tackle?
I mean, this is like a big web service, big data backend.
Maybe that's why they haven't been good at it.
But I'm saying they're good at looking beyond the way things are done now to do, like Casey said, the five whys and get all the way down to the root, root problem.
People don't want to deal with any of this stuff.
Let's just solve their actual problem.
Their actual problem is I want to browse the web.
I want to send email.
And the iPad can let them do that without all sorts of complications and concepts that existed on the Mac that complicated that.
They're good at cutting through that stuff.
And so this is another case where there's, you know, well, backup is difficult and we have all these problems and how are we going to pay for this and where are we going to store it?
And maybe people don't have upload bandwidth and they have caps or whatever.
And, you know, like a time machine was a good step in that direction, but that's like...
That's a last century step, even though Time Machine wasn't the last century.
Apple is the kind of company who has the margins and the control over hardware and software, and also usually the vision to not worry about the technical details and just figure out what people want and make it happen.
That's why I think.
Yeah, but you're forgetting that so much of this hypothetically relies on really strong internet services, which we've all discussed ad nauseum.
That is not Apple's thing.
I know, but they haven't really even attempted it.
It also depends on deep technology and core standards and building infrastructure, which Apple's also not good at, especially when it comes to data storage.
So yes, this is in many of Apple's blind spots.
But I feel like I would have rather seen them...
Three years ago, come out with like Apple's new cloud file system.
It's everywhere at once.
And it would be a terrible product and not work.
But at least they had the right idea of like, we are going to completely abstract storage on all levels and do this crazy multi hierarchy thing and understand it as a core OS feature, not as like
a GUI feature of like a major version of iOS or OS 10.
It has to be like a feature, like the kernel or the file system.
It has to be at that level where, or at the web service level.
And they haven't even attempted that.
They haven't made any run at it.
Like photo stream is the closest they've come.
And that's like one little appendage hanging off a couple of applications on iOS and the Mac.
that's kind of weird and you could only recently delete things from it and no one understands how it works and it's not clear to people what the mental model is and it sure as hell doesn't apply to anything except for the photos that you manage from those particular applications like they're not they're not even going for the big solution and failing they're just maybe they maybe they know their limitations and they're just like we have to nibble about at this from the edges i don't know
I still don't know what PhotoStream backs up and what it doesn't back up.
Just assume it backs up nothing.
Right.
That's what technical people do.
I remember for six months, PhotoStream just showed me black rectangles in iPhoto.
Like, they were my photos because they were the right number, and I could tell from the orientations that they should have been my photos, but they were just completely black.
I'm like, well, I'm not going to trust that.
And then, like, you know, do you have the full resolution copies in PhotoStream, or does it have smaller resolutions?
I don't even want to think about it.
It's so confusing.
All right.
Let's wrap it up.
Now I think we're done.
Thanks a lot to our two sponsors this week, Warby Parker and Igloo Software, and we'll see you next week.
Now the show is over.
They didn't even mean to begin.
Cause it was accidental.
Oh, it was accidental.
John didn't do any research.
Marco and Casey wouldn't let him.
Cause it was accidental.
Oh, 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.
Accidental.
They did it.
Did you see this link someone posted?
I'll put it again in the... I have so many Mavericks things to talk about, but I'll just wait.
I'll just write it.
ivericks what is this let's scroll down what do you think so for people who are actually listening to this it's the uh stew does design which looks like studios design but it's not it's stew does design os 10 ivericks concept and it's basically a uh os ios 7 style redesign of mac os 10 yeah this whole site should have a big banner on top that says not this year
I actually don't think it's terrible, although I feel like the menu bar is totally out of place given the rest of the screen.
Oh, Ivorix.
Thank you, Sam the Geek.
That makes more sense for Johnny Ive.
There are parts about this I don't like, but overall I think it looks fine.
Do you think Apple will go in an iOS 7-like direction?
I don't see why the Mac has to look anything like iOS.
I can see it being redesigned, but I don't see any reason that it has to look anything like iOS.
Did...
Did the Mac's buttons ever look like iOS's buttons?
Maybe they came close at a certain point, but they weren't recessed like the iOS 6 buttons were with a little shadow on top of them.
They were on top.
I would say that OS X never really looked that much like iOS and vice versa.
Yeah.
I mean, you can redesign something.
You don't have to redesign it to look exactly like your other thing.
It can just be a fresh redesign.
But familiarity is never a bad thing, especially in UI design.
Yeah, that's true.
I have a whole section in my review about that topic.
But you don't need – John Gruber wrote a nice big thing about this right before the iOS 7 unveiling of the keynote.
It was like the night before or two days before or something like that about how people are trained on how to use interfaces these days, and you don't really need something to look –
exactly like a button for people to figure out that it's a button, stuff like that.
And something like this, you don't need OS X to have the same visual style as iOS for people to know how to use it.
Just give it similar behaviors like, oh, there are things you can click on that behave like buttons.
There are labels.
There are lists and structures and other ways to present data and to deal with it.
you don't need it to look exactly the same.
It can have its own totally different visual theme and people will figure it out.
I mean, look at how many people use Hot Dog Stand and Windows 3.1 and still figure out how to use it.
That said, though, a straight-up, exactly iOS 7-style redesign of the OS X GUI, I think it would work fine.
Because the iOS 7-style, there's not much to it.
Look at the notification thing, where you're showing a notification dialog.
You're like, yep, it's a notification dialog.
It's got buttons.
The iOS 7 conceit is that the buttons go edge-to-edge instead of being inset.
uh but you can still tell their buttons like it's fine you know the the the window controls being the little outline circles instead of the other things i mean they're a little close together but you know like there's details but nobody you look at it anyway yeah it doesn't look it doesn't look crazy it looks reasonable but i i'm not i'm not saying oh i don't look at it and say oh man i can't wait for the mac look at that i would like any kind of cool looking mac redesign but you know it doesn't have to be this all right so even though it's only been two days how's the review
I wish the OS would work better so that I could review it.
That is the review.
That's the review.
I don't know what their schedule is like because they're putting out builds and things don't work.
How can I write about them if they don't work?
I'm trying to use the iOS beta 5.
Every time you touch something, any touch interaction running one of your own apps, it logs a debug message to the console that they left turned on.
Yeah, I saw a chalk solution.
Just increase the program counter.
Yeah, the solution is to patch over fprintf.
Obviously, they're shipping these betas out on some kind of minimal testing or at least less testing schedule.
If they ship that out, leaving this extremely common debug print statement in there that's annoying every single iOS developer this week, obviously, what else are they leaving in there in these beta builds?
i think i told the story in hypercritical once but i had a cisco vpn client downloaded from the official cisco website not a beta not anything like that uh on os 10 that would log like like a base 64 dump of the data it sends and receives all the data it sends and receives and so like i installed it and i'm on the vpn i'm doing things and i hear my hard drive going tick tick tick tick tick and i look in the console log i'm like
This was before tons of memory and before syslog had changed to this database format.
Anyway, and there it was.
There was all the data.
So it's like, well, when I'm connected to the VPN, it is going to just abuse my hard drive a tick at a time by writing out little bits of data that eventually gets flushed to disk.
yeah that's things people will ship who knows but but you know but like for for mavericks like i wanted to write about ibooks yesterday and today but it is not in a state where i can use it to do things to write about like today i spent a long time trying to purchase a book uh it's just buggy like this is the very first you know like i and how can i so now i'm in this annoying uncomfortable state where i'm and i'm terrified to make screenshots of anything because like
Should I go nuts making screenshots of everything now and then have to redo them all?
Or should I just wait until the very last minute and just do them in a scramble?
I hate this time.
I'm going to say I'm like 70% done with the writing, which is not 70% done with the production of this thing.
Naturally.
Can we make the opening soundbite?
I spent a lot of time trying to buy a book.
Yeah.
Just that.
It was not good.
Now, I have a very important question.
Was Tiff listening live in another room and came running in at the 11th hour, or was she actually hearing only one side of the conversation in the office for the hour we spent before the Warby Parker spot?
Neither of those.
When I knew the spot was coming up, I sent her an iMessage saying, come in now.
I told her to expect it about 25 minutes in, and it was about 30 minutes in, so that was pretty good.
I thought it was a lot more than that.
No, no.
It was like 30, 35, something like that.
So I sent her a message saying, hey, come on in now.
And a minute later, she was here.
So she watched me listen to John for about 45 seconds.
And then I passed it over to her.
It was pretty easy.
Then that was all she could take.
Not true.
Oh man, I've seen not a lot of feedback about the last episode since it's only been out for a few hours, but everyone has said, oh my god, Syracuse rant, I want it in my ears immediately.
See, that was like, I had mellowed.
That was not ranty, that was like... It wasn't?
It was moderate rant.
Yeah, it was like, you know, wistfully looking back on a bad experience.
Wow.
What's ranty like?
Ranty is when I talk about TiVo or file systems, probably.
That was a good Edge Cases show.
They did a whole show on file systems.
I haven't heard that yet.
Everyone was mentioning you and linking to it and stuff.
Yeah, it covered a lot of the same ground, but then went forward more past what I had talked about when I talked about Hypercritical, because more things have transpired, although not much in the Apple world.
All right, what else is going on?
Anything?
I don't know.
We recorded the last episode like two days ago, so nothing's different now.
I know.
Yeah, that's true.
Except somebody's going on vacation all next week.
I don't know who.
Yeah, John.
No, not me.
I'm all done.
Back to the grind.
Yeah, so Erin doesn't know where we're going tomorrow.
She knows we're going, but she doesn't know where.
We'll see how this works out.
It should be fun, but we'll see how this works out.
I'm a little scared.
She's extremely easygoing, so it should be fine, but I'm a little scared.
I'm going to get you guys back by not being here the entire fall.
What are you going to be doing?
What are you going to be doing?
You have no job.
You have nothing to do.
Almost every weekend in September or October, I'm doing something.
It's crazy.
Those months are insanely booked for me.
We record on Wednesdays.
It's fine.
I see no problem.
I think I'm only going to miss one Wednesday.
It's going to be the easiest vacation schedule for this show ever.
Although it might be a problem if I'm trying to actually shit my app around that time, which I'm almost definitely not going to.
Yeah.
So you don't think you're going to be there on day one?
I would give that like a 20% chance at this point, maybe even less.
The more I do with it, the more I want to do with it.
And I know I'm going to obviously have that problem of taking forever and never shipping version one.
But the bigger thing is I'm way behind on even getting the basics done.
And some of it's going faster than I expected.
Some of it's going slower than I expected.
And so I don't...
I'm still too far out to say, you know, whether I will be able to get out there for day one, like whether it's even going to be possible.
But I'm guessing looking at it now, it's not because, you know, what if what if day one is like late September?
that's what, six weeks away?
It's pretty close.
I'm still working on the naming issue.
I still don't have the company form because I'd like to give the company the same name as the product.
Therefore, I don't have the stupid DUNS number yet, so I can't get the Apple developer account yet, so I can't get all my final certificates done.
It makes it hard to test things like push notifications.
All these things that...
no matter how much I work my butt off right now, these things all take blocks of time that have to be done in a certain sequence.
And so the reality of me getting this out there in any kind of shippable 1.0 state within six weeks is pretty much zero.
Plus, you should probably submit it like two weeks before the actual release date of the OS, and that's assuming you get approved in the first try.
Yeah, more than two weeks, you're assuming it's going to be bounced back at least once.
exactly yeah i mean any new app you got to assume you're going to be rejected so uh you know the chances of me getting it out there for ios 7's release are pretty much nil i mean the app would have to be almost done right now for that you know like you'd have to have it pretty much ready to go ready to be in the app store on day one it would you'd have to have all the code effectively done now it would have to be in a very advanced beta
And if, if it's not in a very advanced beta today, you're probably not getting it out there for day one.
Yeah, that's fair.
So what are you going to put it out?
Like March of next year then?
I'm shooting for fall as well, but depending on whose definition of fall.
I want to get it out there for this fall.
Again, I don't know how realistic it'll be to hit any particular month.
I'm thinking October, November is probably more reasonable.
Got to have it there for the holidays.
People get their new iPhones and iPads for Christmas.
They can install your app.
Yeah, but you have a busy October for sure because I'm involved with half of your October.
So between September and October, I'm going to two conferences that are very far away each.
I'm going to an anniversary trip because it's our fifth anniversary this year.
And I'm going to our driving trip, which is going to be awesome.
That's like four major trips within two months.
Where are you going for your anniversary thing?
Are you willing to share?
Upstate, a little resort that we like.
Nice.
Yeah, we went there on our wedding night.
It's cute.
I'm cramming all this stuff in to that time, plus maintaining the blog, the show, and the general baseline workload that I have to do every week.
It's going to be a rough fall, I think.
Or at least a rough early fall.
By November or so, I should have an easier schedule, right in time for the holidays and all the family travel that goes along with that.
I can help you out by just telling you, Marco, that actually you only have five vacation days left this year, so you'll have to adjust your plans to account for that.
Imagine if Marco had a real J-O-B job.
Oh, man.
I did a couple of times.
Oh, yeah, yeah.
Now everyone's confused about what the driving thing is.
I feel like we should just let them be confused.
Yeah, let them be confused.
We'll take pictures and post them somewhere.
It involves driving.
There's your hint.
Yeah, that's your big hint.
And John refused to come.
I didn't really refuse.
I chose not to.
Don't even get me started about John.
There are items on either side of these things, and I weigh the pros and cons, and I make a decision.
There's not a refusal to do an obviously good thing, nor is it a rejection of an obviously bad thing.
so angry at you John and I'm only slightly kidding guess how many vacation days I have left this year oh after all I have booked I only have one how many do you have
Not counting booked, but, like, actually my wife just booked, I think, the rest of my vacation days today.
I think she just bought plane tickets.
After she booked it, she said, okay, how many vacation days do you have left?
That really should have gone in the other order.
Wow.
Nice.
I believe I'm more or less booked up.
I think I have to give myself, like, two, keep two in my back pocket for, like, one day this winter I'll be sick, and one day I may be panicked and have to take a day off work to do, like, emergency Mac OS X review scrambling.
Hopefully I won't have to use that one.
Nice.
Well, I'm still mad at you either way.
But then kids get sick and then you have to stay home with the kids and sometimes you can be working from home and sometimes you can't depending on how sick the kid is and taking to the doctor and yeah.
Limited vacation days.
It's like RTS, where you have limited resources.
You can't just mine for more, though.
No, you cannot just mine for it.
We need more ore!
Yeah, we should do titles before I fall asleep.
I like three phones ago.
That nicely encapsulates some of the themes that we talked about.
It's kind of interesting.
That might be the nicest opinion you've ever had about a title.
Yeah, I mean, that's what I'm always looking for in a title, is something that I can look at and remind me of what we... Like, the Thrustmaster one, I'm not sure if that will remind me of what we talked about in the previous show.
Although, I never had a Thrustmaster, but I wanted one.
They were definitely very cool.
well the only reason i got it was because dad decided he wanted one oh that's the secret and so yeah it wasn't really even it wasn't mine but i was the only one who used it that was during the time that dad loved getting us a random fun piece of electronics and thought he would use them and then never ever did yeah i i told this to my son explicitly i said look the only reason you have all these video games is because i like playing video games these are my games and i let you play them
So if you really liked, like, the harmonica or something, like, I'd get you a harmonica, but I wouldn't spend the amount of money.
You know what I mean?
Like, you are getting the advantage of overlapping with my hobbies.
And these are my game systems.
And these are my games.
And that's why you can't play a lot of them.
Because he keeps asking, like, he wants to play The Last of Us and stuff.
And, like, that's a grown-up game.
Like, it's kind of sad because you would think he's, like, he's the kid who has everything.
He gets every modern, you know, as soon as Zelda comes out, he gets it.
Every time the new Nintendo system goes out, he gets it.
But they're not his.
They're mine.
He doesn't have anything.
He's got every Lego known to man, I guess.
He does have those.
Those are his.
But that's kind of because I want them too.
Yeah, exactly.
The truth comes out.
But they are his.
The Legos are his.
The video games are mine.