PodSearch

The Talk Show

75: We Used to Finger Each Other

 

00:00:00 ◼   ► I got a lot to talk about.

00:00:02 ◼   ► So you have been blogging--

00:00:06 ◼   ► you're in a fugue state, honestly, because you are--

00:00:10 ◼   ► I know firsthand-- we won't talk Vesper here much,

00:00:13 ◼   ► but I do know internally that you are in a super productive

00:00:18 ◼   ► mode there.

00:00:19 ◼   ► But you're also super productive publicly on Inessential,

00:00:23 ◼   ► for the last couple of months.

00:00:27 ◼   ► Yeah, those two things really go together well for me, actually.

00:00:30 ◼   ► They feed each other.

00:00:34 ◼   ► I have the-- I don't know what to call it-- a writer's instinct,

00:00:37 ◼   ► a publisher's instinct, something where I really

00:00:39 ◼   ► like to make stuff public, whether it's code or writing.

00:00:44 ◼   ► And I'm happiest when I can do that.

00:00:46 ◼   ► So if I'm just writing code, and it's a while between releases,

00:00:50 ◼   ► and I'm not doing any public communication at all,

00:00:54 ◼   ► I'm actually less productive, even though technically I

00:00:57 ◼   ► I suppose I'd have more time.

00:00:58 ◼   ► But I'm just less, I'm just kind of less happy about it.

00:01:02 ◼   ► So I really like writing.

00:01:04 ◼   ► I was a writer before I was a coder,

00:01:06 ◼   ► and I'll probably be a writer after I'm a coder.

00:01:08 ◼   ► And so, you know, it makes me happy, it makes me,

00:01:12 ◼   ► it also lets me work stuff out, kind of in public,

00:01:14 ◼   ► and get feedback and learn things.

00:01:16 ◼   ► A lot of the stuff I've been doing,

00:01:19 ◼   ► I've literally been like, I have a problem.

00:01:21 ◼   ► I'll sit down and start writing how to solve it.

00:01:24 ◼   ► I just happen to write it in Mars Edit

00:01:25 ◼   ► then press publish at the end.

00:01:28 ◼   ► And do you think you get the answer because you've thought it through by writing it,

00:01:31 ◼   ► or you get the answer then because you publish it and somebody who reads your site ships

00:01:37 ◼   ► in with the answer?

00:01:38 ◼   ► Both, actually.

00:01:40 ◼   ► Sitting down to write it gets me a lot of the way there, and sometimes all the way there.

00:01:45 ◼   ► But then sometimes the feedback that I get will make me change my mind in small ways

00:01:50 ◼   ► or big ways about what I decided.

00:01:53 ◼   ► I mean, it is far from an original observation.

00:01:58 ◼   ► It's a famous observation, but writing is thinking.

00:02:02 ◼   ► And if you can't write it out, you

00:02:07 ◼   ► haven't thought it through.

00:02:08 ◼   ► And sometimes when you do write it out, you've got to be--

00:02:11 ◼   ► I'm always-- I always want to be ready when I'm writing

00:02:13 ◼   ► something out.

00:02:14 ◼   ► If it's like an argument or if I have a point I'm trying to make,

00:02:17 ◼   ► if it's not an open-ended question,

00:02:20 ◼   ► be careful that by the time you get to the end,

00:02:22 ◼   ► you haven't changed your mind.

00:02:23 ◼   ► and you don't know it, you know, and don't be, you know,

00:02:25 ◼   ► and then you may have to go back and rewrite the whole thing

00:02:28 ◼   ► but don't be afraid to do that.

00:02:29 ◼   ► And I can't tell you how many times,

00:02:31 ◼   ► like a piece of longer pieces for "Daring Fireball"

00:02:33 ◼   ► by the time I get to the end, I think, wait a second,

00:02:36 ◼   ► I've just convinced myself at the other point

00:02:39 ◼   ► just by writing it all out.

00:02:40 ◼   ► - Yeah, I'm not surprised.

00:02:42 ◼   ► It's certainly the same way for me.

00:02:44 ◼   ► That's a very common thing.

00:02:47 ◼   ► - I have a lot of developer friends though,

00:02:49 ◼   ► who I find, you know, and who on and off over the years

00:02:53 ◼   ► have had very enjoyable, to me, blogs

00:02:57 ◼   ► that go dark for huge periods of time.

00:03:00 ◼   ► And a lot of times, and if I, you know,

00:03:01 ◼   ► I won't give them a hard time about it,

00:03:03 ◼   ► but if I'll say something to them about it,

00:03:06 ◼   ► they'll just be like, "Yeah, I've just been so busy

00:03:09 ◼   ► "programming or working that it's like that."

00:03:12 ◼   ► And I feel like with you, it's the other way,

00:03:14 ◼   ► like you said, it's the other way around.

00:03:16 ◼   ► Like when you're most productive working,

00:03:17 ◼   ► You're also most productive blogging, even on stuff that's not related to your work,

00:03:23 ◼   ► though.

00:03:24 ◼   ► Yeah, that's true.

00:03:25 ◼   ► Yeah, I love blogging.

00:03:26 ◼   ► I've been doing it since 1999.

00:03:31 ◼   ► And if you look at the software I've made, it's always been about reading and writing.

00:03:35 ◼   ► That's what I really love, and that's what I first saw in the web, and it's what made

00:03:39 ◼   ► me become a programmer because it was this great platform for reading and writing.

00:03:45 ◼   ► So it's no surprise that I do a lot of reading and writing and that's when I'm happy.

00:03:51 ◼   ► And when I'm happy, I'm productive.

00:03:54 ◼   ► So one of the things you've been writing about this week, maybe the last week and a half,

00:04:03 ◼   ► it's a broad topic and I don't want to get into it.

00:04:05 ◼   ► I want to get into it at sort of a layman's level because there's so many other sites

00:04:09 ◼   ► or podcasts like Debug and even Marco and Siracusa and the other guys show ATP that

00:04:20 ◼   ► can get into more technical discussions.

00:04:24 ◼   ► But this whole thing about Objective-C and the future of programming on Apple's platforms,

00:04:30 ◼   ► is it always going to be Objective-C or is there some other language that's going to

00:04:35 ◼   ► come and a newer style language that's going to come and supersede it eventually.

00:04:42 ◼   ► And this is like the most evergreen of topics because I forget when John Siracusa started

00:04:50 ◼   ► writing about it, but he called it Copeland 2010, so he must have been back in like 2005,

00:04:55 ◼   ► 2006.

00:04:56 ◼   ► Yeah, close to 10 years ago, I think.

00:04:59 ◼   ► That he started writing like, "Hey, I'm not saying they have to do it."

00:05:03 ◼   ► and typical Syracuse reasonableness, but it seems like they should eventually.

00:05:10 ◼   ► There's got to be some point in the future where it just seems antiquated that you're writing in a language that has pointers.

00:05:16 ◼   ► Yeah, that's true.

00:05:20 ◼   ► Part of it, I think, is that a lot of developers can sort of feel that there's a revolution, but we don't know what it looks like.

00:05:29 ◼   ► We can guess, yeah, languages won't have pointers, perhaps.

00:05:33 ◼   ► But it just feels like there has to be a better, faster way

00:05:38 ◼   ► to do what we're doing.

00:05:39 ◼   ► There's still a lot of fiddliness.

00:05:41 ◼   ► Right, and for the non-programmers out there,

00:05:43 ◼   ► a pointer is a variable that points to a space in memory

00:05:48 ◼   ► directly.

00:05:49 ◼   ► And if you screw up a pointer, you're

00:05:52 ◼   ► probably going to crash, right?

00:05:53 ◼   ► I mean, that's safe to say, or the program's

00:05:56 ◼   ► going to go awry.

00:05:57 ◼   ► Right, things will go wrong.

00:05:59 ◼   ► The way I usually explain a pointer is to say that there's a difference between your

00:06:03 ◼   ► house and the address of your house.

00:06:05 ◼   ► Yes.

00:06:06 ◼   ► Right.

00:06:07 ◼   ► So the pointer is the address of your house.

00:06:08 ◼   ► Right.

00:06:09 ◼   ► If you get that wrong, well, you're in the wrong house.

00:06:12 ◼   ► Right.

00:06:13 ◼   ► And then you start doing things thinking, yeah, that's a perfect analogy.

00:06:16 ◼   ► And you think you're in your house and you start doing things and it ends up you're taking

00:06:20 ◼   ► a bath in somebody else's house.

00:06:22 ◼   ► Yeah, right.

00:06:23 ◼   ► Everyone's surprised and shit burns down.

00:06:26 ◼   ► Yep.

00:06:27 ◼   ► I was gonna make another analogy, but I think I

00:06:30 ◼   ► Don't want to tempt the explicit monitors that I

00:06:34 ◼   ► Yeah, I was going there my head too

00:06:39 ◼   ► So I love I'm a sucker for

00:06:50 ◼   ► Especially as I get older. I'm a sucker for analogies

00:06:55 ◼   ► of like such and such is as old now as blank was then.

00:07:00 ◼   ► Like where I think, oh God, I think this is one from,

00:07:06 ◼   ► I think this is true, right?

00:07:10 ◼   ► Yeah, we're about as far away from the time

00:07:16 ◼   ► of the first Back to the Future movie

00:07:17 ◼   ► as Back to the Future was from 1955

00:07:21 ◼   ► or whatever year it was they went back to, right?

00:07:23 ◼   ► It was like 30, he went back in time 30 years.

00:07:25 ◼   ► Well, now we're 30 years ahead, which is crazy, right?

00:07:29 ◼   ► It doesn't feel like Back to the Future was as long ago

00:07:33 ◼   ► as when he went back, it felt like he went back

00:07:35 ◼   ► to the Stone Ages, right?

00:07:37 ◼   ► - Sure, well, 'cause he went back to before we were born.

00:07:39 ◼   ► - Right.

00:07:40 ◼   ► - Yeah.

00:07:41 ◼   ► - So objective C is a really weird thing

00:07:46 ◼   ► that was glommed on top of C, right?

00:07:50 ◼   ► It was the people, the geniuses behind it.

00:07:54 ◼   ► C had no object orientation built into it.

00:07:57 ◼   ► But C is sort of was and still probably is

00:08:00 ◼   ► sort of the bedrock language of all programming.

00:08:03 ◼   ► - Yeah, and is remarkably plastic.

00:08:05 ◼   ► So you can do stuff like make Objective-C out of it.

00:08:07 ◼   ► - Right.

00:08:08 ◼   ► But everybody agrees, I think,

00:08:12 ◼   ► and agreed, certainly agreed when it first came out

00:08:14 ◼   ► that its syntax is weird because they'd said,

00:08:17 ◼   ► look, it's just a superset of C.

00:08:20 ◼   ► So you're always in C, but if it's an Objective-C file,

00:08:25 ◼   ► you can do these other things, largely with square brackets,

00:08:30 ◼   ► and make it object oriented.

00:08:34 ◼   ► And they did this because they had good C compilers

00:08:38 ◼   ► that they could build on top of.

00:08:39 ◼   ► And they just needed to-- like the first versions

00:08:41 ◼   ► of Objective-C, it was just a preprocessor, right?

00:08:44 ◼   ► As I recall.

00:08:45 ◼   ► Yeah, that's right.

00:08:45 ◼   ► That's like the story, just sort of behind the scenes,

00:08:48 ◼   ► rewrote your Objective-C as C and then compiled it as C and then you it ran. And it made a lot

00:08:55 ◼   ► of sense and it's a typical sort of from the minds that were behind the whole next system a sort of

00:09:05 ◼   ► let's not boil the ocean what's the least we could do mindset. But the thing is this is what to me is

00:09:13 ◼   ► is nutty. So that was around 1988, 1989. I don't know when Objective-C was created, but

00:09:19 ◼   ► that's when NeXT started using it. And for all intents and purposes, you know, if NeXT hadn't

00:09:24 ◼   ► used Objective-C, probably nobody today would have even heard of it. It would have been long gone.

00:09:30 ◼   ► Right. It would have been just like an experiment, like a historical footnote. But C was only from,

00:09:37 ◼   ► what, around 1970 or so, right? 1968, 1969, 1970. So C was only 20 years old. But I

00:09:44 ◼   ► remember when I was like in high school and Next came out and I was reading

00:09:49 ◼   ► about it in magazines, it seemed like, well, of course these guys would build it

00:09:53 ◼   ► on C. C, this ancient language that was ubiquitous. But it's only 20, it was only

00:09:59 ◼   ► 20 years old at the time. Whereas now Objective C has been around, at least in

00:10:04 ◼   ► the next step, you know, frameworks used as the basis for all the next step and

00:10:09 ◼   ► Mac OS 10 and iOS frameworks since 1989. So it's actually been the

00:10:18 ◼   ► foundation of the whole next derived operating systems for longer than C

00:10:23 ◼   ► existed when they got started. And they're still, I was about to say

00:10:29 ◼   ► stuck with it and that's pejorative. I don't want to be pejorative but they're

00:10:32 ◼   ► still using it. Yeah, right. And so I think there's just an argument just on based on

00:10:38 ◼   ► the timeline that maybe, you know, maybe something newer should have come out by now. Yeah, but

00:10:45 ◼   ► you know, so at the same time, if you compare today's Objective C to what was what people

00:10:51 ◼   ► writing in 1989, yeah, the old stuff is recognizable. You saw those square brackets, but it's really

00:10:56 ◼   ► Changed a ton right and that goes to you know, apples apples typical method of incremental

00:11:03 ◼   ► changes, you know lots of

00:11:05 ◼   ► Small mini revolutions as to opposed to you know, hey, here's your whole new language and frameworks and all that kind of stuff, right?

00:11:13 ◼   ► It's it's I certainly don't mean to imply that it is has been unchanged

00:11:17 ◼   ► It's probably added more than they added at the at the origin. Yeah, and you know in many ways

00:11:25 ◼   ► It is it is easier to write apps than it was

00:11:29 ◼   ► You know ten years ago. I mean there's there's a lot of stuff

00:11:33 ◼   ► We could do very easily that we couldn't do then and that that's been due to changes in Objective-C and the frameworks

00:11:39 ◼   ► Blocks are a big part of that for instance it makes

00:11:42 ◼   ► In grand central dispatch it makes handling multi-threading and concurrency a lot easier than it used to be which is great. It's fantastic

00:11:51 ◼   ► Still though still though it's still it still feels like we're using this really really old stuff

00:11:58 ◼   ► And then there are there's just got to be a better way

00:12:00 ◼   ► Yeah, and I think a lot of that really came to light and and hit a flashpoint and then has since died down

00:12:09 ◼   ► during the

00:12:11 ◼   ► gold rush era of

00:12:13 ◼   ► iOS development like the first let's say let's say 2008 2009

00:12:20 ◼   ► when it became a huge sensation to be writing iPhone apps and

00:12:25 ◼   ► App store was growing, you know every single Apple event. It was like an order of magnitude more

00:12:32 ◼   ► Here's you know, this is amazing. We've already got 6,000 apps in the App Store and then it was you know, a couple months later

00:12:38 ◼   ► We've got 60,000 apps in the App Store and then it was 600,000 apps in the App Store

00:12:42 ◼   ► And so you were had this time where all of a sudden there were way more

00:12:49 ◼   ► more programmers using these frameworks in the language and Apple's developer

00:12:56 ◼   ► tools than there ever were before combined. You know after what about 20

00:13:01 ◼   ► years you know yeah the first 20 years from 88 until 2008 it was all next and

00:13:12 ◼   ► that was really small a real small community then then with Mac OS X it

00:13:17 ◼   ► It became like a healthy-sized community,

00:13:20 ◼   ► but still a niche in the overall programming community.

00:13:24 ◼   ► And then with the iPhone, it became

00:13:27 ◼   ► one of the top languages in the entire industry.

00:13:30 ◼   ► Yeah, I never expected that to happen.

00:13:32 ◼   ► And I think to all those programmers,

00:13:35 ◼   ► and the weirdnesses of it just--

00:13:39 ◼   ► it was like, are you guys kidding me?

00:13:42 ◼   ► Right?

00:13:43 ◼   ► Yeah.

00:13:45 ◼   ► And yet it was an advantage because I think Objective-C could write code that actually

00:13:53 ◼   ► performed well enough, especially on the early iPhones, that the apps ended up being better

00:14:00 ◼   ► than apps on competing platforms.

00:14:03 ◼   ► Right.

00:14:04 ◼   ► And some of it is just stylistic, and it has nothing to do with the language.

00:14:08 ◼   ► One of the things that some people object to is the fact that...

00:14:13 ◼   ► I think it dates all the way back to the next years, but it stays through to today that

00:14:17 ◼   ► Apple's APIs tend to be like if you have a command to call.

00:14:27 ◼   ► It tends to be very verbose and explicit.

00:14:30 ◼   ► I'm looking at your blog right now and it would be height for timeline note.

00:14:36 ◼   ► They're going to spell that out.

00:14:37 ◼   ► going to make short little abbreviated function calls like in traditional C or in certain

00:14:43 ◼   ► other languages. That's a stylistic note and that would not change. There's no way that

00:14:49 ◼   ► would change if and when Apple moves to a new language. It's the language itself that

00:14:56 ◼   ► I think is controversial.

00:14:59 ◼   ► Yeah, I think that's right. Yeah, the style, it's a good style. I mean, we have autocomplete,

00:15:04 ◼   ► Right, so I hardly ever actually have to type something like height for time like now

00:15:09 ◼   ► I type a G and it suggests what I want and you know, I hit return in it and it goes

00:15:14 ◼   ► But it really makes for nicely readable code

00:15:17 ◼   ► And if we were using some other language, I would definitely want to use that same that same style. I think

00:15:23 ◼   ► Most Mac developers most iOS developers. I hope would agree. Yeah, would you before you were writing with the cocoa frameworks? Were you?

00:15:33 ◼   ► When you would write your own code for just you were you was your style is it verbose? I?

00:15:37 ◼   ► Think I tended toward using real words over abbreviations, right?

00:15:44 ◼   ► It's a very common things like, you know, um the variable I for a loop, you know, obviously, right?

00:15:50 ◼   ► but you know, I think I

00:15:52 ◼   ► Think I wrote a little bit as if it was a writer writing code

00:15:56 ◼   ► So and I think that's exactly what the Apple style is is that it's meant to be readable and that it does it dates back to

00:16:04 ◼   ► a time before

00:16:06 ◼   ► most editors had autocomplete and stuff like that like

00:16:09 ◼   ► Famously, I think that in the early years

00:16:12 ◼   ► Next developers were using textedit to write

00:16:16 ◼   ► to write their code

00:16:18 ◼   ► Ouch

00:16:21 ◼   ► Yeah, I would you know, I'm glad I did not work on this in the days before

00:16:25 ◼   ► Autocomplete because it makes a huge difference obviously, but I think it frees them to be a little bit more verbose. Yeah sure

00:16:33 ◼   ► So compare and contrast with with Microsoft and Microsoft has moved

00:16:38 ◼   ► It's not that you can't write

00:16:41 ◼   ► CRC plus plus code but that they have C sharp, which is a

00:16:48 ◼   ► You know, it's a more Java like language and it's you know, got a lot more modern syntactical

00:16:55 ◼   ► Elements I'm not saying it's better. I'm just saying it's clearly more modern

00:17:02 ◼   ► I've seen a little bit of C sharp and um, you know, it actually does look pretty good

00:17:09 ◼   ► But I don't know a ton about it, right and it's it's it's not C sharp in particular

00:17:16 ◼   ► But there's just the fact that Microsoft had clearly had been working on it

00:17:21 ◼   ► You know and had a sort of long-term plan that we you know

00:17:24 ◼   ► We need to we need to have a language that is that has these traits of a modern language

00:17:30 ◼   ► You know eventually and they've had it, you know, it's been out for years now and yet Apple is still on Objective C. I

00:17:37 ◼   ► Wonder how much of that was just kind of recognizing a good opportunity originally they had

00:17:46 ◼   ► Correct me if I get details wrong, but they were using Java and they were adding methods to Java and

00:17:52 ◼   ► Son probably sued them. Yeah, and there was something like that, right? So C sharp is basically like alright

00:17:59 ◼   ► Well, we're not gonna use Java. We're gonna use something just like Java only with those extra methods

00:18:03 ◼   ► Yeah, and a couple of syntactical differences, right? And so, you know, that's um, yeah in a way. It's a child of Java

00:18:11 ◼   ► Not a fork exactly but kind of all right and but but then they were smart enough to realize hey

00:18:16 ◼   ► This is this is an important thing and we can add at all kinds of goodness to it, which they've done

00:18:22 ◼   ► So you wrote one of your pieces over the last week or two is

00:18:28 ◼   ► imagining a scripting language where instead of picking one specific language and saying

00:18:33 ◼   ► You know, maybe here's the language that Apple should go with it was just a sort of hypothetical

00:18:40 ◼   ► What if and there was a language that had these features?

00:18:44 ◼   ► and

00:18:47 ◼   ► The gist of it though is that it it would make things a lot easier for you as a programmer if the language worked as intended

00:18:56 ◼   ► It should eliminate certain types of errors that you can make in a language like objective C

00:19:04 ◼   ► That are sometimes hard to track down

00:19:08 ◼   ► But then you asked at the end would I use this language and one of the big stopping points would be that if it and

00:19:15 ◼   ► this would be a

00:19:17 ◼   ► In a

00:19:19 ◼   ► compiled language like objective-c you run the code through a compiler and out of the compiler comes a binary blob of

00:19:26 ◼   ► executable code and that's what the the computer runs in a scripting language you

00:19:34 ◼   ► You might compile at runtime, but it's actually this the code that ships in the app

00:19:38 ◼   ► that and that to you pointed out would be the

00:19:42 ◼   ► The sort of big whoa, I don't know if I could use this right in other words that the app bundle itself might have a tiny

00:19:49 ◼   ► little bit of

00:19:51 ◼   ► executable code that you can't really read the source code to but then huge chunks of the app would ship in

00:19:58 ◼   ► Source files in the app bundle that anybody could just show bundle contents and go in there and start peeping through

00:20:05 ◼   ► right

00:20:07 ◼   ► Now that technical problem is fairly easy to solve because the scripting language can typically be compiled down to some form of byte code

00:20:14 ◼   ► which is

00:20:17 ◼   ► Not quite as opaque as a binary

00:20:19 ◼   ► the binary code but fairly close

00:20:22 ◼   ► so

00:20:25 ◼   ► Well, let's that that post was in a way me thinking about

00:20:29 ◼   ► getting getting

00:20:31 ◼   ► Taking the long and weird way around to thinking about what if we just open-sourced our apps randomly? What would go wrong?

00:20:38 ◼   ► well, and that's that's what I wanted to that's where I was kind of going and and yeah

00:20:42 ◼   ► let's let's call it capital o open source is when you actually

00:20:46 ◼   ► Publish the source code and you put an official license on it

00:20:52 ◼   ► you know, the MIT license or the BSD license or, you know, the GPL or something like that

00:20:58 ◼   ► and officially open source it. As opposed to, let's call it lowercase O open source,

00:21:05 ◼   ► where you don't license it, you don't give anybody permission to do the things that officially open

00:21:11 ◼   ► source apps can do, but that the source code is just there in the app for people to look at.

00:21:16 ◼   ► Sort of like I would compare that to the way the web largely works.

00:21:23 ◼   ► Daring Fireball is not open source, but famously, in the '90s,

00:21:31 ◼   ► how we all learned to build websites, you can go to the View menu, View Source,

00:21:36 ◼   ► and there's the HTML and the JavaScript and the CSS for your website.

00:21:42 ◼   ► What would happen if our apps were more like that?

00:21:45 ◼   ► I think that's a very interesting what if.

00:21:49 ◼   ► I think I'd actually really enjoy that a lot.

00:21:52 ◼   ► And part of me would just enjoy it as going back to my blog.

00:21:55 ◼   ► It would give me more to write about and more concrete

00:21:58 ◼   ► examples.

00:21:59 ◼   ► I'd be like, here, look at this thing in my source code.

00:22:02 ◼   ► See what I did there?

00:22:03 ◼   ► What do you think of that?

00:22:04 ◼   ► That kind of thing.

00:22:06 ◼   ► I'd really like that.

00:22:07 ◼   ► And if other people could learn from it

00:22:09 ◼   ► or tell me how I can do things differently, et cetera,

00:22:14 ◼   ► that would be really cool.

00:22:15 ◼   ► I mean, I enjoy that.

00:22:16 ◼   ► I think the web community has had a lot of that,

00:22:18 ◼   ► and we have not.

00:22:20 ◼   ► - Yeah, and I don't think that that lowercase,

00:22:24 ◼   ► oh, open source nature of the web

00:22:27 ◼   ► hurt the innovative designers and developers

00:22:31 ◼   ► who made the most, and still make,

00:22:35 ◼   ► the most clever designs and figure out the coolest tricks.

00:22:42 ◼   ► I don't think anybody really suffered from that copy and paste ability.

00:22:48 ◼   ► I mean, sure, it enabled some people to do wholesale, just rip off the whole website

00:22:53 ◼   ► type ripoffs.

00:22:57 ◼   ► That would maybe wouldn't have been possible if the web had been some kind of binary blob

00:23:01 ◼   ► format.

00:23:05 ◼   ► But I don't know that that really...

00:23:07 ◼   ► - As annoying as it can be,

00:23:09 ◼   ► and I've certainly seen it over the years,

00:23:12 ◼   ► I think as the daring fireball design gets older,

00:23:14 ◼   ► it's not happened as much recently,

00:23:17 ◼   ► but my site's been ripped off a lot of times,

00:23:20 ◼   ► and it's annoying,

00:23:21 ◼   ► but it's not like anybody's ever ripped it off

00:23:23 ◼   ► and set me back, right?

00:23:25 ◼   ► Like I've never lost a reader

00:23:27 ◼   ► because somebody has a site that's a clone of mine.

00:23:30 ◼   ► I've never lost a advertising dollar because of it.

00:23:33 ◼   ► And usually if you send a person,

00:23:36 ◼   ► If somebody, you know, if you send them an email and say,

00:23:39 ◼   ► "Hey, that's not cool," they change it.

00:23:41 ◼   ► - Yeah.

00:23:42 ◼   ► - A lot of the times it's people who really have no idea

00:23:44 ◼   ► that that's not cool.

00:23:45 ◼   ► I'm not sure that it would, you know,

00:23:50 ◼   ► that the effect wouldn't be similar with apps.

00:23:53 ◼   ► - Yeah, I kind of feel like it would be.

00:23:54 ◼   ► I mean, there's the fear that, oh, someone, you know,

00:23:57 ◼   ► does the rip off, right?

00:23:58 ◼   ► They just kind of reskin things,

00:24:00 ◼   ► change it from blue to green,

00:24:02 ◼   ► publish it with their own name,

00:24:05 ◼   ► and make money that we should have made.

00:24:09 ◼   ► But again, that's like someone will notice

00:24:11 ◼   ► and someone will write to them.

00:24:13 ◼   ► You know, there are mechanisms for handling

00:24:15 ◼   ► that kind of bad behavior.

00:24:17 ◼   ► But in general, people would learn from.

00:24:20 ◼   ► I know I would love to see the source

00:24:22 ◼   ► for other apps sometimes.

00:24:23 ◼   ► I'm like, how did they do that?

00:24:25 ◼   ► I'd love to know.

00:24:26 ◼   ► - Especially if it wasn't entirely copy and pasteable.

00:24:31 ◼   ► Like if there was just a wee bit of,

00:24:35 ◼   ► I'll go back a bit, a wee bit of executable binary blob

00:24:39 ◼   ► in there so that somebody who truly just has the intention

00:24:44 ◼   ► of cloning the app couldn't quite just copy and paste

00:24:46 ◼   ► the whole app bundle.

00:24:48 ◼   ► But if most of the app were like that,

00:24:50 ◼   ► and if you saw this cool effect of the way

00:24:55 ◼   ► that a little action sheet pops off the screen,

00:25:00 ◼   ► and it doesn't look like, it's not the system default way

00:25:02 ◼   ► that it's dismissed, it's another way,

00:25:04 ◼   ► and you want to see how did they do that.

00:25:05 ◼   ► And you could just open it up and say, oh, I see.

00:25:08 ◼   ► They did it this way.

00:25:11 ◼   ► I think most programmers who are beyond the beginning stage

00:25:16 ◼   ► aren't really looking for a copy and paste code,

00:25:18 ◼   ► at least when it comes to iOS and Mac apps.

00:25:20 ◼   ► They're looking for techniques.

00:25:21 ◼   ► They want to understand how you did something.

00:25:24 ◼   ► They don't necessarily want that code.

00:25:26 ◼   ► But if they can see how you put that together,

00:25:28 ◼   ► how you got a certain effect or whatever,

00:25:30 ◼   ► then they can duplicate that in their own way

00:25:33 ◼   ► in their own code rather than copy and paste.

00:25:36 ◼   ► - Right.

00:25:37 ◼   ► - And you know, it's a cool thing.

00:25:39 ◼   ► - Let me take a break.

00:25:40 ◼   ► Let me take our first break and thank our first sponsor.

00:25:43 ◼   ► And it's our good friends at Transporter, File Transporter.

00:25:48 ◼   ► Basic idea, they've been on the show before,

00:25:51 ◼   ► but if you haven't heard of them,

00:25:52 ◼   ► basic idea is it's sort of like Dropbox,

00:25:55 ◼   ► except you buy a hardware device or more of them,

00:26:00 ◼   ► multiple of them and spread them around.

00:26:02 ◼   ► and you get Dropbox like anywhere you are,

00:26:06 ◼   ► any device you're on, access your data,

00:26:08 ◼   ► except it's 100% private because your data is

00:26:12 ◼   ► stored on your device or your devices and nowhere else.

00:26:18 ◼   ► The cloud is only used for coordinating your file

00:26:24 ◼   ► transporters and your devices, your Macs, your iPhones,

00:26:30 ◼   ► to connect through the various firewalls and et cetera,

00:26:34 ◼   ► to talk to your file transporters.

00:26:37 ◼   ► These guys have been around for,

00:26:38 ◼   ► I think a little over a year,

00:26:40 ◼   ► and I just cannot, I can't even imagine how,

00:26:44 ◼   ► I can't even imagine how good their timing is

00:26:47 ◼   ► given all of the stuff that's gone on in the last year

00:26:50 ◼   ► regarding government spying and stuff like that

00:26:55 ◼   ► on cloud-based services, and the concern people have

00:26:59 ◼   ► about storing certain types of files and maybe even legally in terms of stuff that you have

00:27:07 ◼   ► signed a contract or something that you have to keep private or keep on your own devices.

00:27:12 ◼   ► It's just amazingly good timing.

00:27:16 ◼   ► Here's a stat that they sent me.

00:27:19 ◼   ► This is amazing.

00:27:23 ◼   ► This is from earlier this month, March 4th.

00:27:27 ◼   ► In the first year of shipments, transporter owners have deployed 10 petabytes of storage.

00:27:33 ◼   ► That's 10,000 terabytes.

00:27:35 ◼   ► Wow.

00:27:36 ◼   ► Or 10 million gigabytes of storage.

00:27:44 ◼   ► That's how much there's been deployed by transporter owners.

00:27:47 ◼   ► Pretty soon you're talking about real storage.

00:27:50 ◼   ► Yeah.

00:27:51 ◼   ► I actually had to like look that up because I didn't know what a petabyte was

00:27:55 ◼   ► Tons of tons, I mean that's I don't know if it actually would weigh tons because the devices are actually pretty small

00:28:03 ◼   ► So maybe it's figurative tons not ligger literal tons, but it's a ton of storage

00:28:07 ◼   ► And the price is really great

00:28:11 ◼   ► Super easy software that you can install on your Mac

00:28:13 ◼   ► They have an iPhone app

00:28:17 ◼   ► They have

00:28:20 ◼   ► A $99 device called the SYNC that you can connect to your own USB hard drive and use

00:28:27 ◼   ► that. They have a $199 model with 500 gigabytes of storage. The most popular, they have a

00:28:33 ◼   ► 249 model with a terabyte of storage built into it. And then at the high end, they have

00:28:37 ◼   ► a 349 model that is 2 terabytes. You just connect this little thing. It's so easy. You

00:28:45 ◼   ► put it on your home network. You can connect one at your home, one at your office, and

00:28:50 ◼   ► They'll just sync to each other and they'll both have the same amount of data.

00:28:54 ◼   ► So it's a nice way to replicate data across two locations.

00:28:58 ◼   ► Really, really easy to set up and most important fact that separates them from truly cloud-based

00:29:06 ◼   ► services, 100% private.

00:29:08 ◼   ► Where do you go to find out more?

00:29:09 ◼   ► Go to filetransporter.com/talk.

00:29:11 ◼   ► T-A-L-K.

00:29:13 ◼   ► Filetransporter.com/talk.

00:29:16 ◼   ► My thanks to File Transporter.

00:29:18 ◼   ► So, talking about baking apps with a mix of scripting languages and compiled code, do

00:29:32 ◼   ► you remember the C4 talk from a couple of years ago from Troy Gall, who was at Adobe

00:29:42 ◼   ► at the time, about the way that they architected Lightroom?

00:29:45 ◼   ► Yeah, they use an awful lot of Lua.

00:29:48 ◼   ► Yeah, exactly.

00:29:50 ◼   ► I thought that was cool.

00:29:50 ◼   ► So, and at first you might think, well, that's crazy because Lightroom is a professional photo

00:29:59 ◼   ► management tool, is super CPU intensive. Like I use Lightroom. I'm a happy Lightroom user all

00:30:08 ◼   ► the way from 1.0. It is the probably the number one app on my system that actually stresses my

00:30:14 ◼   ► computer and and they're not in large ways but I you know it's just doing a

00:30:20 ◼   ► lot you know like the modern camera if I if you shoot in raw they're just big

00:30:24 ◼   ► files with lots of pixels and and interpreting raw photos is processor

00:30:29 ◼   ► intensive and then you apply filters and all these things and they all show up

00:30:33 ◼   ► live but so the thing is that stuff the stuff that you think of the image

00:30:38 ◼   ► manipulation is all written in I don't know C or C++ you know but some kind of

00:30:44 ◼   ► of traditional high performance language

00:30:46 ◼   ► and it's shared code across the Adobe suite.

00:30:49 ◼   ► It's the way that, it's very,

00:30:51 ◼   ► that's why they call it,

00:30:52 ◼   ► the official name is Adobe Photoshop Lightroom.

00:30:55 ◼   ► But it's the same image processing engine from Photoshop.

00:31:00 ◼   ► It's the interface that's largely written in Lua.

00:31:05 ◼   ► - Which totally makes sense.

00:31:07 ◼   ► I bet people don't realize what percentage of code

00:31:11 ◼   ► is actually interface code.

00:31:13 ◼   ► And a lot of that is just really tedious, boring stuff,

00:31:16 ◼   ► like make sure the button is disabled when

00:31:20 ◼   ► some bit of data has changed.

00:31:22 ◼   ► And there's just an enormous amount of that stuff

00:31:24 ◼   ► that even goes into apps like Lightroom,

00:31:28 ◼   ► or even small iPhone apps like ours.

00:31:31 ◼   ► And none of that has to be CPU intensive,

00:31:34 ◼   ► it's just like something changed,

00:31:36 ◼   ► update the display slightly.

00:31:38 ◼   ► It's never gonna be slow.

00:31:43 ◼   ► Yeah, you need C or Objective-C for the slow parts.

00:31:45 ◼   ► But the rest of it, heck, you find the slowest scripting

00:31:49 ◼   ► language and it'll still be a thousand times faster

00:31:51 ◼   ► than what you need.

00:31:52 ◼   ► - And I'm 99% sure that you can do what we were talking about

00:32:00 ◼   ► and pop open the Lightroom bundle.

00:32:03 ◼   ► And if you poke around in there, you'll find Lua scripts.

00:32:09 ◼   ► And it doesn't in any way enable somebody to, you know,

00:32:14 ◼   ► do a Lightroom clone.

00:32:16 ◼   ► It just shows you the way they've done

00:32:21 ◼   ► some of the interface.

00:32:22 ◼   ► I think that's super interesting.

00:32:28 ◼   ► And it's sort of a living example of the sort of thing

00:32:33 ◼   ► you're talking about.

00:32:37 ◼   ► But it's weird because Lightroom's been out

00:32:39 ◼   ► for a number of years now, and it doesn't seem to have,

00:32:42 ◼   ► that method of architecting an app

00:32:44 ◼   ► doesn't seem to have caught on.

00:32:46 ◼   ► Like I'm not aware of anybody else who's doing that.

00:32:49 ◼   ► Although I guess a lot of games,

00:32:51 ◼   ► that's the one thing I remember,

00:32:52 ◼   ► is that a lot of games are like that.

00:32:54 ◼   ► Where they'll write the hardcore graphics stuff,

00:32:57 ◼   ► you know, in C or something like that.

00:32:59 ◼   ► But the setup menus and stuff like that,

00:33:02 ◼   ► the stuff that's not intensive,

00:33:03 ◼   ► is often written in a scripting language,

00:33:06 ◼   ► and it's often Lua.

00:33:08 ◼   ► - Yeah, I've heard that Lua is real big for games.

00:33:10 ◼   ► And in games you can see why not necessarily Lua

00:33:14 ◼   ► is the choice, but that some scripting language

00:33:16 ◼   ► is the choice, because they're often designed

00:33:18 ◼   ► to be cross-platform, and they're using their own UI stuff

00:33:22 ◼   ► rather than UI kits so much.

00:33:24 ◼   ► So yeah, it does make sense to do it that way,

00:33:27 ◼   ► particularly for games.

00:33:29 ◼   ► The problem with doing it for something like our app,

00:33:32 ◼   ► or more traditional iOS or Mac app,

00:33:34 ◼   ► is that you lose the built-in tools

00:33:39 ◼   ► for doing debugging, performance analysis.

00:33:43 ◼   ► I would bet that autocomplete isn't going to work.

00:33:46 ◼   ► So you're kind of slowed down an awful lot.

00:33:50 ◼   ► And that's a shame, because the idea

00:33:52 ◼   ► behind using a scripting language is to develop more

00:33:56 ◼   ► rapidly.

00:33:58 ◼   ► Scripting languages are fun.

00:33:59 ◼   ► Maybe that's why they're more rapid.

00:34:02 ◼   ► But there's usually less fiddly bits to worry about.

00:34:05 ◼   ► So you can move quickly.

00:34:06 ◼   ► But if you don't have the built-in Xcode tools for this,

00:34:11 ◼   ► it's actually slower and more difficult.

00:34:13 ◼   ► - I apologize for not having a better memory,

00:34:16 ◼   ► especially if Troy is out there and he listens to the show.

00:34:19 ◼   ► I don't know if Adobe has good debugging tools

00:34:23 ◼   ► for their LUIS stuff, but I do know that the way they set up

00:34:27 ◼   ► the cross-platform framework. It's genius and it's the right way. It's that...

00:34:34 ◼   ► and I know that Lightroom looks largely the same when you run it on Windows and

00:34:40 ◼   ► this is one of the reasons why they architected it this way, where they have

00:34:44 ◼   ► their own sort of non interface related image processing library at the heart

00:34:50 ◼   ► and that's Crops platform. And then they write these Lua scripts for the

00:34:54 ◼   ► interface and that's cross-platform but like when the Lewis script says give me

00:34:58 ◼   ► a text field here it's a native text field so the text field you're typing if

00:35:02 ◼   ► you're typing a caption for a photo you get all the cocoa text editing

00:35:07 ◼   ► shortcuts mm-hmm running on the Mac and I presume when you're running on Windows

00:35:11 ◼   ► you get all the windows ones and that's the sort of thing where cross-platform

00:35:15 ◼   ► stuff has all you historically fallen down where you get these weird moon man

00:35:20 ◼   ► Text fields that are like almost like a native text field

00:35:24 ◼   ► But there's you know

00:35:25 ◼   ► Then you try to hit escape to auto complete a word or something that you can do on the Mac and it doesn't work

00:35:30 ◼   ► And then it's that's weird

00:35:32 ◼   ► Right. Yeah, that's totally the wrong way

00:35:35 ◼   ► So you you you've got to set things up so that if your script or whatever says, you know new text field

00:35:40 ◼   ► That there's some layer that says oh which platform am I on?

00:35:44 ◼   ► What what type of text field do I have to return? Yeah

00:35:47 ◼   ► Yeah, so I think you're right in the large and this is one of the things that you've you've written about that

00:35:52 ◼   ► Ultimately, and there's a lot of cool experiments going on out there

00:35:57 ◼   ► What was the what's the new one that you that sort of got you started on this? It's the

00:36:01 ◼   ► Objective small talk. Yeah, I've also looked at new and you and Ruby motion, right?

00:36:09 ◼   ► but which is the one where it's it's it's like you're

00:36:14 ◼   ► Like the the example code was validating a form. Oh

00:36:18 ◼   ► So that's reactive cocoa. Yeah reactive cocoa. Yeah, which is not a new language or anything

00:36:25 ◼   ► It's just a new way of doing just some stuff. Yeah, it's kind of turning cocoa into more functional declarative thing

00:36:32 ◼   ► But the thing is in order to do that

00:36:34 ◼   ► You know offense to Robin the guys

00:36:37 ◼   ► People working on this but it's just ugly. I'm not gonna do that. It doesn't look like

00:36:44 ◼   ► like it doesn't look like Coco Code to me you know yeah I could learn to read

00:36:50 ◼   ► it and maybe even learn to think it's not ugly but I just don't want to with

00:36:55 ◼   ► any of these things so it's cool that the you know the people are

00:36:58 ◼   ► experimenting in the public with them yes but I think the best that you could

00:37:02 ◼   ► hope for is not that that the that these outside projects are going to catch on

00:37:07 ◼   ► and take over but that one of them is gonna get the attention within Apple and

00:37:12 ◼   ► and get Apple to officially support it.

00:37:15 ◼   ► Because it's like, bottom line is if it isn't really part

00:37:19 ◼   ► of what Apple is endorsing and publishing,

00:37:22 ◼   ► it's never going to have enough integration

00:37:24 ◼   ► with the built-in tools.

00:37:27 ◼   ► - And-- - Yeah, I think that's right.

00:37:29 ◼   ► - And with the community at large.

00:37:31 ◼   ► That there's a huge advantage to be writing your code

00:37:35 ◼   ► the same way the majority of the developer community is,

00:37:38 ◼   ► so that you can, you know,

00:37:40 ◼   ► If there is like a third party framework

00:37:42 ◼   ► you wanna integrate with, it's already, you know,

00:37:44 ◼   ► it's written in the same style.

00:37:45 ◼   ► - Mm-hmm.

00:37:47 ◼   ► That's one of the things I've liked about COCO in general

00:37:49 ◼   ► is that there are very strong conventions

00:37:52 ◼   ► for how to do things.

00:37:54 ◼   ► And my code oughta look pretty much

00:37:56 ◼   ► like somebody else's code.

00:37:57 ◼   ► But at the same time, I am, of course,

00:38:01 ◼   ► very glad that people are experimenting, doing, you know,

00:38:04 ◼   ► I got a little pushback on calling

00:38:05 ◼   ► Reactive COCO a research project, but I think it is.

00:38:08 ◼   ► It's a public research project and I'm glad it's happening.

00:38:11 ◼   ► And I hope Apple takes note of trends

00:38:14 ◼   ► like functional programming and bring some of this

00:38:19 ◼   ► over into CoCo.

00:38:20 ◼   ► - Yeah, I don't think-- - These guys are pushing

00:38:23 ◼   ► that a little bit.

00:38:24 ◼   ► - I don't think research project is a pejorative at all.

00:38:27 ◼   ► I don't think that that's in any way

00:38:29 ◼   ► you putting it down or dismissing it.

00:38:32 ◼   ► - Wasn't meant to be. - Right.

00:38:35 ◼   ► I think maybe because some research projects in some fields

00:38:39 ◼   ► are so pie in the sky and sort of removed from practicality

00:38:44 ◼   ► that you could see it that way.

00:38:48 ◼   ► But clearly that's not what they're doing.

00:38:50 ◼   ► They're actually saying you can write code today like this.

00:38:53 ◼   ► You can use this and ship it,

00:38:55 ◼   ► which maybe is where their objection comes from.

00:38:58 ◼   ► - Yeah, maybe.

00:38:59 ◼   ► Do you research project implies

00:39:03 ◼   ► don't use this in production code.

00:39:04 ◼   ► Right.

00:39:05 ◼   ► And yeah, I don't mean that at all.

00:39:08 ◼   ► It is, I think, used definitely in production code.

00:39:13 ◼   ► And the people who like it really, really like it.

00:39:16 ◼   ► And that's cool.

00:39:17 ◼   ► And I want them to keep using it.

00:39:20 ◼   ► I want them to keep pushing.

00:39:21 ◼   ► I think that's great.

00:39:22 ◼   ► I'm just not going to join in on that particular project,

00:39:26 ◼   ► though I'm highly sympathetic to it and to its goals.

00:39:30 ◼   ► All right, let me take a second break here,

00:39:32 ◼   ► because I know exactly where I want to go from this.

00:39:35 ◼   ► But let me take a second break and thank our good friends

00:39:39 ◼   ► at An Event Apart.

00:39:40 ◼   ► Now, you guys know An Event Apart.

00:39:42 ◼   ► They're a longtime sponsor of this show.

00:39:44 ◼   ► They are the conference for web developers and web designers.

00:39:50 ◼   ► They have shows all over the country this year for you

00:39:55 ◼   ► to check out.

00:39:56 ◼   ► Upcoming events for An Event Apart

00:39:59 ◼   ► include Seattle, Boston, San Diego, Washington, DC, Chicago,

00:40:07 ◼   ► Austin, Orlando, beautiful Orlando, Florida

00:40:10 ◼   ► in late October.

00:40:12 ◼   ► Orlando is beautiful in late October.

00:40:14 ◼   ► Not too hot.

00:40:16 ◼   ► Probably a lot nicer than wherever you're from.

00:40:19 ◼   ► And San Francisco in November.

00:40:20 ◼   ► It's such a great conference.

00:40:25 ◼   ► They have the best speakers.

00:40:28 ◼   ► two days of intensely educational learning for practical practitioners of standards-based

00:40:36 ◼   ► web design. They're founded by the web visionaries Eric Meyer and Jeffrey Zeldman who also happen

00:40:43 ◼   ► to be two fantastic speakers. But it's 12 speakers total, two days of inspiration, enlightenment,

00:40:52 ◼   ► and all the little details are so great at an event part event. They have the best food,

00:40:57 ◼   ► They have the best, they even have the best badges,

00:41:00 ◼   ► good badges, good swag.

00:41:01 ◼   ► Go to, here's how you find out more,

00:41:06 ◼   ► aneventapart.com/talkshow.

00:41:10 ◼   ► Check out the schedules, check out the dates.

00:41:13 ◼   ► If you work as a web developer or designer

00:41:15 ◼   ► and you haven't been to an event apart

00:41:17 ◼   ► or you haven't been recently,

00:41:18 ◼   ► you really owe it to yourself.

00:41:19 ◼   ► It is the conference to go to.

00:41:21 ◼   ► I can't recommend it enough.

00:41:23 ◼   ► So an event apart dot com slash talk show and my thanks to an event apart.

00:41:32 ◼   ► So here's maybe the counter argument to you know this.

00:41:37 ◼   ► I think maybe the big question is does Apple does Apple the people inside Apple the decision

00:41:42 ◼   ► makers who would sort of be able to pull the trigger on hey maybe we should move start

00:41:47 ◼   ► stepping away from Objective-C as the the the language and add a higher level

00:41:54 ◼   ► scripting language on top of it and then use Objective-C only for performance

00:42:01 ◼   ► intensive things do they agree with that do they see that there's a need for this

00:42:08 ◼   ► and and I I think from the outside it's indeterminate I don't think anybody

00:42:14 ◼   ► knows and it's you know typical for apple that they play their cards close to their vest

00:42:18 ◼   ► the the the catch with moving to a language a newer language a language with cooler it may you

00:42:29 ◼   ► know an easier to use language let's put it that way is that it comes with a performance cost right

00:42:35 ◼   ► an interpreted language runs slower than a compiled language but it's easier to use an interpreted

00:42:42 ◼   ► language as a just as a basic rule of thumb.

00:42:49 ◼   ► People were calling for this, you know, like I said,

00:42:53 ◼   ► Syracuse wrote this thing in 2004, 2005. But then at a time when, you know, when, you know,

00:43:02 ◼   ► the Mac was switching to Intel and Macs were getting way faster and performance wasn't quite

00:43:07 ◼   ► quite so important. But then came the iPhone, which only had 128 megabytes of memory and

00:43:14 ◼   ► ran on this at the, you know, even by today's standards, this puny ARM processor. I mean,

00:43:20 ◼   ► what was, I think, the stat that they showed when the 5C or the 5S and 5C came out and

00:43:29 ◼   ► they introduced the A7 system on a chip is that it's 40 times faster than the original

00:43:35 ◼   ► iPhone CPU. So let's just face it, the original iPhone as a target for objective C was incredibly

00:43:47 ◼   ► memory constrained and incredibly slow. And so having, you know, you needed every bit

00:43:52 ◼   ► of performance that you could get, like having this developer framework ready to go based

00:43:58 ◼   ► on a C-level language was a huge advantage and still probably is to this day. I would

00:44:07 ◼   ► think. I mean, I think maybe the modern iOS devices are fast enough that some of the stuff

00:44:12 ◼   ► could obviously, you know, and like we said, games have some interface stuff written in

00:44:17 ◼   ► Lua. But as the foundation for Apple's development efforts for the APIs, it makes sense that

00:44:24 ◼   ► they were still using a C-level language instead of a higher-level language.

00:44:30 ◼   ► Agree? Yeah, yeah I think so. I, they, you know, iOS certainly breathed a lot of life

00:44:38 ◼   ► into Objective-C, I think, and probably extended its its longevity because it

00:44:43 ◼   ► was such a huge advantage and to a certain extent still remains so. But for

00:44:47 ◼   ► the average app there is so much so much stuff just simple UI stuff that might as

00:44:52 ◼   ► well be written in the slowest interpreted language that you can think of.

00:44:57 ◼   ► And you wouldn't be able to tell the difference.

00:45:00 ◼   ► For instance, I want to animate this stuff from here to there.

00:45:05 ◼   ► The fact that I'm using Objective-C doesn't matter at all, because what I'm doing is I'm

00:45:11 ◼   ► setting an object's destination frame and opacity or whatever.

00:45:17 ◼   ► And then I'm making a call to the frameworks that actually does the animation.

00:45:21 ◼   ► Well, if I was using a scripting language instead of Objective-C, it would be the same

00:45:25 ◼   ► exact thing.

00:45:26 ◼   ► I'm saying, you know, move this from here to there, change its opacity or color or something,

00:45:32 ◼   ► and then making, you know, essentially that same call into the frameworks to actually

00:45:37 ◼   ► do the animation.

00:45:38 ◼   ► So the animation would just be just as fast, just as smooth, absolutely no different.

00:45:43 ◼   ► And for all the other, you know, all the other little things, whether you're enabling/disabling

00:45:47 ◼   ► buttons or swiping from screen to screen or whatever,

00:45:52 ◼   ► makes absolutely no difference that you're using Objective-C

00:45:54 ◼   ► versus something--

00:45:56 ◼   ► it could be AppleScript, right?

00:45:57 ◼   ► It could be something terrible and slow.

00:45:59 ◼   ► And so much of the average app, non-game app,

00:46:03 ◼   ► is just that stuff.

00:46:05 ◼   ► And then there's some core that needs

00:46:07 ◼   ► to be fast, whether it's image processing or database

00:46:10 ◼   ► or whatever.

00:46:12 ◼   ► Parsing stuff from the web, you want that to be quick.

00:46:16 ◼   ► But you can easily isolate that core.

00:46:19 ◼   ► Right, and so in other words, it's-- yeah,

00:46:22 ◼   ► I think my hunch was wrong on that.

00:46:25 ◼   ► And my thinking was, well, what if the next generation

00:46:28 ◼   ► of devices is way smaller still?

00:46:32 ◼   ► Whether it is a watch, or it's a watch-sized device,

00:46:34 ◼   ► or something just truly physically tiny

00:46:38 ◼   ► compared to even an iPhone, it doesn't

00:46:42 ◼   ► matter if your app is largely specified in a slow scripting language as long as

00:46:48 ◼   ► the frameworks that it's really that's actually doing all the work are written

00:46:52 ◼   ► in a fast tight language like Objective-C. Yeah, yeah, exactly right. Yeah. And I

00:47:00 ◼   ► think the old-timers out there us calling Objective-C a fast language is

00:47:03 ◼   ► probably making them roll their eyes, right? Right, yeah. Because that was always the

00:47:08 ◼   ► knock against Objective-C for years was that it because it was this added layer

00:47:13 ◼   ► over C and that it wasn't just the language is that there was this runtime

00:47:18 ◼   ► that was implicit with using it that that it was slow and it was and in

00:47:24 ◼   ► certain you know by certain standards it was slow but now we've gotten to the

00:47:29 ◼   ► point where that layer of indirection doesn't matter.

00:47:34 ◼   ► So I don't know--

00:47:39 ◼   ► - There have been times in like,

00:47:40 ◼   ► in the very most performance intensive code I've written

00:47:45 ◼   ► where I've gone the direction of more and more

00:47:50 ◼   ► going straight C over objective C.

00:47:52 ◼   ► There's something like that in Vesper,

00:47:54 ◼   ► but in NetNewswire I certainly move that direction

00:47:57 ◼   ► with dealing with RSS parsing, particularly.

00:48:02 ◼   ► If you're parsing a whole bunch of feeds all at once,

00:48:05 ◼   ► and you're creating a whole bunch of Objective-C objects

00:48:08 ◼   ► and dealing with things at that, I would call a higher level.

00:48:14 ◼   ► Though I can imagine higher level stills.

00:48:17 ◼   ► But still, it would be slow.

00:48:20 ◼   ► And the more I could do stuff in C,

00:48:22 ◼   ► things would be a lot faster.

00:48:24 ◼   ► But that's a special case, just in that most critical performance

00:48:31 ◼   ► intensive area.

00:48:33 ◼   ► Otherwise Objective C is so much faster than what

00:48:35 ◼   ► we need for everything else.

00:48:37 ◼   ► Yeah, like 99% of everything we do.

00:48:40 ◼   ► So what's your hunch?

00:48:47 ◼   ► Do you think that Apple has a plan for some sort

00:48:51 ◼   ► of next generation language?

00:48:53 ◼   ► - I don't know.

00:48:57 ◼   ► So one thing I've learned about Apple engineers

00:49:00 ◼   ► is they're a lot like people who work on iOS

00:49:04 ◼   ► and Mac apps outside of Apple.

00:49:06 ◼   ► They have the same kind of interests

00:49:08 ◼   ► and they notice the same things

00:49:09 ◼   ► and they think about the same things.

00:49:11 ◼   ► So my hunch is surely there are people inside Apple

00:49:15 ◼   ► who think like those of us outside who do think.

00:49:20 ◼   ► But whether that has actually gotten to the point

00:49:24 ◼   ► of anyone making a plan or anyone,

00:49:27 ◼   ► anyone seriously doing some work on this,

00:49:30 ◼   ► I just have no idea.

00:49:32 ◼   ► Because they can point to their approach,

00:49:34 ◼   ► which is, you know, we give you major new upgrades,

00:49:38 ◼   ► properties, blocks, all this kind of stuff,

00:49:41 ◼   ► and it's working, look how many apps there are,

00:49:43 ◼   ► look how successful the app ecosystem is.

00:49:46 ◼   ► It's not broken, you know, they could say.

00:49:51 ◼   ► - Yeah, I sort of think so too.

00:49:52 ◼   ► And the other thing too I've learned

00:49:53 ◼   ► over the years observing Apple is that

00:49:56 ◼   ► just the way they think institutionally,

00:50:00 ◼   ► and it always comes back to this,

00:50:01 ◼   ► is don't get too focused on any particular solution.

00:50:05 ◼   ► Always concentrate on the problem.

00:50:08 ◼   ► And that sometimes the solution to the problem

00:50:10 ◼   ► isn't the thing everybody thinks

00:50:12 ◼   ► is the solution to the problem.

00:50:14 ◼   ► So I would say Grand Central Dispatch is a perfect example

00:50:18 ◼   ► of that, where the problem is--

00:50:23 ◼   ► I would say the problem is that twofold.

00:50:27 ◼   ► One, parallel programming has always

00:50:29 ◼   ► been notoriously difficult. In other words,

00:50:33 ◼   ► having multi-threads at the same time running.

00:50:37 ◼   ► It's always been--

00:50:39 ◼   ► I remember in college, it was--

00:50:41 ◼   ► I don't know how I passed that course.

00:50:43 ◼   ► Yeah, it's hard.

00:50:44 ◼   ► And then the second problem is a hardware one,

00:50:51 ◼   ► which is that the semiconductor industry ran

00:50:55 ◼   ► into the end of Moore's law, where they can't keep putting

00:51:00 ◼   ► more transistors on chips, and the gigahertz stopped going up.

00:51:04 ◼   ► I mean, we've been stuck at somewhere around 3 gigahertz

00:51:07 ◼   ► for high-end CPUs for a long time now.

00:51:11 ◼   ► So the way that we're making CPUs faster is by adding more cores instead of faster cores.

00:51:20 ◼   ► But that means the only way to take advantage of it is to run more code in parallel.

00:51:26 ◼   ► And the way that GCD works, we don't have to get into the details of it because again,

00:51:29 ◼   ► this is not a programmer's course.

00:51:31 ◼   ► But it wasn't like...

00:51:35 ◼   ► When they introduced it at WWDC, it wasn't one of those things like, "Ah, finally, exactly

00:51:39 ◼   ► what we've been asking for."

00:51:41 ◼   ► It was a, "Whoa, I've never seen anything like this before."

00:51:44 ◼   ► That's really...

00:51:46 ◼   ► Sounds really clever, if it works, as they're saying, but it was pretty original.

00:51:51 ◼   ► Yeah, well, for one thing, it took away the idea of threads and had us think about queues,

00:51:58 ◼   ► which is a higher level of abstraction, which was really nice.

00:52:02 ◼   ► Yeah.

00:52:03 ◼   ► So I wouldn't be surprised if...

00:52:07 ◼   ► I wouldn't be surprised if the problem is Apple sees it is that we should be writing

00:52:12 ◼   ► less objective C code for our apps if the answer is something different than we should

00:52:18 ◼   ► be writing in some other language.

00:52:20 ◼   ► And I don't know what that would be because I'm not clever enough to think of it, but

00:52:22 ◼   ► I don't know.

00:52:24 ◼   ► Maybe storyboards is a good example of that?

00:52:27 ◼   ► Well certainly Apple likes the idea of do as much as we can in Interface Builder.

00:52:33 ◼   ► I think a lot of developers like that too because everything you do there is a line

00:52:36 ◼   ► of code you don't have to write.

00:52:39 ◼   ► And so, in case our listeners aren't aware, the old idea was you'd have one file per screen,

00:52:47 ◼   ► basically, and you'd lay it out visually.

00:52:49 ◼   ► In storyboards, you can kind of put together a whole app or an entire section of your app

00:52:53 ◼   ► with the transitions and stuff all at once.

00:52:57 ◼   ► It's like a storyboard in a movie.

00:53:00 ◼   ► But that doesn't necessarily save you a ton of code.

00:53:02 ◼   ► I mean it saves you the same amount of code

00:53:04 ◼   ► You used to get saved

00:53:08 ◼   ► Used to save with the with the older method, so I don't know. I'm still kind of on the fence about storyboards hmm

00:53:15 ◼   ► But it's you know. I don't know but an interface builder itself has always been

00:53:21 ◼   ► It's obvious you know they it's been there since the beginning and it was one of you know going back to the next era

00:53:31 ◼   ► You know, it was an early version, you know, ahead of its time in terms of laying out big chunks of the app

00:53:36 ◼   ► visually instead of just in code. But there's an awful lot of developers

00:53:39 ◼   ► I know, yourself included, who in a lot of cases just prefer to do it in code and find it to be

00:53:46 ◼   ► easier and less work.

00:53:49 ◼   ► Yeah, and well, and part of that is I can eliminate the bouncing around, right? If it's right there,

00:53:58 ◼   ► If it's right there in the code, then I don't have to leave the code to figure out what the heck's going on

00:54:02 ◼   ► I don't have to go over to this other thing where I visually laid it out

00:54:06 ◼   ► And it also works better with source control management and things like that. All right

00:54:10 ◼   ► I'm not against interface builder

00:54:13 ◼   ► We've got we're actually using a storyboard in our in our next release of Vesper for a section of the app

00:54:18 ◼   ► And partly is just because I needed to learn it but you know it for that section of the app

00:54:23 ◼   ► It actually really makes sense. It's a self-contained thing with a

00:54:26 ◼   ► navigation controller and all this kind of stuff.

00:54:29 ◼   ► - But you don't see it so much as about writing

00:54:31 ◼   ► less objective C code than you did before.

00:54:34 ◼   ► It's just a different way of using a visual interface tool

00:54:38 ◼   ► than interface builder.

00:54:40 ◼   ► - Yeah, very much so.

00:54:41 ◼   ► Yeah, I mean, it will save some code,

00:54:45 ◼   ► but the kind of code that's really simple and easy to write,

00:54:47 ◼   ► so it's not that big a deal.

00:54:49 ◼   ► But what I'd love to see in interface builder

00:54:54 ◼   ► and storyboards, is for people like you and Dave

00:54:59 ◼   ► to be able to go in there and actually make it work

00:55:03 ◼   ► like it should.

00:55:03 ◼   ► - Right.

00:55:04 ◼   ► - You know, it's like, it's gonna look like this

00:55:06 ◼   ► and we're close in a lot of ways.

00:55:09 ◼   ► I mean, you could sit there,

00:55:11 ◼   ► someone who isn't a full-time programmer

00:55:13 ◼   ► could sit there and lay out text fields

00:55:15 ◼   ► and do all this kind of stuff.

00:55:16 ◼   ► And then you could even test the interface,

00:55:18 ◼   ► see what it's gonna look like

00:55:19 ◼   ► without attaching it to any code.

00:55:22 ◼   ► But it's not really the interface, right?

00:55:24 ◼   ► The fonts won't be right.

00:55:26 ◼   ► Yeah, there'll be a lot of missing pieces.

00:55:30 ◼   ► What I'd love is for you to be able to actually do

00:55:34 ◼   ► all the work and then me, the coder,

00:55:37 ◼   ► can sit back and do things like database and APIs

00:55:41 ◼   ► and all that kind of stuff.

00:55:41 ◼   ► - Or don't you think maybe a better way to put it

00:55:43 ◼   ► would be for me and Dave, not necessarily to do all the work

00:55:46 ◼   ► but to do all the diddling.

00:55:50 ◼   ► - Yeah, sure.

00:55:51 ◼   ► which is okay here's the thing and it animates from A to B but now you're done

00:55:58 ◼   ► and now me and Dave would just sit there and tweak parameters like you know and

00:56:04 ◼   ► it's funny to say this but the physics you know the gravity of the springiness

00:56:08 ◼   ► the bounciness the speed the acceleration to get the feel of it right

00:56:14 ◼   ► because that is it and that's a huge it really is it's a huge part of the

00:56:18 ◼   ► It's a huge part of almost all what people would consider modern apps is the physics of how the when things move

00:56:26 ◼   ► Like it's not enough to just say animate from a to B. You've really got to specify those things

00:56:30 ◼   ► and

00:56:33 ◼   ► Making that more of a central part of the built-in tools. I think would be a huge step forward

00:56:39 ◼   ► I mean we've we've hacked around it with

00:56:42 ◼   ► with our own thing the

00:56:45 ◼   ► Deep out of DB 5 DB 5 where we can set it, but we're still going through to do that. We're still going through a

00:56:51 ◼   ► compile compiled build run

00:56:54 ◼   ► reinstall on the device cycle

00:56:56 ◼   ► Yeah

00:56:59 ◼   ► I've said this before but one of the coolest things that I've seen was

00:57:02 ◼   ► From when when Mike Mattes was developing the push pop press app for

00:57:10 ◼   ► for Al Gore and I saw a pre-release version of it and his

00:57:14 ◼   ► Madison's version on his phone had on a special internal wasn't you know was

00:57:20 ◼   ► never going to ship to the public but a setting screen where he had sliders to

00:57:24 ◼   ► adjust certain you know pretty much give you the god-level control over the

00:57:32 ◼   ► physics of the books universe and you could set how heavy images are so that

00:57:38 ◼   ► when you flick the clothes them you know do they feel like they're light do they

00:57:41 ◼   ► feel like they're heavy. And so that it seemed like a cool way to do that. And then he could

00:57:47 ◼   ► come to the developer and say, here's for the next beta, here's the physics settings

00:57:52 ◼   ► that I, you know, let's try this and we ship it to the end. But he didn't have to go through

00:57:56 ◼   ► a build and run and install in Xcode and reinstall it on his app every time he wanted to twiddle

00:58:03 ◼   ► one.

00:58:04 ◼   ► That's nice. What he really needs and maybe he did have is a button where I like these

00:58:09 ◼   ► set and email this to the developer. Yeah, something like that. That would be cool. Let

00:58:16 ◼   ► me take our third break and thank our next sponsor and it's our good friends at lynda.com.

00:58:24 ◼   ► lynda.com has over 2,000 high quality and engaging video courses taught by industry

00:58:34 ◼   ► experts with new courses being added daily. For all I know there's more than

00:58:38 ◼   ► 2,000 now. They have a wide breadth of courses from beginner to advanced and

00:58:44 ◼   ► they cover things ranging from purely design to pure development and all sorts

00:58:49 ◼   ► of stuff in between. Other things like photography. Some of the things that

00:58:55 ◼   ► might interest people who are listening to the talk show they have iOS developer

00:58:59 ◼   ► courses, Unix for Mac OS 10 users so if you've ever wanted to learn your way

00:59:04 ◼   ► around the terminal, that sort of thing. Objective-C fits this show perfectly.

00:59:09 ◼   ► iOS 7 SDK, new features, so if you're already an iOS developer but you want to

00:59:15 ◼   ► see what's new in iOS 7, they have a course on that. Web development courses,

00:59:22 ◼   ► they have Perl, ASP.NET, PHP, MySQL, JavaScript of course, Creative Cloud, so

00:59:32 ◼   ► Photoshop InDesign everything like that so many videos it's unbelievable

00:59:39 ◼   ► here's the best thing though the best thing is that you can sign up for a

00:59:45 ◼   ► seven-day free trial and during your free trial you can watch as many of

00:59:51 ◼   ► these videos as you want that's how sure they are that you'll be you'll want to

00:59:56 ◼   ► sign up and when you do sign up you can sign up for a plan where you just have

01:00:02 ◼   ► unlimited access to their videos and so you don't have to if you're thinking

01:00:06 ◼   ► like I think I want to get this you're already signed up you're signed up with

01:00:10 ◼   ► a subscription you don't have to worry hey is this video going to be what I

01:00:13 ◼   ► want you can just start watching it and see if it's what you want how do you get

01:00:17 ◼   ► this seven-day free trial easy go to lynda.com ly and da comm slash the talk

01:00:25 ◼   ► show lynda.com slash the talk show you get a seven day free trial watch these

01:00:32 ◼   ► videos. You have nothing to lose. It's fantastic. So my thanks to lynda.com. Absolutely fantastic

01:00:40 ◼   ► high quality videos, seven-day free trial. My thanks to lynda.com.

01:00:49 ◼   ► Anything else you want to talk about programming-wise?

01:00:50 ◼   ► So here's something you don't know about me. It's not programming.

01:00:53 ◼   ► Okay.

01:00:54 ◼   ► I'm an Espresso user.

01:00:55 ◼   ► Oh, really?

01:00:57 ◼   ► - Yes, so now's your chance.

01:00:59 ◼   ► Ask me what I see in these.

01:01:01 ◼   ► - What is it that you see in these?

01:01:03 ◼   ► - It's so damn easy.

01:01:06 ◼   ► And that's really it.

01:01:07 ◼   ► I literally have no idea how much it costs

01:01:10 ◼   ► and I don't care if it's $40 a pound of coffee.

01:01:13 ◼   ► But I have two cups of espresso every day.

01:01:15 ◼   ► And the same ones, I have one of one flavor,

01:01:19 ◼   ► one or the other.

01:01:20 ◼   ► And it's just, it takes just a few seconds.

01:01:25 ◼   ► I never have to think, and it's really good.

01:01:28 ◼   ► And that's it.

01:01:29 ◼   ► It is no more complicated than that.

01:01:31 ◼   ► This is this thing I was writing about yesterday

01:01:34 ◼   ► that I'm curious, that there's these new pod-based coffee

01:01:38 ◼   ► making machines.

01:01:39 ◼   ► There's what you have, the Nespresso.

01:01:43 ◼   ► And what's the other one, the K-Pod?

01:01:45 ◼   ► Keurig, something like that.

01:01:47 ◼   ► Keurig or something like that.

01:01:48 ◼   ► And I just didn't get it.

01:01:53 ◼   ► In other words, per pound of coffee,

01:01:55 ◼   ► you end up paying a premium, a significant premium.

01:01:57 ◼   ► And I just didn't get it.

01:01:58 ◼   ► I wasn't putting it down, I just didn't see the appeal.

01:02:00 ◼   ► And I've heard from two very different groups of people,

01:02:05 ◼   ► like on Twitter, who are fans of these things.

01:02:09 ◼   ► And it seems like the bigger group

01:02:12 ◼   ► is the people who truly value the convenience.

01:02:15 ◼   ► That however easy it is to make drip coffee,

01:02:19 ◼   ► this is just way easier.

01:02:22 ◼   ► But the second group is your group.

01:02:24 ◼   ► 'Cause you're making espresso, right?

01:02:30 ◼   ► - Yeah.

01:02:30 ◼   ► - Yeah, the espresso drinkers.

01:02:32 ◼   ► And that's, I think,

01:02:34 ◼   ► I think it's because making espresso traditionally

01:02:38 ◼   ► is a mess, right?

01:02:40 ◼   ► And requires significantly,

01:02:43 ◼   ► I see that, maybe that's where I'm missing out.

01:02:45 ◼   ► Like, I like espresso when I can get it,

01:02:46 ◼   ► like at a restaurant.

01:02:48 ◼   ► But at home, I just make drip coffee.

01:02:51 ◼   ► And drip coffee hurts my stomach a lot.

01:02:54 ◼   ► So I go with espresso.

01:02:55 ◼   ► And it used to be I had a Krups,

01:02:59 ◼   ► and I would make four shots at a time, four times a day.

01:03:03 ◼   ► 16 shots a day is how I got through.

01:03:06 ◼   ► And that was a lot of damn work, right?

01:03:08 ◼   ► To sit there with my Krups and grind the beans

01:03:12 ◼   ► and pound them in and all this stuff four times a day.

01:03:15 ◼   ► I was just wired as hell, of course.

01:03:17 ◼   ► - That's so much espresso.

01:03:21 ◼   ► It really is.

01:03:22 ◼   ► Oh, God.

01:03:23 ◼   ► And, hey, that's how that newswire got made.

01:03:30 ◼   ► But eventually I realized, number one, I'm drinking a ton of espresso.

01:03:33 ◼   ► Number two, I'm spending a crazy amount of time just making espresso and cleaning up

01:03:37 ◼   ► from espresso and everything.

01:03:40 ◼   ► And I realized I could actually be spending that time programming and maybe not having

01:03:46 ◼   ► to pee every five minutes if I had less espresso and just got a little machine that makes something

01:03:52 ◼   ► really good.

01:03:53 ◼   ► And so, yeah, that's what I did.

01:03:55 ◼   ► And now, yeah, it's a piece of cake.

01:03:57 ◼   ► And you're down to two a day?

01:03:59 ◼   ► Down to two a day.

01:04:00 ◼   ► The first one is kind of a double and then a single after that.

01:04:04 ◼   ► And you used two different flavors?

01:04:06 ◼   ► Yeah.

01:04:07 ◼   ► So some of them are designed to be long pours, basically, and some are designed to be short.

01:04:13 ◼   ► So I use a long one first and follow up with a short one.

01:04:17 ◼   ► And that's good.

01:04:19 ◼   ► My former colleague, when I worked at Joyent, Jason Hoffman, the first time we had like

01:04:27 ◼   ► an on-site, we went across the street somewhere in Marin County.

01:04:34 ◼   ► In typical Marin County, small town, no chain restaurants, really cool coffee shop across

01:04:40 ◼   ► the street.

01:04:42 ◼   ► stuff. And we're all ordering. And I got my usual drip coffee. And I remember Jason ordered

01:04:47 ◼   ► a quadruple espresso. And I thought, wow. And I didn't say anything. And then we sat

01:04:53 ◼   ► there and drank. And we'd stayed in a coffee shop and just chilled out. And we drank our

01:04:58 ◼   ► coffees. And then before we left, he went up to the counter to get another one. And

01:05:02 ◼   ► And I thought, whoa, whoa, this.

01:05:04 ◼   ► - Yeah.

01:05:07 ◼   ► - That is totally outside my ability

01:05:10 ◼   ► to consume coffee or caffeine.

01:05:15 ◼   ► - Yeah, I used to always order triple espressos,

01:05:18 ◼   ► just routinely when I was in a coffee shop.

01:05:22 ◼   ► And would have, you know, if I was traveling.

01:05:23 ◼   ► And I'd have multiple a day just to keep the same

01:05:27 ◼   ► or close to the same level I was used to from home.

01:05:29 ◼   ► - Yeah, I do like an espresso,

01:05:31 ◼   ► But I wouldn't want to try to make them at home.

01:05:36 ◼   ► I also like-- I like the way that I can--

01:05:40 ◼   ► for myself, I make about three cups of coffee.

01:05:43 ◼   ► And I like the way that I keep it in a thermos so it stays warm.

01:05:46 ◼   ► And I like the way that it lasts for a long time.

01:05:50 ◼   ► I can just slowly sip it as I work the first half of my day.

01:05:56 ◼   ► Yeah, I would enjoy it.

01:05:57 ◼   ► But it hurts too much.

01:06:01 ◼   ► - Yeah.

01:06:02 ◼   ► - Which sucks.

01:06:03 ◼   ► - I did not know that about you.

01:06:05 ◼   ► - Yeah.

01:06:05 ◼   ► - Although I guess I shouldn't be surprised.

01:06:08 ◼   ► Do you find if you get over caffeinated,

01:06:12 ◼   ► you lose your ability to concentrate?

01:06:14 ◼   ► - Yeah, at a certain point,

01:06:17 ◼   ► I'm just desperate not to be so over caffeinated.

01:06:20 ◼   ► I built up my tolerance for a long time,

01:06:24 ◼   ► such that that point was almost impossible to reach.

01:06:27 ◼   ► Nevertheless, I still reached it occasionally.

01:06:29 ◼   ► And my answer then was usually food, whatever.

01:06:32 ◼   ► Just give me as much food as I can possibly eat

01:06:35 ◼   ► just to help me kinda relax.

01:06:37 ◼   ► And that's not necessarily a great answer.

01:06:39 ◼   ► - I found that when I used to work outside the house

01:06:44 ◼   ► and I'd have a job,

01:06:46 ◼   ► and then I wouldn't necessarily count

01:06:49 ◼   ► how much coffee I was drinking,

01:06:51 ◼   ► especially if it was like in a workplace

01:06:52 ◼   ► where there was coffee always being made

01:06:54 ◼   ► or coffee available.

01:06:56 ◼   ► And I would just get up as often

01:06:58 ◼   ► as soon as my cup was empty, I would just get up and refill it. And then I would find

01:07:03 ◼   ► like in the afternoon that I'd, it really, it felt like my brain was actually like vibrating.

01:07:10 ◼   ► Like it was, and it was a truly, well I shouldn't say truly unpleasant, but vaguely unpleasant.

01:07:16 ◼   ► And I'd, I'd like look at the clock and realize an hour had gone by and all I would, all I

01:07:20 ◼   ► had done is open 20 new tabs, you know, of random stuff and read the first three sentences

01:07:26 ◼   ► of each. Like it truly gave me, it gave me effectively attention deficit disorder. And

01:07:33 ◼   ► so I find that making the same amount of coffee every morning when I get up and drink, and

01:07:41 ◼   ► that's all I drink every day has been a huge advantage. Because I know it's exactly, it's,

01:07:47 ◼   ► it makes me feel good and I feel like I'm concentrating, but it doesn't, doesn't even

01:07:52 ◼   ► get me close to drinking too much.

01:07:54 ◼   ► - Yeah, yeah, it took me a while to learn that,

01:07:57 ◼   ► but yeah, I've learned the same thing.

01:07:58 ◼   ► - Do you get headaches if you don't drink coffee?

01:08:00 ◼   ► - Oh yeah, for sure, yeah.

01:08:02 ◼   ► - See, I used to, I used to get severe headaches

01:08:06 ◼   ► if I woke up and went, I would say within about 90 minutes

01:08:10 ◼   ► of waking up, if I hadn't had some caffeine of some sort,

01:08:13 ◼   ► I would get a serious headache, and it would go away

01:08:17 ◼   ► about 15, 20 minutes after I then consumed some caffeine.

01:08:22 ◼   ► But ever since I've started to sort of make one

01:08:25 ◼   ► three cup thermos of coffee a day,

01:08:27 ◼   ► I can go, like if I wake up the next day

01:08:29 ◼   ► and I, you know, like if I'm flying or something like that,

01:08:32 ◼   ► I don't drink coffee 'cause I'd rather sleep on the plane

01:08:36 ◼   ► or try to sleep on the plane than stay awake.

01:08:38 ◼   ► And I don't wanna have to get up to pee

01:08:40 ◼   ► when I'm on the plane, so.

01:08:41 ◼   ► - Oh, right.

01:08:42 ◼   ► - And I don't get a headache anymore.

01:08:43 ◼   ► - Yeah, huh, well, you're lucky, I still get the headaches.

01:08:46 ◼   ► On the other hand, if I have a superpower,

01:08:48 ◼   ► my one superpower is the ability to sleep

01:08:51 ◼   ► in any moving vehicle, car, airplane, train,

01:08:54 ◼   ► doesn't matter, out like a light,

01:08:55 ◼   ► even after coffee, doesn't matter.

01:08:57 ◼   ► - Ooh, that's a good gift.

01:08:59 ◼   ► - Yeah, it's nice, it is nice.

01:09:01 ◼   ► - It really stunk when I had the sort of,

01:09:04 ◼   ► I really need coffee every morning thing,

01:09:05 ◼   ► like flying was the worst to me

01:09:07 ◼   ► because A, it would keep me from sleeping on the plane,

01:09:10 ◼   ► B, it would probably make me have to pee,

01:09:12 ◼   ► but C is that the coffee you get in an airport

01:09:19 ◼   ► almost always horrendous. Yeah. I mean even if you get it if you get it at the

01:09:24 ◼   ► before you get on the plane, it's usually pretty bad. Like I know it like SFO

01:09:31 ◼   ► there's a I think depending on the terminal Philadelphia has one too, a

01:09:35 ◼   ► Pete's, but it's not really a Pete's it's like a it's like a they have the Pete's

01:09:42 ◼   ► logo and they serve Pete's coffee but it's it's like some kind of weird

01:09:47 ◼   ► Franchise type thing like they don't it doesn't taste like Pete's its airport Pete's

01:09:51 ◼   ► Yeah, airport's different and it just tastes terrible and then you really you know makes you question

01:09:57 ◼   ► Well, you know why you have this addiction

01:09:59 ◼   ► You know, they say that the Renaissance

01:10:04 ◼   ► Was due to caffeine and beans. Yeah, I believe that. Yeah that coffee houses were like the first

01:10:12 ◼   ► first form of like modern civilization.

01:10:17 ◼   ► - Yeah.

01:10:21 ◼   ► And they were wicked immoral places, according to the--

01:10:24 ◼   ► - Yeah, yeah, that was true too.

01:10:25 ◼   ► - I love that idea.

01:10:26 ◼   ► - I do.

01:10:27 ◼   ► - It's great.

01:10:28 ◼   ► Well, that's why we went out for coffee,

01:10:29 ◼   ► the most innocent thing you can do.

01:10:32 ◼   ► Wicked Satanists.

01:10:39 ◼   ► - I also, I started my caffeine addiction

01:10:42 ◼   ► purely drinking Coca-Cola.

01:10:44 ◼   ► I tried coffee and I think it was because

01:10:50 ◼   ► so much coffee is just bad and it never caught on.

01:10:55 ◼   ► And so like going through college, I never drank coffee.

01:10:57 ◼   ► I just drank, I don't know, six pack of Coke a day.

01:11:01 ◼   ► And I drank enough Coke like in my college years

01:11:05 ◼   ► that I had the headache problem

01:11:07 ◼   ► when I'd wake up in the morning,

01:11:09 ◼   ► just from drinking Coca-Cola.

01:11:12 ◼   ► - I assume that's regular Coke with the sugar.

01:11:14 ◼   ► - Yeah. - Yeah, boy.

01:11:17 ◼   ► Yeah, how's that?

01:11:18 ◼   ► That on top of your six pack of beer a night,

01:11:20 ◼   ► you're gonna need some extra exercise.

01:11:22 ◼   ► - Right.

01:11:23 ◼   ► I had a, I was a real skinny teenager,

01:11:26 ◼   ► and so even going, you know,

01:11:27 ◼   ► until I got my 20s and that slowed down,

01:11:29 ◼   ► I think I was lucky enough.

01:11:31 ◼   ► But even so, it was,

01:11:34 ◼   ► I kind of quit buying it cold turkey, Coke.

01:11:37 ◼   ► Actually at Amy's encouragement.

01:11:39 ◼   ► I was really, I mean I was still, I don't know,

01:11:41 ◼   ► 24, 23, 24, something like that.

01:11:43 ◼   ► And I wasn't overweight in any way.

01:11:46 ◼   ► She was like, just try it, just stop buying it.

01:11:48 ◼   ► And it was at a time when I had started drinking coffee.

01:11:52 ◼   ► So I just stopped buying Coke,

01:11:53 ◼   ► and I dropped five pounds in a week.

01:11:56 ◼   ► - Wow, no kidding.

01:11:56 ◼   ► - Yeah, and we had an argument,

01:11:58 ◼   ► and it sounds stupid in hindsight,

01:11:59 ◼   ► but I have to give her credit,

01:12:01 ◼   ► where she said, do you know how many calories a day

01:12:03 ◼   ► you're consuming just in Coca-Cola.

01:12:04 ◼   ► And my thought was, it doesn't matter

01:12:07 ◼   ► how many calories are in it, it's just a liquid.

01:12:08 ◼   ► So I'm just urinating it out.

01:12:11 ◼   ► (laughing)

01:12:12 ◼   ► And she's like, no-- - That's not how

01:12:13 ◼   ► calories work. - No, she's like,

01:12:15 ◼   ► no dummy, it doesn't work like that.

01:12:17 ◼   ► And I really thought that if you're drinking it,

01:12:19 ◼   ► it cannot possibly be making you fat.

01:12:22 ◼   ► And so I quit, I got on a bet with her.

01:12:24 ◼   ► I just stopped buying it, stopped drinking it,

01:12:26 ◼   ► and weighed myself every day.

01:12:28 ◼   ► And within a week, I dropped five pounds.

01:12:31 ◼   ► You didn't perform the thought experiment.

01:12:33 ◼   ► Well, what if I dissolved a bunch of sugar

01:12:35 ◼   ► in some water and drank it?

01:12:36 ◼   ► - I know, here's a story where I'm laying out

01:12:40 ◼   ► how stupid I can be.

01:12:42 ◼   ► - I had a similar thing.

01:12:46 ◼   ► I was overweight, it was my early 30s,

01:12:49 ◼   ► and I switched from regular coke to diet coke.

01:12:54 ◼   ► That was the only change I made.

01:12:55 ◼   ► And over the course of a summer, I lost 20 pounds.

01:13:00 ◼   ► - Well, and I hadn't seen things,

01:13:01 ◼   ► like there was no YouTube at the time.

01:13:03 ◼   ► So like you can go there now and you can easily Google like,

01:13:06 ◼   ► or you know, use YouTube search and find like,

01:13:09 ◼   ► how much sugar is in a can of Coke?

01:13:11 ◼   ► And they'll put like 12 ounces of water out

01:13:13 ◼   ► and they pour the sugar to show you how much sugar

01:13:16 ◼   ► is in there and it's ridiculous.

01:13:19 ◼   ► - Yeah, yeah.

01:13:20 ◼   ► - It's, you know, it's like you're eating,

01:13:22 ◼   ► if you're drinking a six pack of Coke a day,

01:13:23 ◼   ► you're effectively eating like a bag of sugar.

01:13:26 ◼   ► - Yeah, your daily cake.

01:13:29 ◼   ► Right. So I, you know, in hindsight, it was a foolish bet to take. But it did. It was

01:13:35 ◼   ► a bad habit.

01:13:36 ◼   ► Yeah. No kidding.

01:13:37 ◼   ► Does coffee have a lot of calories? I don't know. I don't put anything in my coffee. So

01:13:41 ◼   ► I'm --

01:13:42 ◼   ► Yeah. I don't think it has that many.

01:13:44 ◼   ► Yeah. Because I figure, like, the most calories it could have is whatever it would be to eat

01:13:48 ◼   ► the equivalent in raw beans.

01:13:50 ◼   ► Yeah. Sure.

01:13:51 ◼   ► Yeah. So it can't be that bad.

01:13:52 ◼   ► Yeah.

01:13:53 ◼   ► I never --

01:13:54 ◼   ► You know, I've often wondered about popcorn, right? Because when -- if you're making popcorn,

01:13:57 ◼   ► you're only pouring out like a little bit of corn.

01:14:00 ◼   ► - Right. - It's not that much corn.

01:14:01 ◼   ► You could say it's a handful.

01:14:03 ◼   ► - Right.

01:14:04 ◼   ► And if you don't butter it- - It pops up big,

01:14:06 ◼   ► but it's, you know, how bad can it be?

01:14:08 ◼   ► - Yeah, I think- - Of course,

01:14:09 ◼   ► I butter it like crazy, but still.

01:14:10 ◼   ► - I think the problem with it is that corn

01:14:12 ◼   ► is such a sugary vegetable, right?

01:14:15 ◼   ► Like, you know, the argument I've heard

01:14:17 ◼   ► is it really shouldn't even count as a vegetable.

01:14:18 ◼   ► It's, you know, it's a lot of sugar.

01:14:21 ◼   ► - It's an industrial product these days.

01:14:23 ◼   ► - Yeah.

01:14:24 ◼   ► So I don't know, it might be,

01:14:25 ◼   ► it's not a lot, you're right though,

01:14:27 ◼   ► that it's, you know, like if you just ate the raw kernels,

01:14:30 ◼   ► it's not that much.

01:14:31 ◼   ► - Yeah.

01:14:32 ◼   ► - 'Cause I only make, I make about a half cup

01:14:34 ◼   ► and that's good for a big bowl for me and Amy and Jonas, so.

01:14:38 ◼   ► So I figure I only get what?

01:14:40 ◼   ► What's a third of a half?

01:14:44 ◼   ► - I don't know.

01:14:45 ◼   ► - Like once, I don't know.

01:14:47 ◼   ► Yeah, one sixth. - Sixth, yeah, okay.

01:14:50 ◼   ► Yeah, it's not that much.

01:14:51 ◼   ► How do you make your popcorn?

01:14:53 ◼   ► - We have this thing called a Whirlipop and we bought it.

01:14:55 ◼   ► This is like one of the best purchases I ever made.

01:14:57 ◼   ► I bought this thing in like 1999 at a,

01:15:00 ◼   ► like a Crate and Barrel.

01:15:03 ◼   ► And it's just a big, I don't know what it's made out of,

01:15:06 ◼   ► aluminum or something, a big aluminum pot.

01:15:10 ◼   ► And it has a handle with like a little crank on it

01:15:12 ◼   ► that turns like a little propeller at the bottom of the pan.

01:15:17 ◼   ► So you put it on the stove, put a little oil in there,

01:15:20 ◼   ► heat it up, medium high,

01:15:22 ◼   ► Wait until the oil is smoking.

01:15:25 ◼   ► And I use like a high heat safflower oil.

01:15:29 ◼   ► Wait till the oil is smoking,

01:15:30 ◼   ► then pour a half cup of popcorn in there

01:15:33 ◼   ► and you just twirl this thing on the handle

01:15:38 ◼   ► and it spins this propeller at the bottom of the thing

01:15:41 ◼   ► so that the kernels keep moving in the oil.

01:15:44 ◼   ► And then it takes about a minute

01:15:46 ◼   ► and you have fresh hot popcorn.

01:15:49 ◼   ► - Oh, cool.

01:15:50 ◼   ► - How do you make it?

01:15:51 ◼   ► - Maybe I'll check that out.

01:15:52 ◼   ► I've got a hot air popper.

01:15:55 ◼   ► So it's not popping in any oil or anything.

01:15:57 ◼   ► And if I were not to butter and salt the popcorn,

01:16:01 ◼   ► well, it'd be bland, but it would also be,

01:16:03 ◼   ► I suppose, healthier.

01:16:04 ◼   ► And it works nicely.

01:16:07 ◼   ► But I'm open to alternatives.

01:16:11 ◼   ► But then, so my main innovation though is,

01:16:15 ◼   ► obviously I melt the butter, just do it in the microwave,

01:16:17 ◼   ► but then I put a bunch of Tabasco in my butter,

01:16:19 ◼   ► So I have really spicy popcorn.

01:16:22 ◼   ► And it's good.

01:16:24 ◼   ► Oh, I like that.

01:16:25 ◼   ► Yeah.

01:16:25 ◼   ► And salt it?

01:16:31 ◼   ► Yeah, oh yeah.

01:16:31 ◼   ► Yeah, I got to salt the hell out of it.

01:16:33 ◼   ► If there's not a whole bunch of salt at the bottom of the ball, it's--

01:16:35 ◼   ► Then I've lost, yeah.

01:16:37 ◼   ► Yeah.

01:16:39 ◼   ► I haven't had hot air popcorn since the '80s,

01:16:42 ◼   ► when they first invented it.

01:16:43 ◼   ► And I remember then it was like a revolution.

01:16:48 ◼   ► Because it was--

01:16:48 ◼   ► I guess it's because I think in the 80s it was like in the whole like Jane Fonda workout

01:16:55 ◼   ► it was like when people first started getting health-conscious as like a

01:16:58 ◼   ► pop-cultural thing and if you make hot air popcorn and you don't do anything to it it was

01:17:04 ◼   ► You know, it was pretty good. You know, there's nothing you can complain about low-calorie

01:17:08 ◼   ► Sure. Yeah bad for you. Yeah, of course also no no flavor. No texture, but whatever

01:17:16 ◼   ► You know what? I don't like I tell you what I don't like and I know probably this is how most people make popcorn don't

01:17:20 ◼   ► Like the microwave popcorn. Nah, I can't do it

01:17:23 ◼   ► Did the penalty for doing it wrong when you burn it? Is that terrible terrible terrible smell?

01:17:30 ◼   ► Yeah, exactly away for a while and like it's having experienced that once, you know, it's just not worth the risk

01:17:36 ◼   ► Well, it's like hey, we're gonna put a movie in we're gonna watch a movie

01:17:40 ◼   ► I'll go make popcorn and it's at this point. It's nothing but good times ahead

01:17:46 ◼   ► Popcorn that I'm suddenly hungry for and a movie. I've never seen coming up

01:17:52 ◼   ► What could be a better way to spend an evening with the family and then you burn the popcorn in the microwave?

01:17:58 ◼   ► And then you're not hungry for it. You can throw it out and make another one, but it's like it's already

01:18:03 ◼   ► Yeah, the bad smell it turns you off of it. Yeah, right and now yeah

01:18:08 ◼   ► You just kind of want to watch the movie by now. You spent way too much time right in the kitchen, etc. Yeah

01:18:13 ◼   ► My favorite thing about my hot air popcorn popper though

01:18:17 ◼   ► I think is at the very end when almost all of its popped

01:18:19 ◼   ► Except for a few kernels and it just starts throwing them at me

01:18:23 ◼   ► Randomly, it's almost like a little like

01:18:26 ◼   ► It's kind of a violent exercise, which I don't mind. That's actually it's part of the poetry of it. I

01:18:33 ◼   ► Also, I also have a bad association with microwave popcorn, which is that I spent a year Drexel living in a dorm

01:18:39 ◼   ► It was just called they were just typical Drexel

01:18:44 ◼   ► It was just called the tower because I guess nobody gave him any money to put their name on it

01:18:48 ◼   ► 16 story

01:18:51 ◼   ► Dormitory and I was pretty high up. I forget what floor I was on but it was towards the top and

01:18:55 ◼   ► It had notoriously fickle smoke detectors. And so we had fire alarms

01:19:03 ◼   ► constantly. I mean it was just over and over and over again and of course once

01:19:07 ◼   ► there's a fire alarm you've got to take the steps and it was just the biggest

01:19:10 ◼   ► pain in the ass and inevitably it was always somebody burned microwave popcorn

01:19:15 ◼   ► of course and so it was like why can't we make a rule can't we just ban

01:19:22 ◼   ► microwave popcorn let's just ban it it's keep setting off and you know never

01:19:26 ◼   ► went anywhere. Although I never actually filed an

01:19:31 ◼   ► actual complaint that they should ban it. I just would complain. Yeah sure.

01:19:37 ◼   ► Alright let me thank every good college student. Yeah. Let me thank our final

01:19:42 ◼   ► sponsor. It's our good friends at Backblaze. Online backup, $5 a month,

01:19:49 ◼   ► native, it's unlimited, unthrottled, uncomplicated. You sign up for $5 a month.

01:19:55 ◼   ► it backs up your whole Mac, everything, your external drives to, to the cloud. You

01:20:02 ◼   ► think, well that must take a long time at first. Well it could, it could take, it

01:20:05 ◼   ► could take a couple days, might take a week depending on your broadband, but

01:20:09 ◼   ► then once you've got that initial backup complete, it's all incremental, it happens

01:20:13 ◼   ► in the background, you don't have to do anything, you just install their

01:20:17 ◼   ► native Mac app. It's written by app, ex-Apple engineers, it's cool app, doesn't

01:20:23 ◼   ► screw up your system in any way and without doing anything your entire Mac

01:20:29 ◼   ► is backed up to the cloud. There's no add-ons, there's no gimmicks, there's no

01:20:35 ◼   ► additional charges. You just pay five dollars per month per computer for

01:20:40 ◼   ► unlimited un-throttled backup. I always say when I when I do these reads I

01:20:47 ◼   ► always say you know the best part about this is that it's off-site. You know that

01:20:50 ◼   ► having a backup next to your computer on a super-duper clone drive or a...

01:20:57 ◼   ► I'm drawing a blank. What's the thing on Mac OS X called?

01:21:04 ◼   ► Time capsule.

01:21:06 ◼   ► Time machine. Right? A time machine driver, a time capsule.

01:21:09 ◼   ► That stuff's great too, and it's convenient and it's faster. But I'll tell you what.

01:21:12 ◼   ► Here's a perfect example. I was just last night, one day ago,

01:21:15 ◼   ► Jonas's Little League is starting up and we had a get to know the

01:21:20 ◼   ► team meeting with the other dads. And there was another kid who we played with two years

01:21:26 ◼   ► ago so I already knew his dad and we were like, "Hey, what's up? What's been going on?"

01:21:30 ◼   ► Ends up that just six months ago, they had a fire in their house. They've been living

01:21:36 ◼   ► in an apartment since. It wasn't too bad. Nobody got hurt. It was a--something happened

01:21:40 ◼   ► with their dryer at like seven and they were just running the dryer down in the basement.

01:21:45 ◼   ► the thing his home office was in the same basement his computer was right

01:21:49 ◼   ► there and his backup was on an external hard drive right next to his computer

01:21:57 ◼   ► that's the exact type of situation where backblaze can save literally save save

01:22:02 ◼   ► your save your data because having that drive right next to your computer

01:22:06 ◼   ► something like that happens you need an off-site backup he ended up getting

01:22:11 ◼   ► lucky he actually got to save his data but he had to go through one of those expensive

01:22:18 ◼   ► drive saver things. It was like the actual enclosure was destroyed but one of those expensive

01:22:25 ◼   ► data saver things got his stuff off this drive. But you could say even in that case where

01:22:33 ◼   ► the good news is he saved his data could save a lot of money but $5 a month using backplays.

01:22:38 ◼   ► And a lot a lot of anxiety saved exactly you sleep when you use backblaze and you have an off-site backup it you sleep better

01:22:45 ◼   ► Trust me. Yeah, where do you go to find out more?

01:22:47 ◼   ► www back blaze

01:22:50 ◼   ► calm

01:22:52 ◼   ► daring fireball

01:22:53 ◼   ► I've gotten a lot better at that since they're a regular sponsor. I used to first couple times

01:22:57 ◼   ► I would always say black bays black razor and ends up that they

01:23:03 ◼   ► They have that domain

01:23:07 ◼   ► Do this good for them

01:23:09 ◼   ► Yeah, black blaze comm redirects to back blaze comm

01:23:15 ◼   ► So you can go either way

01:23:18 ◼   ► Alright, here's one more thing. I want to talk about

01:23:21 ◼   ► little thing and it seems like the type of thing that you would have an opinion on I do too and that is

01:23:29 ◼   ► That Google has recently stopped underlining links in there

01:23:37 ◼   ► search results.

01:23:40 ◼   ► I do have an opinion about that.

01:23:43 ◼   ► And The Verge had a story on this where they sort of like, they said like, they gave Google

01:23:48 ◼   ► like a welcome to 1998, you know, as though underlining links, you know, has been outdated

01:23:56 ◼   ► for 10 years or something like that.

01:23:59 ◼   ► I plan to underline links on Daring Fireball until the end of time.

01:24:06 ◼   ► your opinion on this? Well, I don't underline links on my blog. Probably the first thing

01:24:13 ◼   ► I do in setting up a new CSS file for any new site is to turn off link underlining.

01:24:18 ◼   ► So, yeah, welcome to 9/10/98. True. On the other hand, in this particular case, underlying

01:24:25 ◼   ► links on the Google search results is just the way Google search works. When they turned

01:24:32 ◼   ► that off, I felt like my brain couldn't understand what I was looking at.

01:24:39 ◼   ► The UI of their search result is something so many people are familiar with.

01:24:45 ◼   ► It's almost like we understand it in some deeper part of our brain by now, just because

01:24:48 ◼   ► it's so familiar and so used.

01:24:50 ◼   ► For them to make a change like that, it burns a bunch of brain cells, even though it seems

01:24:57 ◼   ► like such a small thing.

01:25:00 ◼   ► I feel like we have the opposite opinion where I feel like I didn't even notice that Google

01:25:07 ◼   ► turned them off because I feel like everything in Google search results is a link.

01:25:14 ◼   ► Whereas what I'm thinking is within Daring Fireball that when an individual word in a

01:25:19 ◼   ► story is a link, I want it to be underlined and in other ones too.

01:25:26 ◼   ► I just feel like if a word in an article is a link, to me that's what underlining means.

01:25:33 ◼   ► Underlining means this is a link.

01:25:35 ◼   ► But I didn't even notice it in Google because I just assumed that everything is a link.

01:25:39 ◼   ► Surprisingly, things aren't a link like the actual URL on the search results page is not

01:25:45 ◼   ► a link, which bothered me for years.

01:25:48 ◼   ► How can you show me a URL that isn't a link?

01:25:51 ◼   ► Yeah, that still is weird to me.

01:25:53 ◼   ► Yeah.

01:25:54 ◼   ► And I don't know the answer.

01:25:56 ◼   ► Yeah, and now that they're not underlining them, it seems even weirder, right?

01:26:00 ◼   ► Because the blue things, the blue and purple ones are links, but the green ones aren't,

01:26:05 ◼   ► even though they are the URL.

01:26:07 ◼   ► So I felt like at least when they were underlining them, there was some consistency there where

01:26:10 ◼   ► only the underlined things are links.

01:26:15 ◼   ► But I tried to keep an open mind about this.

01:26:18 ◼   ► So here's my thinking.

01:26:19 ◼   ► My thinking is that in traditional typography, and Guy English and I were talking about this

01:26:23 ◼   ► a couple weeks ago. You should never underline anything. Like the whole thing that some of

01:26:28 ◼   ► us grew up with, like a book title should be underlined in a report or something like

01:26:33 ◼   ► that, was all because it was pre-word processing in computers. It was based on what you could

01:26:39 ◼   ► do on a typewriter.

01:26:40 ◼   ► Since you couldn't italicize on a typewriter, underlining was the best we could do. And

01:26:44 ◼   ► so like when you were typing a manuscript for a book, if you wanted a word italicized,

01:26:50 ◼   ► underline it. It was a, you know, that's what the, when the manuscript would go from the editing to

01:26:55 ◼   ► the typesetters, when they saw something underlined, they wouldn't underline it in the actual novel,

01:27:00 ◼   ► they would italicize it. And that if you can use proper italics and bold and even small caps and

01:27:08 ◼   ► and all sorts of nice typographic things like that, there's never any reason to underline

01:27:13 ◼   ► anything. And so I thought one of the genius things of the original web was that they took

01:27:19 ◼   ► this needless type of graphic thing, the underlining, and gave it a new meaning, which meant instead

01:27:27 ◼   ► of giving it emphasis or indicating a title or something like that, it meant this is a

01:27:31 ◼   ► link.

01:27:32 ◼   ► Mm-hmm.

01:27:33 ◼   ► Yeah, and that was a smart move.

01:27:38 ◼   ► Just that aesthetically, though, a lot of sites don't look so great with all those underlines.

01:27:43 ◼   ► Your site's different, though.

01:27:44 ◼   ► You're not using color for your links.

01:27:46 ◼   ► Yeah.

01:27:47 ◼   ► use one or the other. And since you're not using color, you have to have an underline,

01:27:52 ◼   ► for sure.

01:27:52 ◼   ► Yeah, I thought about that. Like I said, I want to keep an open mind. I thought, "Well,

01:27:58 ◼   ► maybe I should reevaluate that." But then I thought, "Well, then how would I indicate

01:28:02 ◼   ► a link because I don't have a color palette to work with?" And if I picked a subtle—I

01:28:07 ◼   ► think something subtle that would fit with the daring firewall color scheme would be

01:28:11 ◼   ► a huge usability nightmare because it would be too easy to miss that it's a link.

01:28:18 ◼   ► Yeah, right.

01:28:21 ◼   ► But do you worry about like—because I think about that. I try to think about color blindness

01:28:27 ◼   ► and stuff like that. Do you worry on Inessential that your links don't stand out to people

01:28:31 ◼   ► who are color blind?

01:28:34 ◼   ► I don't worry, probably because no one's ever complained. Maybe that's a cop-out.

01:28:40 ◼   ► But I also think, at least I hope, that the accessibility stuff has progressed to the

01:28:45 ◼   ► point where it deals with those kinds of things for me.

01:28:49 ◼   ► Because at that level, the software knows what's a link and what isn't and can do the

01:28:53 ◼   ► appropriate things.

01:28:54 ◼   ► I don't think that I'm – is there something though if you're colorblind that you can set

01:28:58 ◼   ► your browser to somehow always highlight links in a color?

01:29:03 ◼   ► I'm not aware of anything like that.

01:29:05 ◼   ► I don't know.

01:29:06 ◼   ► You know, I haven't looked at it enough.

01:29:07 ◼   ► I think that for the truly vision impaired, for people who are blind or nearly blind who

01:29:13 ◼   ► use special software for that, then it does highlight links.

01:29:18 ◼   ► I think for people whose only issue with their vision is color blindness, depending on what

01:29:28 ◼   ► colors you pick.

01:29:29 ◼   ► I know that there's some cool apps that you can use that test, that simulate this using

01:29:36 ◼   ► common forms of color blindness.

01:29:40 ◼   ► But you think underlining, you think it's okay to not underline links?

01:29:46 ◼   ► Yeah.

01:29:47 ◼   ► Well, we've been doing it.

01:29:48 ◼   ► We've been not underlining links for many, many years now.

01:29:53 ◼   ► And the web seems to have gotten by okay.

01:29:56 ◼   ► It does make.

01:29:58 ◼   ► And so for example, and it's in a way that like you said, like the way that Google search

01:30:02 ◼   ► results are laid out of have sort of like somehow it insinuated themselves

01:30:07 ◼   ► just one level up from our lizard brains yeah over the years and I think that

01:30:11 ◼   ► explains why all other search engines effectively copy that style I don't even

01:30:16 ◼   ► think it's like a shamelessness I think it's because we you know like Bing for

01:30:20 ◼   ► example is large you know the search results are largely formatted it's not

01:30:26 ◼   ► exactly a pixel for pixel clone but it's pretty much the same fonts and sizes as

01:30:30 ◼   ► as Google, I almost think it's because if they didn't, it would just be automatically

01:30:36 ◼   ► rejected.

01:30:37 ◼   ► Yeah, I think that's right. When people talk about something being intuitive, what they

01:30:42 ◼   ► often really mean is, "Oh, it works just like this other thing I know about already." So

01:30:47 ◼   ► that's the case. Bing's intuitive as long as it looks and works like Google.

01:30:52 ◼   ► Right. I don't know if it's a good analogy or not, but remember when Pepsi came out with

01:30:59 ◼   ► Crystal Pepsi.

01:31:01 ◼   ► It was cola and it tasted like Pepsi, but it was clear like Sprite.

01:31:07 ◼   ► And it lasted, I think, about a week.

01:31:10 ◼   ► And I think it was because people, you know, if it tastes like Coke or Pepsi, it tastes

01:31:13 ◼   ► like a cola, it has to be brown.

01:31:15 ◼   ► And I feel like the same way, I feel like if you made like a lemon-lime soda, something

01:31:22 ◼   ► like a Sprite or a 7-Up, but you colored it like Pepsi, it would be revolting.

01:31:27 ◼   ► revolting

01:31:28 ◼   ► Yeah, be terrible. Yeah, you wouldn't you know, and I feel like you were just hooked up to expect search results to look like that

01:31:34 ◼   ► I have to admit though

01:31:36 ◼   ► Now that I just quick toggle between a Bing result and Google result that the lack of underlines in the Google result does look pretty

01:31:43 ◼   ► clean

01:31:45 ◼   ► Mm-hmm

01:31:47 ◼   ► Yeah, it's just struck me as very weird though and then hasn't stopped striking me in that way but you definitely noticed yeah

01:31:54 ◼   ► Oh, yeah right away. I'm like, ah

01:31:56 ◼   ► Yeah, I cursed at it actually.

01:32:02 ◼   ► It is the sort of thing.

01:32:04 ◼   ► For all the stuff, the other various things that Google does, I mention this every couple

01:32:09 ◼   ► weeks on the show.

01:32:10 ◼   ► It's just that there's an Android I'm not a fan of and there's all sorts of stuff about

01:32:14 ◼   ► it.

01:32:15 ◼   ► Google that pundit wise, I'm probably, if you want to say pro-Google or anti-Google,

01:32:22 ◼   ► I'm anti-Google.

01:32:23 ◼   ► I still have to say Google search is, to me, one of the eight wonders of the modern world.

01:32:35 ◼   ► Even if you think about it, you can't help but take it for granted.

01:32:41 ◼   ► And I think Google knows that internally because they've toyed with the advertising that they

01:32:46 ◼   ► place in some ways.

01:32:47 ◼   ► And I know that recently that they've sort of toggled the way that they've made the

01:32:55 ◼   ► paid sponsored results a little bit less easily discerned from the regular results.

01:33:03 ◼   ► But on the whole, given how important it is to the company and how much of the revenue

01:33:07 ◼   ► comes from search ads and everything, they've stayed incredibly true to the original idea

01:33:13 ◼   ► of Google search all the way back to, I don't know, 1996 or whenever it was when it was

01:33:19 ◼   ► a beta. 99, I don't even know. But it's...

01:33:23 ◼   ► Yeah, it's still very recognizably the same thing. I think the thing I don't like is integration

01:33:31 ◼   ► with the Google+ social graph and trying to figure out what I want to see based on what

01:33:39 ◼   ► my friends have searched for or something. I don't even know how that stuff works. It's

01:33:42 ◼   ► no I want the I want what your regular algorithm would give me you know yeah

01:33:48 ◼   ► exactly I want you to know nothing about me yeah yeah basically you know and like

01:33:54 ◼   ► if I wanted to search for something local I would you know like a Yelp type

01:34:01 ◼   ► thing where I want to find you know a good bagel place near where I am right

01:34:06 ◼   ► now I would use something specific I wouldn't I don't want Google search to

01:34:09 ◼   ► to solve that problem for me.

01:34:11 ◼   ► I mean, Google can give me something to do that,

01:34:13 ◼   ► but make it like a separate like Google local

01:34:16 ◼   ► or something like that.

01:34:17 ◼   ► I want google.com search to just be generic.

01:34:21 ◼   ► Everybody in the world who types in the same thing as me

01:34:23 ◼   ► should get the same results.

01:34:25 ◼   ► - Yeah, this is kind of the front page of the web

01:34:30 ◼   ► that we all have in common.

01:34:31 ◼   ► - Yeah, I would say so, exactly.

01:34:35 ◼   ► Last thing I wanna talk about

01:34:38 ◼   ► I want to talk about your new podcast and that's what's called the record

01:34:44 ◼   ► Mm-hmm, you're doing it with our mutual good friend Chris Parrish

01:34:49 ◼   ► So tell me about the record

01:34:54 ◼   ► so for a few years I

01:34:56 ◼   ► had this in mind as a project where I wanted to

01:35:00 ◼   ► capture the history of our of our developer community Mac and now iOS developers and

01:35:07 ◼   ► For some part of the time I thought about doing it as a book

01:35:10 ◼   ► But then about two years ago I realized, you know, this is probably better as a podcast

01:35:16 ◼   ► You know can always be transcribed or bookified later, but the easiest way is to actually just record the interviews and publish them

01:35:23 ◼   ► so I thought about that for a while and then it became a little more urgent to me when I saw at the

01:35:30 ◼   ► experience music project museum here in town a Nirvana exhibit and

01:35:36 ◼   ► I was lucky enough to go to go to college and in

01:35:40 ◼   ► Olympia in the late 80s and saw Nirvana play at dorm rooms and everything so

01:35:45 ◼   ► Went to this exhibit and you know, they had things that you know roommates and friends of mine

01:35:50 ◼   ► You know were involved with and there was a lot of like my own

01:35:54 ◼   ► Personal history, you know right there, but then I also realized there's a whole lot of stuff that happened

01:36:02 ◼   ► Then that just was never recorded

01:36:05 ◼   ► You know a whole lot of history and stories just gone because if you didn't realize at the time it was special

01:36:11 ◼   ► Even though it was and it's a lot of type of stuff

01:36:15 ◼   ► It's such a great great show, but it's stories that I you know

01:36:19 ◼   ► some of them I've heard but a lot of them are things that you hear at like

01:36:23 ◼   ► You know six o'clock having beers on a Wednesday during WWDC

01:36:30 ◼   ► You know, and they're not like you said they're not recorded anywhere, right?

01:36:34 ◼   ► And you say like hey, here's so-and-so. I haven't seen this guy in ten years

01:36:38 ◼   ► What are you up to and then it's remember that time or remember this and then you get the story

01:36:43 ◼   ► But then it's you know, like you said it's not recorded anywhere

01:36:46 ◼   ► Which sort of you know plays right in to the title of the show the record. Mm-hmm. Yep

01:36:52 ◼   ► It's a lot of fun to do and Chris I have you know

01:36:57 ◼   ► Great plans for the future. There's all kinds of all kinds of

01:37:01 ◼   ► one season I hope we do is

01:37:04 ◼   ► um, uh, early indie heroes.

01:37:07 ◼   ► So the idea would be to record the people who were Indies, uh, before me.

01:37:13 ◼   ► So people like rich Segal, Dave Weiner, Mark Aldridge, uh, Peter Lewis.

01:37:19 ◼   ► Uh, there's, there's a whole bunch of people and I would just love that because

01:37:22 ◼   ► there's a lot of history there that I don't even know, but I I'm sure these

01:37:26 ◼   ► folks would have some great stuff.

01:37:27 ◼   ► I would imagine that I think I really do.

01:37:30 ◼   ► And I'm just saying this cause it's cause I'm your friend.

01:37:32 ◼   ► I really do think, it's such a great show,

01:37:34 ◼   ► but I really do think that for people

01:37:36 ◼   ► who listen to the talk show,

01:37:38 ◼   ► who are looking for more shows to listen to,

01:37:40 ◼   ► man, this has gotta be right up their alley.

01:37:43 ◼   ► And I think it gets easily also separated

01:37:47 ◼   ► and for two reasons.

01:37:48 ◼   ► One, people who've never heard of these things,

01:37:51 ◼   ► they're great stories, and it's some great products

01:37:55 ◼   ► and technologies and stuff that maybe they'll hear about

01:37:57 ◼   ► for the first time.

01:37:58 ◼   ► And in the second group, probably, you know,

01:38:01 ◼   ► let's just face it, the maybe slightly older group,

01:38:04 ◼   ► or people, and/or people who have at least been

01:38:07 ◼   ► using a Mac or doing nerdy stuff on a Mac

01:38:10 ◼   ► for a longer period of time,

01:38:12 ◼   ► who are gonna hear about these things again

01:38:15 ◼   ► and be like, oh my God, I totally forgotten about that.

01:38:18 ◼   ► And you guys, if you just go,

01:38:20 ◼   ► the website is therecord.co, which is, I've told you,

01:38:24 ◼   ► is an incredibly awesome domain name.

01:38:26 ◼   ► Go to therecord.co and you'll see,

01:38:29 ◼   ► there's six episodes so far.

01:38:30 ◼   ► You guys, in addition to doing great shows,

01:38:33 ◼   ► you guys kill it and just absolutely positively

01:38:37 ◼   ► put me to shame on the show notes.

01:38:40 ◼   ► - I love doing the show notes.

01:38:42 ◼   ► So Chris does the editing, I do the show notes.

01:38:44 ◼   ► And I just, I basically sit down with headphones on

01:38:46 ◼   ► and every time there's any proper noun of any kind,

01:38:50 ◼   ► I type it up until I have, you know,

01:38:53 ◼   ► anywhere from 75 to 150 or so,

01:38:56 ◼   ► and I have to go find links for everything.

01:38:59 ◼   ► - But it's phenomenal.

01:39:00 ◼   ► And if you just go through, and especially if you were around in the late 80s, early

01:39:05 ◼   ► 90s, IndyMac community, or just the Mac nerd community at all, you're going to see keywords

01:39:14 ◼   ► in your list of these things.

01:39:15 ◼   ► And you're going to be like, "I totally forgot about that."

01:39:17 ◼   ► One of the ones that stuck out to me was from an episode a couple of shows ago, and this

01:39:22 ◼   ► was just in the show notes, but MetroWorks Ron.

01:39:25 ◼   ► I had totally forgotten about him.

01:39:28 ◼   ► Yep.

01:39:29 ◼   ► I had totally forgotten about MetroWorks, Ron.

01:39:32 ◼   ► Yeah.

01:39:33 ◼   ► What a guy.

01:39:34 ◼   ► What a great time that was, too.

01:39:36 ◼   ► It was a fantastic time.

01:39:37 ◼   ► Oh, yeah.

01:39:38 ◼   ► Because I think that that was the whole time.

01:39:40 ◼   ► I mean – because I'd say the MetroWorks time was probably the mid-'90s.

01:39:48 ◼   ► And so it coincided not – I think by definitely not coincidentally with the decline of Apple,

01:39:56 ◼   ► right?

01:39:57 ◼   ► time when Apple was in trouble. Tough period, yeah. Tough period. Where the indie

01:40:04 ◼   ► Mac developer community has never, was never before and has never since been so

01:40:11 ◼   ► independent of Apple. Like to call them an indie community is understating it. It

01:40:16 ◼   ► really was like there were two worlds. There was the Apple world and the indie

01:40:21 ◼   ► Mac world. And the indie Mac world was way ahead. You know, we had our own, you

01:40:26 ◼   ► We had Metro works. We had our own development environment, which was better than what Apple was shipping

01:40:31 ◼   ► You know and you mentioned Peter Lewis like Peter Lewis almost single-handedly brought the internet to the Mac. Oh

01:40:40 ◼   ► Yeah, I mean and with all sorts of you know between anarchy and Mac TCP watcher and all this stuff. Yeah finger

01:40:48 ◼   ► Finger. Yeah, right finger used to be an important tool. I

01:40:53 ◼   ► I know that the people who don't remember it are probably,

01:40:57 ◼   ► I'm gonna guess, very wrong with what Finger did.

01:41:00 ◼   ► But if you wanted the Finger from the Mac,

01:41:05 ◼   ► Peter had you covered.

01:41:07 ◼   ► - Yeah.

01:41:08 ◼   ► - But it's ridiculous to think back that Mac TCP

01:41:16 ◼   ► was a third party tool.

01:41:20 ◼   ► So if you wanted to get your Mac on the internet,

01:41:22 ◼   ► You needed a third party tool.

01:41:25 ◼   ► - And then you had to get a Mac slip or whatever.

01:41:28 ◼   ► Mac PPP, yet another thing, right?

01:41:31 ◼   ► To hurt your modem and all this stuff.

01:41:34 ◼   ► Once you were on the web, wow, that was amazing.

01:41:37 ◼   ► - And all that stuff came from outside Apple.

01:41:39 ◼   ► Fantastic show.

01:41:43 ◼   ► Again, I'm not just saying this because Brent's my friend,

01:41:47 ◼   ► but I really think that talk show listeners are going to,

01:41:49 ◼   ► if you haven't already subscribed,

01:41:50 ◼   ► gonna love this show and just by looking at the show notes it should convince you

01:41:57 ◼   ► and the website is the record co latest episode is Tim wood CTO of Omni group

01:42:04 ◼   ► Tim's fantastic obviously you should know about the Omni group what's cool

01:42:09 ◼   ► about them is they're all nexties rather than Apple right which is yeah

01:42:13 ◼   ► interesting I wasn't there for that those stories so it's really cool to

01:42:17 ◼   ► here.

01:42:18 ◼   ► Yeah, I bet those are great. I bet that's great. I did not know he was CTO.

01:42:23 ◼   ► Yeah.

01:42:24 ◼   ► He's a good guy.

01:42:26 ◼   ► Definitely. Yeah, well, the best.

01:42:27 ◼   ► Let me see. I'm going to pick something from the show notes there. Oh, Will Shipley. There

01:42:35 ◼   ► you go. You know it's a good show if Will gets mentioned. Anyway, there you go. Find

01:42:44 ◼   ► out more at therecord.co. Brent, thanks for being on the show.

01:42:47 ◼   ► Thanks, John

01:42:49 ◼   ► I'll talk to you soon. Yeah, cool

01:42:53 ◼   ► Thank you.

01:42:54 ◼   ► [ Silence ]