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 ]