Podcast Search

The Talk Show

75: We Used to Finger Each Other

Select a time to play from there. The line being spoken is highlighted as the audio plays.

0:00:00I got a lot to talk about.

0:00:02So you have been blogging--

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

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

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

0:00:18mode there.

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

0:00:23for the last couple of months.

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

0:00:30They feed each other.

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

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

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

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

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

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

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

0:00:57I suppose I'd have more time.

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

0:01:02So I really like writing.

0:01:04I was a writer before I was a coder,

0:01:06and I'll probably be a writer after I'm a coder.

0:01:08And so, you know, it makes me happy, it makes me,

0:01:12it also lets me work stuff out, kind of in public,

0:01:14and get feedback and learn things.

0:01:16A lot of the stuff I've been doing,

0:01:19I've literally been like, I have a problem.

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

0:01:24I just happen to write it in Mars Edit

0:01:25then press publish at the end.

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

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

0:01:37in with the answer?

0:01:38Both, actually.

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

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

0:01:50or big ways about what I decided.

0:01:53I mean, it is far from an original observation.

0:01:58It's a famous observation, but writing is thinking.

0:02:02And if you can't write it out, you

0:02:07haven't thought it through.

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

0:02:11I'm always-- I always want to be ready when I'm writing

0:02:13something out.

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

0:02:17if it's not an open-ended question,

0:02:20be careful that by the time you get to the end,

0:02:22you haven't changed your mind.

0:02:23and you don't know it, you know, and don't be, you know,

0:02:25and then you may have to go back and rewrite the whole thing

0:02:28but don't be afraid to do that.

0:02:29And I can't tell you how many times,

0:02:31like a piece of longer pieces for "Daring Fireball"

0:02:33by the time I get to the end, I think, wait a second,

0:02:36I've just convinced myself at the other point

0:02:39just by writing it all out.

0:02:40- Yeah, I'm not surprised.

0:02:42It's certainly the same way for me.

0:02:44That's a very common thing.

0:02:47- I have a lot of developer friends though,

0:02:49who I find, you know, and who on and off over the years

0:02:53have had very enjoyable, to me, blogs

0:02:57that go dark for huge periods of time.

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

0:03:01I won't give them a hard time about it,

0:03:03but if I'll say something to them about it,

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

0:03:09"programming or working that it's like that."

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

0:03:14like you said, it's the other way around.

0:03:16Like when you're most productive working,

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

0:03:23though.

0:03:24Yeah, that's true.

0:03:25Yeah, I love blogging.

0:03:26I've been doing it since 1999.

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

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

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

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

0:03:51And when I'm happy, I'm productive.

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

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

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

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

0:04:20can get into more technical discussions.

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

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

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

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

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

0:04:552006.

0:04:56Yeah, close to 10 years ago, I think.

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

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

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

0:05:16Yeah, that's true.

0:05:20Part 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.

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

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

0:05:38to do what we're doing.

0:05:39There's still a lot of fiddliness.

0:05:41Right, and for the non-programmers out there,

0:05:43a pointer is a variable that points to a space in memory

0:05:48directly.

0:05:49And if you screw up a pointer, you're

0:05:52probably going to crash, right?

0:05:53I mean, that's safe to say, or the program's

0:05:56going to go awry.

0:05:57Right, things will go wrong.

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

0:06:03house and the address of your house.

0:06:05Yes.

0:06:06Right.

0:06:07So the pointer is the address of your house.

0:06:08Right.

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

0:06:12Right.

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

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

0:06:20a bath in somebody else's house.

0:06:22Yeah, right.

0:06:23Everyone's surprised and shit burns down.

0:06:26Yep.

0:06:27I was gonna make another analogy, but I think I

0:06:30Don't want to tempt the explicit monitors that I

0:06:34Yeah, I was going there my head too

0:06:39So I love I'm a sucker for

0:06:50Especially as I get older. I'm a sucker for analogies

0:06:55of like such and such is as old now as blank was then.

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

0:07:06I think this is true, right?

0:07:10Yeah, we're about as far away from the time

0:07:16of the first Back to the Future movie

0:07:17as Back to the Future was from 1955

0:07:21or whatever year it was they went back to, right?

0:07:23It was like 30, he went back in time 30 years.

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

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

0:07:33as when he went back, it felt like he went back

0:07:35to the Stone Ages, right?

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

0:07:39- Right.

0:07:40- Yeah.

0:07:41- So objective C is a really weird thing

0:07:46that was glommed on top of C, right?

0:07:50It was the people, the geniuses behind it.

0:07:54C had no object orientation built into it.

0:07:57But C is sort of was and still probably is

0:08:00sort of the bedrock language of all programming.

0:08:03- Yeah, and is remarkably plastic.

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

0:08:07- Right.

0:08:08But everybody agrees, I think,

0:08:12and agreed, certainly agreed when it first came out

0:08:14that its syntax is weird because they'd said,

0:08:17look, it's just a superset of C.

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

0:08:25you can do these other things, largely with square brackets,

0:08:30and make it object oriented.

0:08:34And they did this because they had good C compilers

0:08:38that they could build on top of.

0:08:39And they just needed to-- like the first versions

0:08:41of Objective-C, it was just a preprocessor, right?

0:08:44As I recall.

0:08:45Yeah, that's right.

0:08:45That's like the story, just sort of behind the scenes,

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

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

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

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

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

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

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

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

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

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

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

0:09:5920 years old at the time. Whereas now Objective C has been around, at least in

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

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

0:10:18foundation of the whole next derived operating systems for longer than C

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

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

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

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

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

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

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

0:11:03changes, you know lots of

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

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

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

0:11:25It is it is easier to write apps than it was

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

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

0:11:39Blocks are a big part of that for instance it makes

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

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

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

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

0:12:09during the

0:12:11gold rush era of

0:12:13iOS development like the first let's say let's say 2008 2009

0:12:20when it became a huge sensation to be writing iPhone apps and

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

0:12:32Here'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

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

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

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

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

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

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

0:13:17It became like a healthy-sized community,

0:13:20but still a niche in the overall programming community.

0:13:24And then with the iPhone, it became

0:13:27one of the top languages in the entire industry.

0:13:30Yeah, I never expected that to happen.

0:13:32And I think to all those programmers,

0:13:35and the weirdnesses of it just--

0:13:39it was like, are you guys kidding me?

0:13:42Right?

0:13:43Yeah.

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

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

0:14:00than apps on competing platforms.

0:14:03Right.

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

0:14:08One of the things that some people object to is the fact that...

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

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

0:14:27It tends to be very verbose and explicit.

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

0:14:36They're going to spell that out.

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

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

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

0:14:56I think is controversial.

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

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

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

0:15:14But it really makes for nicely readable code

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

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

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

0:15:37Think I tended toward using real words over abbreviations, right?

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

0:15:50but you know, I think I

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

0:15:56So 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

0:16:04a time before

0:16:06most editors had autocomplete and stuff like that like

0:16:09Famously, I think that in the early years

0:16:12Next developers were using textedit to write

0:16:16to write their code

0:16:18Ouch

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

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

0:16:33So compare and contrast with with Microsoft and Microsoft has moved

0:16:38It's not that you can't write

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

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

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

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

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

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

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

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

0:17:30You 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

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

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

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

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

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

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

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

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

0:18:28imagining a scripting language where instead of picking one specific language and saying

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

0:18:40What if and there was a language that had these features?

0:18:44and

0:18:47The 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

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

0:19:04That are sometimes hard to track down

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

0:19:15this would be a

0:19:17In a

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

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

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

0:19:38that and that to you pointed out would be the

0:19:42The 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

0:19:49little bit of

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

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

0:20:05right

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

0:20:14which is

0:20:17Not quite as opaque as a binary

0:20:19the binary code but fairly close

0:20:22so

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

0:20:29getting getting

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

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

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

0:20:46Publish the source code and you put an official license on it

0:20:52you know, the MIT license or the BSD license or, you know, the GPL or something like that

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

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

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

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

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

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

0:21:36and there's the HTML and the JavaScript and the CSS for your website.

0:21:42What would happen if our apps were more like that?

0:21:45I think that's a very interesting what if.

0:21:49I think I'd actually really enjoy that a lot.

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

0:21:55It would give me more to write about and more concrete

0:21:58examples.

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

0:22:02See what I did there?

0:22:03What do you think of that?

0:22:04That kind of thing.

0:22:06I'd really like that.

0:22:07And if other people could learn from it

0:22:09or tell me how I can do things differently, et cetera,

0:22:14that would be really cool.

0:22:15I mean, I enjoy that.

0:22:16I think the web community has had a lot of that,

0:22:18and we have not.

0:22:20- Yeah, and I don't think that that lowercase,

0:22:24oh, open source nature of the web

0:22:27hurt the innovative designers and developers

0:22:31who made the most, and still make,

0:22:35the most clever designs and figure out the coolest tricks.

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

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

0:22:53type ripoffs.

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

0:23:01format.

0:23:05But I don't know that that really...

0:23:07- As annoying as it can be,

0:23:09and I've certainly seen it over the years,

0:23:12I think as the daring fireball design gets older,

0:23:14it's not happened as much recently,

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

0:23:20and it's annoying,

0:23:21but it's not like anybody's ever ripped it off

0:23:23and set me back, right?

0:23:25Like I've never lost a reader

0:23:27because somebody has a site that's a clone of mine.

0:23:30I've never lost a advertising dollar because of it.

0:23:33And usually if you send a person,

0:23:36If somebody, you know, if you send them an email and say,

0:23:39"Hey, that's not cool," they change it.

0:23:41- Yeah.

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

0:23:44that that's not cool.

0:23:45I'm not sure that it would, you know,

0:23:50that the effect wouldn't be similar with apps.

0:23:53- Yeah, I kind of feel like it would be.

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

0:23:57does the rip off, right?

0:23:58They just kind of reskin things,

0:24:00change it from blue to green,

0:24:02publish it with their own name,

0:24:05and make money that we should have made.

0:24:09But again, that's like someone will notice

0:24:11and someone will write to them.

0:24:13You know, there are mechanisms for handling

0:24:15that kind of bad behavior.

0:24:17But in general, people would learn from.

0:24:20I know I would love to see the source

0:24:22for other apps sometimes.

0:24:23I'm like, how did they do that?

0:24:25I'd love to know.

0:24:26- Especially if it wasn't entirely copy and pasteable.

0:24:31Like if there was just a wee bit of,

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

0:24:39in there so that somebody who truly just has the intention

0:24:44of cloning the app couldn't quite just copy and paste

0:24:46the whole app bundle.

0:24:48But if most of the app were like that,

0:24:50and if you saw this cool effect of the way

0:24:55that a little action sheet pops off the screen,

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

0:25:02that it's dismissed, it's another way,

0:25:04and you want to see how did they do that.

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

0:25:08They did it this way.

0:25:11I think most programmers who are beyond the beginning stage

0:25:16aren't really looking for a copy and paste code,

0:25:18at least when it comes to iOS and Mac apps.

0:25:20They're looking for techniques.

0:25:21They want to understand how you did something.

0:25:24They don't necessarily want that code.

0:25:26But if they can see how you put that together,

0:25:28how you got a certain effect or whatever,

0:25:30then they can duplicate that in their own way

0:25:33in their own code rather than copy and paste.

0:25:36- Right.

0:25:37- And you know, it's a cool thing.

0:25:39- Let me take a break.

0:25:40Let me take our first break and thank our first sponsor.

0:25:43And it's our good friends at Transporter, File Transporter.

0:25:48Basic idea, they've been on the show before,

0:25:51but if you haven't heard of them,

0:25:52basic idea is it's sort of like Dropbox,

0:25:55except you buy a hardware device or more of them,

0:26:00multiple of them and spread them around.

0:26:02and you get Dropbox like anywhere you are,

0:26:06any device you're on, access your data,

0:26:08except it's 100% private because your data is

0:26:12stored on your device or your devices and nowhere else.

0:26:18The cloud is only used for coordinating your file

0:26:24transporters and your devices, your Macs, your iPhones,

0:26:30to connect through the various firewalls and et cetera,

0:26:34to talk to your file transporters.

0:26:37These guys have been around for,

0:26:38I think a little over a year,

0:26:40and I just cannot, I can't even imagine how,

0:26:44I can't even imagine how good their timing is

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

0:26:50regarding government spying and stuff like that

0:26:55on cloud-based services, and the concern people have

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

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

0:27:12It's just amazingly good timing.

0:27:16Here's a stat that they sent me.

0:27:19This is amazing.

0:27:23This is from earlier this month, March 4th.

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

0:27:33That's 10,000 terabytes.

0:27:35Wow.

0:27:36Or 10 million gigabytes of storage.

0:27:44That's how much there's been deployed by transporter owners.

0:27:47Pretty soon you're talking about real storage.

0:27:50Yeah.

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

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

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

0:28:07And the price is really great

0:28:11Super easy software that you can install on your Mac

0:28:13They have an iPhone app

0:28:17They have

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

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

0:28:33249 model with a terabyte of storage built into it. And then at the high end, they have

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

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

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

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

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

0:29:06services, 100% private.

0:29:08Where do you go to find out more?

0:29:09Go to filetransporter.com/talk.

0:29:11T-A-L-K.

0:29:13Filetransporter.com/talk.

0:29:16My thanks to File Transporter.

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

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

0:29:42at the time, about the way that they architected Lightroom?

0:29:45Yeah, they use an awful lot of Lua.

0:29:48Yeah, exactly.

0:29:50I thought that was cool.

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

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

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

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

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

0:30:24files with lots of pixels and and interpreting raw photos is processor

0:30:29intensive and then you apply filters and all these things and they all show up

0:30:33live but so the thing is that stuff the stuff that you think of the image

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

0:30:44of traditional high performance language

0:30:46and it's shared code across the Adobe suite.

0:30:49It's the way that, it's very,

0:30:51that's why they call it,

0:30:52the official name is Adobe Photoshop Lightroom.

0:30:55But it's the same image processing engine from Photoshop.

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

0:31:05- Which totally makes sense.

0:31:07I bet people don't realize what percentage of code

0:31:11is actually interface code.

0:31:13And a lot of that is just really tedious, boring stuff,

0:31:16like make sure the button is disabled when

0:31:20some bit of data has changed.

0:31:22And there's just an enormous amount of that stuff

0:31:24that even goes into apps like Lightroom,

0:31:28or even small iPhone apps like ours.

0:31:31And none of that has to be CPU intensive,

0:31:34it's just like something changed,

0:31:36update the display slightly.

0:31:38It's never gonna be slow.

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

0:31:45But the rest of it, heck, you find the slowest scripting

0:31:49language and it'll still be a thousand times faster

0:31:51than what you need.

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

0:32:00and pop open the Lightroom bundle.

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

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

0:32:14do a Lightroom clone.

0:32:16It just shows you the way they've done

0:32:21some of the interface.

0:32:22I think that's super interesting.

0:32:28And it's sort of a living example of the sort of thing

0:32:33you're talking about.

0:32:37But it's weird because Lightroom's been out

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

0:32:42that method of architecting an app

0:32:44doesn't seem to have caught on.

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

0:32:49Although I guess a lot of games,

0:32:51that's the one thing I remember,

0:32:52is that a lot of games are like that.

0:32:54Where they'll write the hardcore graphics stuff,

0:32:57you know, in C or something like that.

0:32:59But the setup menus and stuff like that,

0:33:02the stuff that's not intensive,

0:33:03is often written in a scripting language,

0:33:06and it's often Lua.

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

0:33:10And in games you can see why not necessarily Lua

0:33:14is the choice, but that some scripting language

0:33:16is the choice, because they're often designed

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

0:33:22rather than UI kits so much.

0:33:24So yeah, it does make sense to do it that way,

0:33:27particularly for games.

0:33:29The problem with doing it for something like our app,

0:33:32or more traditional iOS or Mac app,

0:33:34is that you lose the built-in tools

0:33:39for doing debugging, performance analysis.

0:33:43I would bet that autocomplete isn't going to work.

0:33:46So you're kind of slowed down an awful lot.

0:33:50And that's a shame, because the idea

0:33:52behind using a scripting language is to develop more

0:33:56rapidly.

0:33:58Scripting languages are fun.

0:33:59Maybe that's why they're more rapid.

0:34:02But there's usually less fiddly bits to worry about.

0:34:05So you can move quickly.

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

0:34:11it's actually slower and more difficult.

0:34:13- I apologize for not having a better memory,

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

0:34:19I don't know if Adobe has good debugging tools

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

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

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

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

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

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

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

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

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

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

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

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

0:35:20Text fields that are like almost like a native text field

0:35:24But there's you know

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

0:35:30And then it's that's weird

0:35:32Right. Yeah, that's totally the wrong way

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

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

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

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

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

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

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

0:36:09but which is the one where it's it's it's like you're

0:36:14Like the the example code was validating a form. Oh

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

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

0:36:32But the thing is in order to do that

0:36:34You know offense to Robin the guys

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

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

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

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

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

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

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

0:37:12and get Apple to officially support it.

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

0:37:19of what Apple is endorsing and publishing,

0:37:22it's never going to have enough integration

0:37:24with the built-in tools.

0:37:27- And-- - Yeah, I think that's right.

0:37:29- And with the community at large.

0:37:31That there's a huge advantage to be writing your code

0:37:35the same way the majority of the developer community is,

0:37:38so that you can, you know,

0:37:40If there is like a third party framework

0:37:42you wanna integrate with, it's already, you know,

0:37:44it's written in the same style.

0:37:45- Mm-hmm.

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

0:37:49is that there are very strong conventions

0:37:52for how to do things.

0:37:54And my code oughta look pretty much

0:37:56like somebody else's code.

0:37:57But at the same time, I am, of course,

0:38:01very glad that people are experimenting, doing, you know,

0:38:04I got a little pushback on calling

0:38:05Reactive COCO a research project, but I think it is.

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

0:38:11And I hope Apple takes note of trends

0:38:14like functional programming and bring some of this

0:38:19over into CoCo.

0:38:20- Yeah, I don't think-- - These guys are pushing

0:38:23that a little bit.

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

0:38:27I don't think that that's in any way

0:38:29you putting it down or dismissing it.

0:38:32- Wasn't meant to be. - Right.

0:38:35I think maybe because some research projects in some fields

0:38:39are so pie in the sky and sort of removed from practicality

0:38:44that you could see it that way.

0:38:48But clearly that's not what they're doing.

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

0:38:53You can use this and ship it,

0:38:55which maybe is where their objection comes from.

0:38:58- Yeah, maybe.

0:38:59Do you research project implies

0:39:03don't use this in production code.

0:39:04Right.

0:39:05And yeah, I don't mean that at all.

0:39:08It is, I think, used definitely in production code.

0:39:13And the people who like it really, really like it.

0:39:16And that's cool.

0:39:17And I want them to keep using it.

0:39:20I want them to keep pushing.

0:39:21I think that's great.

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

0:39:26though I'm highly sympathetic to it and to its goals.

0:39:30All right, let me take a second break here,

0:39:32because I know exactly where I want to go from this.

0:39:35But let me take a second break and thank our good friends

0:39:39at An Event Apart.

0:39:40Now, you guys know An Event Apart.

0:39:42They're a longtime sponsor of this show.

0:39:44They are the conference for web developers and web designers.

0:39:50They have shows all over the country this year for you

0:39:55to check out.

0:39:56Upcoming events for An Event Apart

0:39:59include Seattle, Boston, San Diego, Washington, DC, Chicago,

0:40:07Austin, Orlando, beautiful Orlando, Florida

0:40:10in late October.

0:40:12Orlando is beautiful in late October.

0:40:14Not too hot.

0:40:16Probably a lot nicer than wherever you're from.

0:40:19And San Francisco in November.

0:40:20It's such a great conference.

0:40:25They have the best speakers.

0:40:28two days of intensely educational learning for practical practitioners of standards-based

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

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

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

0:40:57They have the best, they even have the best badges,

0:41:00good badges, good swag.

0:41:01Go to, here's how you find out more,

0:41:06aneventapart.com/talkshow.

0:41:10Check out the schedules, check out the dates.

0:41:13If you work as a web developer or designer

0:41:15and you haven't been to an event apart

0:41:17or you haven't been recently,

0:41:18you really owe it to yourself.

0:41:19It is the conference to go to.

0:41:21I can't recommend it enough.

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

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

0:41:37I think maybe the big question is does Apple does Apple the people inside Apple the decision

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

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

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

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

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

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

0:42:18the the the catch with moving to a language a newer language a language with cooler it may you

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

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

0:42:42language as a just as a basic rule of thumb.

0:42:49People were calling for this, you know, like I said,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0:44:57And you wouldn't be able to tell the difference.

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

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

0:45:11setting an object's destination frame and opacity or whatever.

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

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

0:45:25exact thing.

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

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

0:45:37do the animation.

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

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

0:45:47buttons or swiping from screen to screen or whatever,

0:45:52makes absolutely no difference that you're using Objective-C

0:45:54versus something--

0:45:56it could be AppleScript, right?

0:45:57It could be something terrible and slow.

0:45:59And so much of the average app, non-game app,

0:46:03is just that stuff.

0:46:05And then there's some core that needs

0:46:07to be fast, whether it's image processing or database

0:46:10or whatever.

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

0:46:16But you can easily isolate that core.

0:46:19Right, and so in other words, it's-- yeah,

0:46:22I think my hunch was wrong on that.

0:46:25And my thinking was, well, what if the next generation

0:46:28of devices is way smaller still?

0:46:32Whether it is a watch, or it's a watch-sized device,

0:46:34or something just truly physically tiny

0:46:38compared to even an iPhone, it doesn't

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

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

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

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

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

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

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

0:47:18that was implicit with using it that that it was slow and it was and in

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

0:47:29point where that layer of indirection doesn't matter.

0:47:34So I don't know--

0:47:39- There have been times in like,

0:47:40in the very most performance intensive code I've written

0:47:45where I've gone the direction of more and more

0:47:50going straight C over objective C.

0:47:52There's something like that in Vesper,

0:47:54but in NetNewswire I certainly move that direction

0:47:57with dealing with RSS parsing, particularly.

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

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

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

0:48:14Though I can imagine higher level stills.

0:48:17But still, it would be slow.

0:48:20And the more I could do stuff in C,

0:48:22things would be a lot faster.

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

0:48:31intensive area.

0:48:33Otherwise Objective C is so much faster than what

0:48:35we need for everything else.

0:48:37Yeah, like 99% of everything we do.

0:48:40So what's your hunch?

0:48:47Do you think that Apple has a plan for some sort

0:48:51of next generation language?

0:48:53- I don't know.

0:48:57So one thing I've learned about Apple engineers

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

0:49:04and Mac apps outside of Apple.

0:49:06They have the same kind of interests

0:49:08and they notice the same things

0:49:09and they think about the same things.

0:49:11So my hunch is surely there are people inside Apple

0:49:15who think like those of us outside who do think.

0:49:20But whether that has actually gotten to the point

0:49:24of anyone making a plan or anyone,

0:49:27anyone seriously doing some work on this,

0:49:30I just have no idea.

0:49:32Because they can point to their approach,

0:49:34which is, you know, we give you major new upgrades,

0:49:38properties, blocks, all this kind of stuff,

0:49:41and it's working, look how many apps there are,

0:49:43look how successful the app ecosystem is.

0:49:46It's not broken, you know, they could say.

0:49:51- Yeah, I sort of think so too.

0:49:52And the other thing too I've learned

0:49:53over the years observing Apple is that

0:49:56just the way they think institutionally,

0:50:00and it always comes back to this,

0:50:01is don't get too focused on any particular solution.

0:50:05Always concentrate on the problem.

0:50:08And that sometimes the solution to the problem

0:50:10isn't the thing everybody thinks

0:50:12is the solution to the problem.

0:50:14So I would say Grand Central Dispatch is a perfect example

0:50:18of that, where the problem is--

0:50:23I would say the problem is that twofold.

0:50:27One, parallel programming has always

0:50:29been notoriously difficult. In other words,

0:50:33having multi-threads at the same time running.

0:50:37It's always been--

0:50:39I remember in college, it was--

0:50:41I don't know how I passed that course.

0:50:43Yeah, it's hard.

0:50:44And then the second problem is a hardware one,

0:50:51which is that the semiconductor industry ran

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

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

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

0:51:07for high-end CPUs for a long time now.

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

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

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

0:51:29this is not a programmer's course.

0:51:31But it wasn't like...

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

0:51:39what we've been asking for."

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

0:51:44That's really...

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

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

0:51:58which is a higher level of abstraction, which was really nice.

0:52:02Yeah.

0:52:03So I wouldn't be surprised if...

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

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

0:52:18be writing in some other language.

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

0:52:22I don't know.

0:52:24Maybe storyboards is a good example of that?

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

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

0:52:36of code you don't have to write.

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

0:52:47basically, and you'd lay it out visually.

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

0:52:53with the transitions and stuff all at once.

0:52:57It's like a storyboard in a movie.

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

0:53:02I mean it saves you the same amount of code

0:53:04You used to get saved

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

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

0:53:21It'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

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

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

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

0:53:46easier and less work.

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

0:53:58If 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

0:54:02I don't have to go over to this other thing where I visually laid it out

0:54:06And it also works better with source control management and things like that. All right

0:54:10I'm not against interface builder

0:54:13We've got we're actually using a storyboard in our in our next release of Vesper for a section of the app

0:54:18And partly is just because I needed to learn it but you know it for that section of the app

0:54:23It actually really makes sense. It's a self-contained thing with a

0:54:26navigation controller and all this kind of stuff.

0:54:29- But you don't see it so much as about writing

0:54:31less objective C code than you did before.

0:54:34It's just a different way of using a visual interface tool

0:54:38than interface builder.

0:54:40- Yeah, very much so.

0:54:41Yeah, I mean, it will save some code,

0:54:45but the kind of code that's really simple and easy to write,

0:54:47so it's not that big a deal.

0:54:49But what I'd love to see in interface builder

0:54:54and storyboards, is for people like you and Dave

0:54:59to be able to go in there and actually make it work

0:55:03like it should.

0:55:03- Right.

0:55:04- You know, it's like, it's gonna look like this

0:55:06and we're close in a lot of ways.

0:55:09I mean, you could sit there,

0:55:11someone who isn't a full-time programmer

0:55:13could sit there and lay out text fields

0:55:15and do all this kind of stuff.

0:55:16And then you could even test the interface,

0:55:18see what it's gonna look like

0:55:19without attaching it to any code.

0:55:22But it's not really the interface, right?

0:55:24The fonts won't be right.

0:55:26Yeah, there'll be a lot of missing pieces.

0:55:30What I'd love is for you to be able to actually do

0:55:34all the work and then me, the coder,

0:55:37can sit back and do things like database and APIs

0:55:41and all that kind of stuff.

0:55:41- Or don't you think maybe a better way to put it

0:55:43would be for me and Dave, not necessarily to do all the work

0:55:46but to do all the diddling.

0:55:50- Yeah, sure.

0:55:51which is okay here's the thing and it animates from A to B but now you're done

0:55:58and now me and Dave would just sit there and tweak parameters like you know and

0:56:04it's funny to say this but the physics you know the gravity of the springiness

0:56:08the bounciness the speed the acceleration to get the feel of it right

0:56:14because that is it and that's a huge it really is it's a huge part of the

0:56:18It's a huge part of almost all what people would consider modern apps is the physics of how the when things move

0:56:26Like it's not enough to just say animate from a to B. You've really got to specify those things

0:56:30and

0:56:33Making that more of a central part of the built-in tools. I think would be a huge step forward

0:56:39I mean we've we've hacked around it with

0:56:42with our own thing the

0:56:45Deep 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

0:56:51compile compiled build run

0:56:54reinstall on the device cycle

0:56:56Yeah

0:56:59I've said this before but one of the coolest things that I've seen was

0:57:02From when when Mike Mattes was developing the push pop press app for

0:57:10for Al Gore and I saw a pre-release version of it and his

0:57:14Madison's version on his phone had on a special internal wasn't you know was

0:57:20never going to ship to the public but a setting screen where he had sliders to

0:57:24adjust certain you know pretty much give you the god-level control over the

0:57:32physics of the books universe and you could set how heavy images are so that

0:57:38when you flick the clothes them you know do they feel like they're light do they

0:57:41feel like they're heavy. And so that it seemed like a cool way to do that. And then he could

0:57:47come to the developer and say, here's for the next beta, here's the physics settings

0:57:52that I, you know, let's try this and we ship it to the end. But he didn't have to go through

0:57:56a build and run and install in Xcode and reinstall it on his app every time he wanted to twiddle

0:58:03one.

0:58:04That's nice. What he really needs and maybe he did have is a button where I like these

0:58:09set and email this to the developer. Yeah, something like that. That would be cool. Let

0:58:16me take our third break and thank our next sponsor and it's our good friends at lynda.com.

0:58:24lynda.com has over 2,000 high quality and engaging video courses taught by industry

0:58:34experts with new courses being added daily. For all I know there's more than

0:58:382,000 now. They have a wide breadth of courses from beginner to advanced and

0:58:44they cover things ranging from purely design to pure development and all sorts

0:58:49of stuff in between. Other things like photography. Some of the things that

0:58:55might interest people who are listening to the talk show they have iOS developer

0:58:59courses, Unix for Mac OS 10 users so if you've ever wanted to learn your way

0:59:04around the terminal, that sort of thing. Objective-C fits this show perfectly.

0:59:09iOS 7 SDK, new features, so if you're already an iOS developer but you want to

0:59:15see what's new in iOS 7, they have a course on that. Web development courses,

0:59:22they have Perl, ASP.NET, PHP, MySQL, JavaScript of course, Creative Cloud, so

0:59:32Photoshop InDesign everything like that so many videos it's unbelievable

0:59:39here's the best thing though the best thing is that you can sign up for a

0:59:45seven-day free trial and during your free trial you can watch as many of

0:59:51these videos as you want that's how sure they are that you'll be you'll want to

0:59:56sign up and when you do sign up you can sign up for a plan where you just have

1:00:02unlimited access to their videos and so you don't have to if you're thinking

1:00:06like I think I want to get this you're already signed up you're signed up with

1:00:10a subscription you don't have to worry hey is this video going to be what I

1:00:13want you can just start watching it and see if it's what you want how do you get

1:00:17this seven-day free trial easy go to lynda.com ly and da comm slash the talk

1:00:25show lynda.com slash the talk show you get a seven day free trial watch these

1:00:32videos. You have nothing to lose. It's fantastic. So my thanks to lynda.com. Absolutely fantastic

1:00:40high quality videos, seven-day free trial. My thanks to lynda.com.

1:00:49Anything else you want to talk about programming-wise?

1:00:50So here's something you don't know about me. It's not programming.

1:00:53Okay.

1:00:54I'm an Espresso user.

1:00:55Oh, really?

1:00:57- Yes, so now's your chance.

1:00:59Ask me what I see in these.

1:01:01- What is it that you see in these?

1:01:03- It's so damn easy.

1:01:06And that's really it.

1:01:07I literally have no idea how much it costs

1:01:10and I don't care if it's $40 a pound of coffee.

1:01:13But I have two cups of espresso every day.

1:01:15And the same ones, I have one of one flavor,

1:01:19one or the other.

1:01:20And it's just, it takes just a few seconds.

1:01:25I never have to think, and it's really good.

1:01:28And that's it.

1:01:29It is no more complicated than that.

1:01:31This is this thing I was writing about yesterday

1:01:34that I'm curious, that there's these new pod-based coffee

1:01:38making machines.

1:01:39There's what you have, the Nespresso.

1:01:43And what's the other one, the K-Pod?

1:01:45Keurig, something like that.

1:01:47Keurig or something like that.

1:01:48And I just didn't get it.

1:01:53In other words, per pound of coffee,

1:01:55you end up paying a premium, a significant premium.

1:01:57And I just didn't get it.

1:01:58I wasn't putting it down, I just didn't see the appeal.

1:02:00And I've heard from two very different groups of people,

1:02:05like on Twitter, who are fans of these things.

1:02:09And it seems like the bigger group

1:02:12is the people who truly value the convenience.

1:02:15That however easy it is to make drip coffee,

1:02:19this is just way easier.

1:02:22But the second group is your group.

1:02:24'Cause you're making espresso, right?

1:02:30- Yeah.

1:02:30- Yeah, the espresso drinkers.

1:02:32And that's, I think,

1:02:34I think it's because making espresso traditionally

1:02:38is a mess, right?

1:02:40And requires significantly,

1:02:43I see that, maybe that's where I'm missing out.

1:02:45Like, I like espresso when I can get it,

1:02:46like at a restaurant.

1:02:48But at home, I just make drip coffee.

1:02:51And drip coffee hurts my stomach a lot.

1:02:54So I go with espresso.

1:02:55And it used to be I had a Krups,

1:02:59and I would make four shots at a time, four times a day.

1:03:0316 shots a day is how I got through.

1:03:06And that was a lot of damn work, right?

1:03:08To sit there with my Krups and grind the beans

1:03:12and pound them in and all this stuff four times a day.

1:03:15I was just wired as hell, of course.

1:03:17- That's so much espresso.

1:03:21It really is.

1:03:22Oh, God.

1:03:23And, hey, that's how that newswire got made.

1:03:30But eventually I realized, number one, I'm drinking a ton of espresso.

1:03:33Number two, I'm spending a crazy amount of time just making espresso and cleaning up

1:03:37from espresso and everything.

1:03:40And I realized I could actually be spending that time programming and maybe not having

1:03:46to pee every five minutes if I had less espresso and just got a little machine that makes something

1:03:52really good.

1:03:53And so, yeah, that's what I did.

1:03:55And now, yeah, it's a piece of cake.

1:03:57And you're down to two a day?

1:03:59Down to two a day.

1:04:00The first one is kind of a double and then a single after that.

1:04:04And you used two different flavors?

1:04:06Yeah.

1:04:07So some of them are designed to be long pours, basically, and some are designed to be short.

1:04:13So I use a long one first and follow up with a short one.

1:04:17And that's good.

1:04:19My former colleague, when I worked at Joyent, Jason Hoffman, the first time we had like

1:04:27an on-site, we went across the street somewhere in Marin County.

1:04:34In typical Marin County, small town, no chain restaurants, really cool coffee shop across

1:04:40the street.

1:04:42stuff. And we're all ordering. And I got my usual drip coffee. And I remember Jason ordered

1:04:47a quadruple espresso. And I thought, wow. And I didn't say anything. And then we sat

1:04:53there and drank. And we'd stayed in a coffee shop and just chilled out. And we drank our

1:04:58coffees. And then before we left, he went up to the counter to get another one. And

1:05:02And I thought, whoa, whoa, this.

1:05:04- Yeah.

1:05:07- That is totally outside my ability

1:05:10to consume coffee or caffeine.

1:05:15- Yeah, I used to always order triple espressos,

1:05:18just routinely when I was in a coffee shop.

1:05:22And would have, you know, if I was traveling.

1:05:23And I'd have multiple a day just to keep the same

1:05:27or close to the same level I was used to from home.

1:05:29- Yeah, I do like an espresso,

1:05:31But I wouldn't want to try to make them at home.

1:05:36I also like-- I like the way that I can--

1:05:40for myself, I make about three cups of coffee.

1:05:43And I like the way that I keep it in a thermos so it stays warm.

1:05:46And I like the way that it lasts for a long time.

1:05:50I can just slowly sip it as I work the first half of my day.

1:05:56Yeah, I would enjoy it.

1:05:57But it hurts too much.

1:06:01- Yeah.

1:06:02- Which sucks.

1:06:03- I did not know that about you.

1:06:05- Yeah.

1:06:05- Although I guess I shouldn't be surprised.

1:06:08Do you find if you get over caffeinated,

1:06:12you lose your ability to concentrate?

1:06:14- Yeah, at a certain point,

1:06:17I'm just desperate not to be so over caffeinated.

1:06:20I built up my tolerance for a long time,

1:06:24such that that point was almost impossible to reach.

1:06:27Nevertheless, I still reached it occasionally.

1:06:29And my answer then was usually food, whatever.

1:06:32Just give me as much food as I can possibly eat

1:06:35just to help me kinda relax.

1:06:37And that's not necessarily a great answer.

1:06:39- I found that when I used to work outside the house

1:06:44and I'd have a job,

1:06:46and then I wouldn't necessarily count

1:06:49how much coffee I was drinking,

1:06:51especially if it was like in a workplace

1:06:52where there was coffee always being made

1:06:54or coffee available.

1:06:56And I would just get up as often

1:06:58as soon as my cup was empty, I would just get up and refill it. And then I would find

1:07:03like in the afternoon that I'd, it really, it felt like my brain was actually like vibrating.

1:07:10Like it was, and it was a truly, well I shouldn't say truly unpleasant, but vaguely unpleasant.

1:07:16And I'd, I'd like look at the clock and realize an hour had gone by and all I would, all I

1:07:20had done is open 20 new tabs, you know, of random stuff and read the first three sentences

1:07:26of each. Like it truly gave me, it gave me effectively attention deficit disorder. And

1:07:33so I find that making the same amount of coffee every morning when I get up and drink, and

1:07:41that's all I drink every day has been a huge advantage. Because I know it's exactly, it's,

1:07:47it makes me feel good and I feel like I'm concentrating, but it doesn't, doesn't even

1:07:52get me close to drinking too much.

1:07:54- Yeah, yeah, it took me a while to learn that,

1:07:57but yeah, I've learned the same thing.

1:07:58- Do you get headaches if you don't drink coffee?

1:08:00- Oh yeah, for sure, yeah.

1:08:02- See, I used to, I used to get severe headaches

1:08:06if I woke up and went, I would say within about 90 minutes

1:08:10of waking up, if I hadn't had some caffeine of some sort,

1:08:13I would get a serious headache, and it would go away

1:08:17about 15, 20 minutes after I then consumed some caffeine.

1:08:22But ever since I've started to sort of make one

1:08:25three cup thermos of coffee a day,

1:08:27I can go, like if I wake up the next day

1:08:29and I, you know, like if I'm flying or something like that,

1:08:32I don't drink coffee 'cause I'd rather sleep on the plane

1:08:36or try to sleep on the plane than stay awake.

1:08:38And I don't wanna have to get up to pee

1:08:40when I'm on the plane, so.

1:08:41- Oh, right.

1:08:42- And I don't get a headache anymore.

1:08:43- Yeah, huh, well, you're lucky, I still get the headaches.

1:08:46On the other hand, if I have a superpower,

1:08:48my one superpower is the ability to sleep

1:08:51in any moving vehicle, car, airplane, train,

1:08:54doesn't matter, out like a light,

1:08:55even after coffee, doesn't matter.

1:08:57- Ooh, that's a good gift.

1:08:59- Yeah, it's nice, it is nice.

1:09:01- It really stunk when I had the sort of,

1:09:04I really need coffee every morning thing,

1:09:05like flying was the worst to me

1:09:07because A, it would keep me from sleeping on the plane,

1:09:10B, it would probably make me have to pee,

1:09:12but C is that the coffee you get in an airport

1:09:19almost always horrendous. Yeah. I mean even if you get it if you get it at the

1:09:24before you get on the plane, it's usually pretty bad. Like I know it like SFO

1:09:31there's a I think depending on the terminal Philadelphia has one too, a

1:09:35Pete's, but it's not really a Pete's it's like a it's like a they have the Pete's

1:09:42logo and they serve Pete's coffee but it's it's like some kind of weird

1:09:47Franchise type thing like they don't it doesn't taste like Pete's its airport Pete's

1:09:51Yeah, airport's different and it just tastes terrible and then you really you know makes you question

1:09:57Well, you know why you have this addiction

1:09:59You know, they say that the Renaissance

1:10:04Was due to caffeine and beans. Yeah, I believe that. Yeah that coffee houses were like the first

1:10:12first form of like modern civilization.

1:10:17- Yeah.

1:10:21And they were wicked immoral places, according to the--

1:10:24- Yeah, yeah, that was true too.

1:10:25- I love that idea.

1:10:26- I do.

1:10:27- It's great.

1:10:28Well, that's why we went out for coffee,

1:10:29the most innocent thing you can do.

1:10:32Wicked Satanists.

1:10:39- I also, I started my caffeine addiction

1:10:42purely drinking Coca-Cola.

1:10:44I tried coffee and I think it was because

1:10:50so much coffee is just bad and it never caught on.

1:10:55And so like going through college, I never drank coffee.

1:10:57I just drank, I don't know, six pack of Coke a day.

1:11:01And I drank enough Coke like in my college years

1:11:05that I had the headache problem

1:11:07when I'd wake up in the morning,

1:11:09just from drinking Coca-Cola.

1:11:12- I assume that's regular Coke with the sugar.

1:11:14- Yeah. - Yeah, boy.

1:11:17Yeah, how's that?

1:11:18That on top of your six pack of beer a night,

1:11:20you're gonna need some extra exercise.

1:11:22- Right.

1:11:23I had a, I was a real skinny teenager,

1:11:26and so even going, you know,

1:11:27until I got my 20s and that slowed down,

1:11:29I think I was lucky enough.

1:11:31But even so, it was,

1:11:34I kind of quit buying it cold turkey, Coke.

1:11:37Actually at Amy's encouragement.

1:11:39I was really, I mean I was still, I don't know,

1:11:4124, 23, 24, something like that.

1:11:43And I wasn't overweight in any way.

1:11:46She was like, just try it, just stop buying it.

1:11:48And it was at a time when I had started drinking coffee.

1:11:52So I just stopped buying Coke,

1:11:53and I dropped five pounds in a week.

1:11:56- Wow, no kidding.

1:11:56- Yeah, and we had an argument,

1:11:58and it sounds stupid in hindsight,

1:11:59but I have to give her credit,

1:12:01where she said, do you know how many calories a day

1:12:03you're consuming just in Coca-Cola.

1:12:04And my thought was, it doesn't matter

1:12:07how many calories are in it, it's just a liquid.

1:12:08So I'm just urinating it out.

1:12:11(laughing)

1:12:12And she's like, no-- - That's not how

1:12:13calories work. - No, she's like,

1:12:15no dummy, it doesn't work like that.

1:12:17And I really thought that if you're drinking it,

1:12:19it cannot possibly be making you fat.

1:12:22And so I quit, I got on a bet with her.

1:12:24I just stopped buying it, stopped drinking it,

1:12:26and weighed myself every day.

1:12:28And within a week, I dropped five pounds.

1:12:31You didn't perform the thought experiment.

1:12:33Well, what if I dissolved a bunch of sugar

1:12:35in some water and drank it?

1:12:36- I know, here's a story where I'm laying out

1:12:40how stupid I can be.

1:12:42- I had a similar thing.

1:12:46I was overweight, it was my early 30s,

1:12:49and I switched from regular coke to diet coke.

1:12:54That was the only change I made.

1:12:55And over the course of a summer, I lost 20 pounds.

1:13:00- Well, and I hadn't seen things,

1:13:01like there was no YouTube at the time.

1:13:03So like you can go there now and you can easily Google like,

1:13:06or you know, use YouTube search and find like,

1:13:09how much sugar is in a can of Coke?

1:13:11And they'll put like 12 ounces of water out

1:13:13and they pour the sugar to show you how much sugar

1:13:16is in there and it's ridiculous.

1:13:19- Yeah, yeah.

1:13:20- It's, you know, it's like you're eating,

1:13:22if you're drinking a six pack of Coke a day,

1:13:23you're effectively eating like a bag of sugar.

1:13:26- Yeah, your daily cake.

1:13:29Right. So I, you know, in hindsight, it was a foolish bet to take. But it did. It was

1:13:35a bad habit.

1:13:36Yeah. No kidding.

1:13:37Does coffee have a lot of calories? I don't know. I don't put anything in my coffee. So

1:13:41I'm --

1:13:42Yeah. I don't think it has that many.

1:13:44Yeah. Because I figure, like, the most calories it could have is whatever it would be to eat

1:13:48the equivalent in raw beans.

1:13:50Yeah. Sure.

1:13:51Yeah. So it can't be that bad.

1:13:52Yeah.

1:13:53I never --

1:13:54You know, I've often wondered about popcorn, right? Because when -- if you're making popcorn,

1:13:57you're only pouring out like a little bit of corn.

1:14:00- Right. - It's not that much corn.

1:14:01You could say it's a handful.

1:14:03- Right.

1:14:04And if you don't butter it- - It pops up big,

1:14:06but it's, you know, how bad can it be?

1:14:08- Yeah, I think- - Of course,

1:14:09I butter it like crazy, but still.

1:14:10- I think the problem with it is that corn

1:14:12is such a sugary vegetable, right?

1:14:15Like, you know, the argument I've heard

1:14:17is it really shouldn't even count as a vegetable.

1:14:18It's, you know, it's a lot of sugar.

1:14:21- It's an industrial product these days.

1:14:23- Yeah.

1:14:24So I don't know, it might be,

1:14:25it's not a lot, you're right though,

1:14:27that it's, you know, like if you just ate the raw kernels,

1:14:30it's not that much.

1:14:31- Yeah.

1:14:32- 'Cause I only make, I make about a half cup

1:14:34and that's good for a big bowl for me and Amy and Jonas, so.

1:14:38So I figure I only get what?

1:14:40What's a third of a half?

1:14:44- I don't know.

1:14:45- Like once, I don't know.

1:14:47Yeah, one sixth. - Sixth, yeah, okay.

1:14:50Yeah, it's not that much.

1:14:51How do you make your popcorn?

1:14:53- We have this thing called a Whirlipop and we bought it.

1:14:55This is like one of the best purchases I ever made.

1:14:57I bought this thing in like 1999 at a,

1:15:00like a Crate and Barrel.

1:15:03And it's just a big, I don't know what it's made out of,

1:15:06aluminum or something, a big aluminum pot.

1:15:10And it has a handle with like a little crank on it

1:15:12that turns like a little propeller at the bottom of the pan.

1:15:17So you put it on the stove, put a little oil in there,

1:15:20heat it up, medium high,

1:15:22Wait until the oil is smoking.

1:15:25And I use like a high heat safflower oil.

1:15:29Wait till the oil is smoking,

1:15:30then pour a half cup of popcorn in there

1:15:33and you just twirl this thing on the handle

1:15:38and it spins this propeller at the bottom of the thing

1:15:41so that the kernels keep moving in the oil.

1:15:44And then it takes about a minute

1:15:46and you have fresh hot popcorn.

1:15:49- Oh, cool.

1:15:50- How do you make it?

1:15:51- Maybe I'll check that out.

1:15:52I've got a hot air popper.

1:15:55So it's not popping in any oil or anything.

1:15:57And if I were not to butter and salt the popcorn,

1:16:01well, it'd be bland, but it would also be,

1:16:03I suppose, healthier.

1:16:04And it works nicely.

1:16:07But I'm open to alternatives.

1:16:11But then, so my main innovation though is,

1:16:15obviously I melt the butter, just do it in the microwave,

1:16:17but then I put a bunch of Tabasco in my butter,

1:16:19So I have really spicy popcorn.

1:16:22And it's good.

1:16:24Oh, I like that.

1:16:25Yeah.

1:16:25And salt it?

1:16:31Yeah, oh yeah.

1:16:31Yeah, I got to salt the hell out of it.

1:16:33If there's not a whole bunch of salt at the bottom of the ball, it's--

1:16:35Then I've lost, yeah.

1:16:37Yeah.

1:16:39I haven't had hot air popcorn since the '80s,

1:16:42when they first invented it.

1:16:43And I remember then it was like a revolution.

1:16:48Because it was--

1:16:48I guess it's because I think in the 80s it was like in the whole like Jane Fonda workout

1:16:55it was like when people first started getting health-conscious as like a

1:16:58pop-cultural thing and if you make hot air popcorn and you don't do anything to it it was

1:17:04You know, it was pretty good. You know, there's nothing you can complain about low-calorie

1:17:08Sure. Yeah bad for you. Yeah, of course also no no flavor. No texture, but whatever

1:17:16You 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

1:17:20Like the microwave popcorn. Nah, I can't do it

1:17:23Did the penalty for doing it wrong when you burn it? Is that terrible terrible terrible smell?

1:17:30Yeah, exactly away for a while and like it's having experienced that once, you know, it's just not worth the risk

1:17:36Well, it's like hey, we're gonna put a movie in we're gonna watch a movie

1:17:40I'll go make popcorn and it's at this point. It's nothing but good times ahead

1:17:46Popcorn that I'm suddenly hungry for and a movie. I've never seen coming up

1:17:52What could be a better way to spend an evening with the family and then you burn the popcorn in the microwave?

1:17:58And then you're not hungry for it. You can throw it out and make another one, but it's like it's already

1:18:03Yeah, the bad smell it turns you off of it. Yeah, right and now yeah

1:18:08You just kind of want to watch the movie by now. You spent way too much time right in the kitchen, etc. Yeah

1:18:13My favorite thing about my hot air popcorn popper though

1:18:17I think is at the very end when almost all of its popped

1:18:19Except for a few kernels and it just starts throwing them at me

1:18:23Randomly, it's almost like a little like

1:18:26It's kind of a violent exercise, which I don't mind. That's actually it's part of the poetry of it. I

1:18:33Also, I also have a bad association with microwave popcorn, which is that I spent a year Drexel living in a dorm

1:18:39It was just called they were just typical Drexel

1:18:44It was just called the tower because I guess nobody gave him any money to put their name on it

1:18:4816 story

1:18:51Dormitory and I was pretty high up. I forget what floor I was on but it was towards the top and

1:18:55It had notoriously fickle smoke detectors. And so we had fire alarms

1:19:03constantly. I mean it was just over and over and over again and of course once

1:19:07there's a fire alarm you've got to take the steps and it was just the biggest

1:19:10pain in the ass and inevitably it was always somebody burned microwave popcorn

1:19:15of course and so it was like why can't we make a rule can't we just ban

1:19:22microwave popcorn let's just ban it it's keep setting off and you know never

1:19:26went anywhere. Although I never actually filed an

1:19:31actual complaint that they should ban it. I just would complain. Yeah sure.

1:19:37Alright let me thank every good college student. Yeah. Let me thank our final

1:19:42sponsor. It's our good friends at Backblaze. Online backup, $5 a month,

1:19:49native, it's unlimited, unthrottled, uncomplicated. You sign up for $5 a month.

1:19:55it backs up your whole Mac, everything, your external drives to, to the cloud. You

1:20:02think, well that must take a long time at first. Well it could, it could take, it

1:20:05could take a couple days, might take a week depending on your broadband, but

1:20:09then once you've got that initial backup complete, it's all incremental, it happens

1:20:13in the background, you don't have to do anything, you just install their

1:20:17native Mac app. It's written by app, ex-Apple engineers, it's cool app, doesn't

1:20:23screw up your system in any way and without doing anything your entire Mac

1:20:29is backed up to the cloud. There's no add-ons, there's no gimmicks, there's no

1:20:35additional charges. You just pay five dollars per month per computer for

1:20:40unlimited un-throttled backup. I always say when I when I do these reads I

1:20:47always say you know the best part about this is that it's off-site. You know that

1:20:50having a backup next to your computer on a super-duper clone drive or a...

1:20:57I'm drawing a blank. What's the thing on Mac OS X called?

1:21:04Time capsule.

1:21:06Time machine. Right? A time machine driver, a time capsule.

1:21:09That stuff's great too, and it's convenient and it's faster. But I'll tell you what.

1:21:12Here's a perfect example. I was just last night, one day ago,

1:21:15Jonas's Little League is starting up and we had a get to know the

1:21:20team meeting with the other dads. And there was another kid who we played with two years

1:21:26ago so I already knew his dad and we were like, "Hey, what's up? What's been going on?"

1:21:30Ends up that just six months ago, they had a fire in their house. They've been living

1:21:36in an apartment since. It wasn't too bad. Nobody got hurt. It was a--something happened

1:21:40with their dryer at like seven and they were just running the dryer down in the basement.

1:21:45the thing his home office was in the same basement his computer was right

1:21:49there and his backup was on an external hard drive right next to his computer

1:21:57that's the exact type of situation where backblaze can save literally save save

1:22:02your save your data because having that drive right next to your computer

1:22:06something like that happens you need an off-site backup he ended up getting

1:22:11lucky he actually got to save his data but he had to go through one of those expensive

1:22:18drive saver things. It was like the actual enclosure was destroyed but one of those expensive

1:22:25data saver things got his stuff off this drive. But you could say even in that case where

1:22:33the good news is he saved his data could save a lot of money but $5 a month using backplays.

1:22:38And 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

1:22:45Trust me. Yeah, where do you go to find out more?

1:22:47www back blaze

1:22:50calm

1:22:52daring fireball

1:22:53I've gotten a lot better at that since they're a regular sponsor. I used to first couple times

1:22:57I would always say black bays black razor and ends up that they

1:23:03They have that domain

1:23:07Do this good for them

1:23:09Yeah, black blaze comm redirects to back blaze comm

1:23:15So you can go either way

1:23:18Alright, here's one more thing. I want to talk about

1:23:21little thing and it seems like the type of thing that you would have an opinion on I do too and that is

1:23:29That Google has recently stopped underlining links in there

1:23:37search results.

1:23:40I do have an opinion about that.

1:23:43And The Verge had a story on this where they sort of like, they said like, they gave Google

1:23:48like a welcome to 1998, you know, as though underlining links, you know, has been outdated

1:23:56for 10 years or something like that.

1:23:59I plan to underline links on Daring Fireball until the end of time.

1:24:06your opinion on this? Well, I don't underline links on my blog. Probably the first thing

1:24:13I do in setting up a new CSS file for any new site is to turn off link underlining.

1:24:18So, yeah, welcome to 9/10/98. True. On the other hand, in this particular case, underlying

1:24:25links on the Google search results is just the way Google search works. When they turned

1:24:32that off, I felt like my brain couldn't understand what I was looking at.

1:24:39The UI of their search result is something so many people are familiar with.

1:24:45It's almost like we understand it in some deeper part of our brain by now, just because

1:24:48it's so familiar and so used.

1:24:50For them to make a change like that, it burns a bunch of brain cells, even though it seems

1:24:57like such a small thing.

1:25:00I feel like we have the opposite opinion where I feel like I didn't even notice that Google

1:25:07turned them off because I feel like everything in Google search results is a link.

1:25:14Whereas what I'm thinking is within Daring Fireball that when an individual word in a

1:25:19story is a link, I want it to be underlined and in other ones too.

1:25:26I just feel like if a word in an article is a link, to me that's what underlining means.

1:25:33Underlining means this is a link.

1:25:35But I didn't even notice it in Google because I just assumed that everything is a link.

1:25:39Surprisingly, things aren't a link like the actual URL on the search results page is not

1:25:45a link, which bothered me for years.

1:25:48How can you show me a URL that isn't a link?

1:25:51Yeah, that still is weird to me.

1:25:53Yeah.

1:25:54And I don't know the answer.

1:25:56Yeah, and now that they're not underlining them, it seems even weirder, right?

1:26:00Because the blue things, the blue and purple ones are links, but the green ones aren't,

1:26:05even though they are the URL.

1:26:07So I felt like at least when they were underlining them, there was some consistency there where

1:26:10only the underlined things are links.

1:26:15But I tried to keep an open mind about this.

1:26:18So here's my thinking.

1:26:19My thinking is that in traditional typography, and Guy English and I were talking about this

1:26:23a couple weeks ago. You should never underline anything. Like the whole thing that some of

1:26:28us grew up with, like a book title should be underlined in a report or something like

1:26:33that, was all because it was pre-word processing in computers. It was based on what you could

1:26:39do on a typewriter.

1:26:40Since you couldn't italicize on a typewriter, underlining was the best we could do. And

1:26:44so like when you were typing a manuscript for a book, if you wanted a word italicized,

1:26:50underline it. It was a, you know, that's what the, when the manuscript would go from the editing to

1:26:55the typesetters, when they saw something underlined, they wouldn't underline it in the actual novel,

1:27:00they would italicize it. And that if you can use proper italics and bold and even small caps and

1:27:08and all sorts of nice typographic things like that, there's never any reason to underline

1:27:13anything. And so I thought one of the genius things of the original web was that they took

1:27:19this needless type of graphic thing, the underlining, and gave it a new meaning, which meant instead

1:27:27of giving it emphasis or indicating a title or something like that, it meant this is a

1:27:31link.

1:27:32Mm-hmm.

1:27:33Yeah, and that was a smart move.

1:27:38Just that aesthetically, though, a lot of sites don't look so great with all those underlines.

1:27:43Your site's different, though.

1:27:44You're not using color for your links.

1:27:46Yeah.

1:27:47use one or the other. And since you're not using color, you have to have an underline,

1:27:52for sure.

1:27:52Yeah, I thought about that. Like I said, I want to keep an open mind. I thought, "Well,

1:27:58maybe I should reevaluate that." But then I thought, "Well, then how would I indicate

1:28:02a link because I don't have a color palette to work with?" And if I picked a subtle—I

1:28:07think something subtle that would fit with the daring firewall color scheme would be

1:28:11a huge usability nightmare because it would be too easy to miss that it's a link.

1:28:18Yeah, right.

1:28:21But do you worry about like—because I think about that. I try to think about color blindness

1:28:27and stuff like that. Do you worry on Inessential that your links don't stand out to people

1:28:31who are color blind?

1:28:34I don't worry, probably because no one's ever complained. Maybe that's a cop-out.

1:28:40But I also think, at least I hope, that the accessibility stuff has progressed to the

1:28:45point where it deals with those kinds of things for me.

1:28:49Because at that level, the software knows what's a link and what isn't and can do the

1:28:53appropriate things.

1:28:54I don't think that I'm – is there something though if you're colorblind that you can set

1:28:58your browser to somehow always highlight links in a color?

1:29:03I'm not aware of anything like that.

1:29:05I don't know.

1:29:06You know, I haven't looked at it enough.

1:29:07I think that for the truly vision impaired, for people who are blind or nearly blind who

1:29:13use special software for that, then it does highlight links.

1:29:18I think for people whose only issue with their vision is color blindness, depending on what

1:29:28colors you pick.

1:29:29I know that there's some cool apps that you can use that test, that simulate this using

1:29:36common forms of color blindness.

1:29:40But you think underlining, you think it's okay to not underline links?

1:29:46Yeah.

1:29:47Well, we've been doing it.

1:29:48We've been not underlining links for many, many years now.

1:29:53And the web seems to have gotten by okay.

1:29:56It does make.

1:29:58And so for example, and it's in a way that like you said, like the way that Google search

1:30:02results are laid out of have sort of like somehow it insinuated themselves

1:30:07just one level up from our lizard brains yeah over the years and I think that

1:30:11explains why all other search engines effectively copy that style I don't even

1:30:16think it's like a shamelessness I think it's because we you know like Bing for

1:30:20example is large you know the search results are largely formatted it's not

1:30:26exactly a pixel for pixel clone but it's pretty much the same fonts and sizes as

1:30:30as Google, I almost think it's because if they didn't, it would just be automatically

1:30:36rejected.

1:30:37Yeah, I think that's right. When people talk about something being intuitive, what they

1:30:42often really mean is, "Oh, it works just like this other thing I know about already." So

1:30:47that's the case. Bing's intuitive as long as it looks and works like Google.

1:30:52Right. I don't know if it's a good analogy or not, but remember when Pepsi came out with

1:30:59Crystal Pepsi.

1:31:01It was cola and it tasted like Pepsi, but it was clear like Sprite.

1:31:07And it lasted, I think, about a week.

1:31:10And I think it was because people, you know, if it tastes like Coke or Pepsi, it tastes

1:31:13like a cola, it has to be brown.

1:31:15And I feel like the same way, I feel like if you made like a lemon-lime soda, something

1:31:22like a Sprite or a 7-Up, but you colored it like Pepsi, it would be revolting.

1:31:27revolting

1:31:28Yeah, 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

1:31:34I have to admit though

1:31:36Now that I just quick toggle between a Bing result and Google result that the lack of underlines in the Google result does look pretty

1:31:43clean

1:31:45Mm-hmm

1:31:47Yeah, it's just struck me as very weird though and then hasn't stopped striking me in that way but you definitely noticed yeah

1:31:54Oh, yeah right away. I'm like, ah

1:31:56Yeah, I cursed at it actually.

1:32:02It is the sort of thing.

1:32:04For all the stuff, the other various things that Google does, I mention this every couple

1:32:09weeks on the show.

1:32:10It's just that there's an Android I'm not a fan of and there's all sorts of stuff about

1:32:14it.

1:32:15Google that pundit wise, I'm probably, if you want to say pro-Google or anti-Google,

1:32:22I'm anti-Google.

1:32:23I still have to say Google search is, to me, one of the eight wonders of the modern world.

1:32:35Even if you think about it, you can't help but take it for granted.

1:32:41And I think Google knows that internally because they've toyed with the advertising that they

1:32:46place in some ways.

1:32:47And I know that recently that they've sort of toggled the way that they've made the

1:32:55paid sponsored results a little bit less easily discerned from the regular results.

1:33:03But on the whole, given how important it is to the company and how much of the revenue

1:33:07comes from search ads and everything, they've stayed incredibly true to the original idea

1:33:13of Google search all the way back to, I don't know, 1996 or whenever it was when it was

1:33:19a beta. 99, I don't even know. But it's...

1:33:23Yeah, it's still very recognizably the same thing. I think the thing I don't like is integration

1:33:31with the Google+ social graph and trying to figure out what I want to see based on what

1:33:39my friends have searched for or something. I don't even know how that stuff works. It's

1:33:42no I want the I want what your regular algorithm would give me you know yeah

1:33:48exactly I want you to know nothing about me yeah yeah basically you know and like

1:33:54if I wanted to search for something local I would you know like a Yelp type

1:34:01thing where I want to find you know a good bagel place near where I am right

1:34:06now I would use something specific I wouldn't I don't want Google search to

1:34:09to solve that problem for me.

1:34:11I mean, Google can give me something to do that,

1:34:13but make it like a separate like Google local

1:34:16or something like that.

1:34:17I want google.com search to just be generic.

1:34:21Everybody in the world who types in the same thing as me

1:34:23should get the same results.

1:34:25- Yeah, this is kind of the front page of the web

1:34:30that we all have in common.

1:34:31- Yeah, I would say so, exactly.

1:34:35Last thing I wanna talk about

1:34:38I want to talk about your new podcast and that's what's called the record

1:34:44Mm-hmm, you're doing it with our mutual good friend Chris Parrish

1:34:49So tell me about the record

1:34:54so for a few years I

1:34:56had this in mind as a project where I wanted to

1:35:00capture the history of our of our developer community Mac and now iOS developers and

1:35:07For some part of the time I thought about doing it as a book

1:35:10But then about two years ago I realized, you know, this is probably better as a podcast

1:35:16You know can always be transcribed or bookified later, but the easiest way is to actually just record the interviews and publish them

1:35:23so I thought about that for a while and then it became a little more urgent to me when I saw at the

1:35:30experience music project museum here in town a Nirvana exhibit and

1:35:36I was lucky enough to go to go to college and in

1:35:40Olympia in the late 80s and saw Nirvana play at dorm rooms and everything so

1:35:45Went to this exhibit and you know, they had things that you know roommates and friends of mine

1:35:50You know were involved with and there was a lot of like my own

1:35:54Personal history, you know right there, but then I also realized there's a whole lot of stuff that happened

1:36:02Then that just was never recorded

1:36:05You know a whole lot of history and stories just gone because if you didn't realize at the time it was special

1:36:11Even though it was and it's a lot of type of stuff

1:36:15It's such a great great show, but it's stories that I you know

1:36:19some of them I've heard but a lot of them are things that you hear at like

1:36:23You know six o'clock having beers on a Wednesday during WWDC

1:36:30You know, and they're not like you said they're not recorded anywhere, right?

1:36:34And you say like hey, here's so-and-so. I haven't seen this guy in ten years

1:36:38What are you up to and then it's remember that time or remember this and then you get the story

1:36:43But then it's you know, like you said it's not recorded anywhere

1:36:46Which sort of you know plays right in to the title of the show the record. Mm-hmm. Yep

1:36:52It's a lot of fun to do and Chris I have you know

1:36:57Great plans for the future. There's all kinds of all kinds of

1:37:01one season I hope we do is

1:37:04um, uh, early indie heroes.

1:37:07So the idea would be to record the people who were Indies, uh, before me.

1:37:13So people like rich Segal, Dave Weiner, Mark Aldridge, uh, Peter Lewis.

1:37:19Uh, there's, there's a whole bunch of people and I would just love that because

1:37:22there's a lot of history there that I don't even know, but I I'm sure these

1:37:26folks would have some great stuff.

1:37:27I would imagine that I think I really do.

1:37:30And I'm just saying this cause it's cause I'm your friend.

1:37:32I really do think, it's such a great show,

1:37:34but I really do think that for people

1:37:36who listen to the talk show,

1:37:38who are looking for more shows to listen to,

1:37:40man, this has gotta be right up their alley.

1:37:43And I think it gets easily also separated

1:37:47and for two reasons.

1:37:48One, people who've never heard of these things,

1:37:51they're great stories, and it's some great products

1:37:55and technologies and stuff that maybe they'll hear about

1:37:57for the first time.

1:37:58And in the second group, probably, you know,

1:38:01let's just face it, the maybe slightly older group,

1:38:04or people, and/or people who have at least been

1:38:07using a Mac or doing nerdy stuff on a Mac

1:38:10for a longer period of time,

1:38:12who are gonna hear about these things again

1:38:15and be like, oh my God, I totally forgotten about that.

1:38:18And you guys, if you just go,

1:38:20the website is therecord.co, which is, I've told you,

1:38:24is an incredibly awesome domain name.

1:38:26Go to therecord.co and you'll see,

1:38:29there's six episodes so far.

1:38:30You guys, in addition to doing great shows,

1:38:33you guys kill it and just absolutely positively

1:38:37put me to shame on the show notes.

1:38:40- I love doing the show notes.

1:38:42So Chris does the editing, I do the show notes.

1:38:44And I just, I basically sit down with headphones on

1:38:46and every time there's any proper noun of any kind,

1:38:50I type it up until I have, you know,

1:38:53anywhere from 75 to 150 or so,

1:38:56and I have to go find links for everything.

1:38:59- But it's phenomenal.

1:39:00And if you just go through, and especially if you were around in the late 80s, early

1:39:0590s, IndyMac community, or just the Mac nerd community at all, you're going to see keywords

1:39:14in your list of these things.

1:39:15And you're going to be like, "I totally forgot about that."

1:39:17One of the ones that stuck out to me was from an episode a couple of shows ago, and this

1:39:22was just in the show notes, but MetroWorks Ron.

1:39:25I had totally forgotten about him.

1:39:28Yep.

1:39:29I had totally forgotten about MetroWorks, Ron.

1:39:32Yeah.

1:39:33What a guy.

1:39:34What a great time that was, too.

1:39:36It was a fantastic time.

1:39:37Oh, yeah.

1:39:38Because I think that that was the whole time.

1:39:40I mean – because I'd say the MetroWorks time was probably the mid-'90s.

1:39:48And so it coincided not – I think by definitely not coincidentally with the decline of Apple,

1:39:56right?

1:39:57time when Apple was in trouble. Tough period, yeah. Tough period. Where the indie

1:40:04Mac developer community has never, was never before and has never since been so

1:40:11independent of Apple. Like to call them an indie community is understating it. It

1:40:16really was like there were two worlds. There was the Apple world and the indie

1:40:21Mac world. And the indie Mac world was way ahead. You know, we had our own, you

1:40:26We had Metro works. We had our own development environment, which was better than what Apple was shipping

1:40:31You know and you mentioned Peter Lewis like Peter Lewis almost single-handedly brought the internet to the Mac. Oh

1:40:40Yeah, I mean and with all sorts of you know between anarchy and Mac TCP watcher and all this stuff. Yeah finger

1:40:48Finger. Yeah, right finger used to be an important tool. I

1:40:53I know that the people who don't remember it are probably,

1:40:57I'm gonna guess, very wrong with what Finger did.

1:41:00But if you wanted the Finger from the Mac,

1:41:05Peter had you covered.

1:41:07- Yeah.

1:41:08- But it's ridiculous to think back that Mac TCP

1:41:16was a third party tool.

1:41:20So if you wanted to get your Mac on the internet,

1:41:22You needed a third party tool.

1:41:25- And then you had to get a Mac slip or whatever.

1:41:28Mac PPP, yet another thing, right?

1:41:31To hurt your modem and all this stuff.

1:41:34Once you were on the web, wow, that was amazing.

1:41:37- And all that stuff came from outside Apple.

1:41:39Fantastic show.

1:41:43Again, I'm not just saying this because Brent's my friend,

1:41:47but I really think that talk show listeners are going to,

1:41:49if you haven't already subscribed,

1:41:50gonna love this show and just by looking at the show notes it should convince you

1:41:57and the website is the record co latest episode is Tim wood CTO of Omni group

1:42:04Tim's fantastic obviously you should know about the Omni group what's cool

1:42:09about them is they're all nexties rather than Apple right which is yeah

1:42:13interesting I wasn't there for that those stories so it's really cool to

1:42:17here.

1:42:18Yeah, I bet those are great. I bet that's great. I did not know he was CTO.

1:42:23Yeah.

1:42:24He's a good guy.

1:42:26Definitely. Yeah, well, the best.

1:42:27Let me see. I'm going to pick something from the show notes there. Oh, Will Shipley. There

1:42:35you go. You know it's a good show if Will gets mentioned. Anyway, there you go. Find

1:42:44out more at therecord.co. Brent, thanks for being on the show.

1:42:47Thanks, John

1:42:49I'll talk to you soon. Yeah, cool

1:42:53Thank you.

1:42:54[ Silence ]