Minutiæ

Episode 104 • Released February 12, 2015 • Speakers not detected

Episode 104 artwork
00:00:00 There's brief moments of time when I listen to the two of you go back and forth.
00:00:04 And for a minute, I'm like, man, I'm not even here anymore.
00:00:08 And I feel ever so slightly sad.
00:00:10 But then I continue to listen to you two going back and forth.
00:00:13 And I just don't even care anymore because I'm entertained as hell.
00:00:17 We had recently received an email as recently as about two hours ago about how we say to each other or say actually to you, the listener, please email anyone other than us or please don't send us email, et cetera.
00:00:32 Would you like to talk a little more about this email?
00:00:34 all right so the the first sentence is i'm a little surprised about your whole email topic now this is already kind of like spreading the topic wider because this started with marco getting specific feedback and bug reports about overcast right but then this sort of expanded into like the entire topic of us getting email and so this feedback is not about marco and his bug reports really it's really about
00:00:58 When we say on the show, please don't email us about whatever, right?
00:01:02 So I already think this is kind of off topic and it's just like it's related to the discussion, but whatever.
00:01:07 He's not interested in really discussing how Marco handles his feedback.
00:01:12 He's more interested in discussing the joke that we do when we say, please don't send us email.
00:01:16 Um, and he says that it makes him feel like that we don't appreciate the listeners that, you know, let me find a good sentence here.
00:01:22 He says he loves us, loves the show.
00:01:23 It doesn't make me feel entitled to anything.
00:01:25 I know that obviously, and I know that it's impossible to get back to everybody, but what is it impossible is to appreciate your position, to appreciate the fact that people.
00:01:33 Devote their time to actually tell you what they think.
00:01:35 To appreciate that people are the ones that are attracting sponsors, etc.
00:01:39 To appreciate that a podcast by nitpickers is going to attract nitpickers.
00:01:42 To appreciate that so many people really care.
00:01:44 And I know you do appreciate your listeners, but the whole email joke, the whole annoyance is neither funny nor respectful.
00:01:48 It's strange, off-putting, very arrogant, and makes me kind of angry.
00:01:51 It makes my engagement feel pathetic and needy.
00:01:54 It's really not that hard just to say a few nice words, you know?
00:01:57 To this, I would say that we don't have a... Ignoring the fact that most of the time we're just joking, right?
00:02:03 Because jokes can be hurtful too, right?
00:02:05 we don't have a blanket ban on on email we don't say it's like a prohibition please in fact we encourage tacitly encourage email by responding to email on the show and a lot of the follow-up is about things that people send us either corrections for things or expansions on topics we take real-time feedback and real-time follow-up from the chat room from people saying the same thing right so it's clear that we're not like
00:02:28 Nobody ever emails anything, you know, for whatever reason.
00:02:31 We don't say that.
00:02:32 I mean, there's a feedback form on our site that I made when we made the site.
00:02:37 Like, we have this form on the site that says send feedback.
00:02:40 If we wanted to not actually receive any feedback, we would just take the form down.
00:02:44 Like Marco and his app doesn't want to imply that he's providing support.
00:02:48 He just provides the feedback.
00:02:49 So first of all, I would say the premise of the idea that we just are saying we don't want any feedback.
00:02:53 Like, that's not our message at all.
00:02:55 We do very frequently, though, say...
00:02:58 Please don't email us about whatever topic.
00:03:00 And that is specifically focused on whatever it was we were talking about.
00:03:04 So if it's like, you know, I'm going to tell you about this toaster oven I got.
00:03:10 Please don't send me email about slot toasters.
00:03:13 And then I follow up by saying, I know about slot toasters.
00:03:16 I know slot toasters exist.
00:03:17 I know that they are different than toaster ovens.
00:03:19 I am reviewing toaster ovens, right?
00:03:21 And they're worse.
00:03:24 And part of that is like,
00:03:26 The please don't email thing is a long-running gag from any podcast that we've listened to and been on in the past.
00:03:30 So if you don't have that context, maybe that doesn't make much sense.
00:03:32 It's also kind of a joke like, oh, I don't want to hear from those people who are just going to tell me about the slot toasters, right?
00:03:37 But it's very specifically focused on this one thing.
00:03:39 It is not saying please don't email me ever about anything.
00:03:42 If you know something cool about a new DisplayPort specification, yes, send us the email about it.
00:03:48 If you say, I've been an Apple genius for X number of years and this is my experience, yes, send us email about it.
00:03:53 Of course we want that email.
00:03:54 We read it on the show.
00:03:55 We appreciate it.
00:03:56 We appreciate our listeners.
00:03:57 I don't want people listening to think, and I don't think most people do, but this person does apparently, that we don't want feedback from anybody.
00:04:05 It's 50% of the time a joke and the other 50% of the time very focused kind of exasperation at a particular type of feedback that we expect to get because we said something that we know leaves us open to a particular kind of correction.
00:04:18 And we're trying to say, you don't need to send us that correction because we are fully aware that we have either intentionally ignored this thing or whatever.
00:04:25 Right.
00:04:26 It's a way... I use it as a way to preempt getting a whole bunch of emails that begin with, well, you know, and some big argument about something that I know the thing I just said is contentious, or I know there is something that other people are going to want to tell me about what I just said.
00:04:43 And I'm just... I don't want to engage that entire discussion right now.
00:04:46 I don't...
00:04:47 It's a way for me to basically try to try to preempt getting a whole bunch of duplicate emails telling me something I already know.
00:04:54 And that saves everybody time.
00:04:56 And that's not to say it's not annoying.
00:04:57 If you're annoyed by it, it's totally your right to be annoyed by it.
00:05:00 It can be annoying.
00:05:00 I fully admit that.
00:05:02 But we are human and we get exasperated sometimes to express that on the show.
00:05:06 So this email was from a Pell D. I feel like we should attribute, uh, I'm, I'm assuming him.
00:05:13 Um, and what I, I had replied to him or her, I'm thinking him, uh, and saying, and what I said was, um, we don't, or we say, don't email us either because we really don't care about the minutiae, minutiae, minutiae, the, all the nuance of the topic at hand.
00:05:30 You're going to get on me about bezel, but you're going to go minutiae.
00:05:34 Minutiae, Tacey.
00:05:36 Touche.
00:05:38 I was pretty sure it was minutiae and that I was envisioning all the emails of it saying to me, no, it's not minutiae, it's minutiae.
00:05:43 So should people not email you about the correct pronunciation of minutiae?
00:05:47 So please do not email me.
00:05:50 That's a perfect use.
00:05:52 It's a perfect use of it.
00:05:53 Anyway, let me try this again.
00:05:56 So we say please don't email us either because we really don't care about the minutia of the topic at hand or because we know we won't be able to respond to everyone.
00:06:05 And actually, that reminded me as we were talking of another piece of follow-up, which is I saw a handful of people, generally speaking from Europe, who seemed confused about the whole toaster oven thing.
00:06:18 Yeah, someone asked me, isn't that just a grill?
00:06:20 And then I realized we had a language barrier between English speakers.
00:06:25 I think it was someone from the UK or some other thing that Marco can tell us the correct name of.
00:06:30 Can we maybe just put a U somewhere in it?
00:06:32 Would that make them know what we're talking about?
00:06:34 A toaster oven?
00:06:34 Yeah, no, it was great.
00:06:36 It was great because someone said, isn't that just a grill?
00:06:38 And I replied, no.
00:06:39 because i didn't look up like where they were from or something but i was confused by it and then another person who obviously knows speaks the variant of english that that person was speaking tweeted back to them said i think that what you mean by grill isn't what they mean by like seriously it's like an actual language barrier we don't know the words for things but we put links in the show notes right like you can click on them and see what it is it's a thing toaster ovens are a thing in america anyway
00:07:02 And so if you live in one of these barbaric countries that doesn't really have a toaster, doesn't have toaster ovens, basically it's like a little tiny oven that can serve either as a toaster or an oven, hence toaster oven.
00:07:15 And they're extremely convenient if you'd like to reheat something, especially something bready.
00:07:21 Pizza being the most obvious example, french fries, anything like that.
00:07:26 If you want to reheat something bready, but you don't want to do so in the microwave because then it'll end up all gummy.
00:07:32 A toaster oven is a great way to do it.
00:07:33 Now, yes, you could use a traditional oven, but why in the world would you start up what is probably multiple square feet worth of space to heat one slice of pizza or two slices of pizza?
00:07:44 And so a toaster oven is the best of both worlds because it's a little tiny oven, big enough for usually a slice of pizza or two, or it's a toaster, big enough for maybe a couple of bagels or something like that.
00:07:54 Right.
00:07:54 And it tends it tends to heat up just about as quickly as doing it in the microwave for me.
00:07:58 Like if you're going to I mean, it's it's, you know, not 30 seconds, but if you're going to reheat a slice of pizza, a toaster oven has it done in like two or three minutes at most.
00:08:06 And so that's it's way faster than using a full size oven.
00:08:09 Nobody should ever put a pizza in a microwave.
00:08:12 I just want to say.
00:08:12 Oh, I completely agree.
00:08:14 But anyway, so if you don't know what a toaster oven is, well, perhaps it's time to move to a different country.
00:08:21 But nevertheless, maybe you could import it or something like that.
00:08:24 Nationalized healthcare or toaster ovens?
00:08:27 I'm going toaster ovens.
00:08:28 I think I might too.
00:08:30 The brand of my toaster oven, Breville, apparently that's a proprietary eponym.
00:08:34 See, I did remember that from the past episode.
00:08:36 It's pronounced Brazil.
00:08:37 That is a proprietary eponym in the UK, like Kleenex or whatever.
00:08:42 And so someone in the chat room says a Breville.
00:08:44 refers to something we would call a grill in the UK for sandwiches.
00:08:47 So they've taken that entire brand and turned it into, you know, the signifier for the entire category of things like a panini grill type of thing or whatever.
00:08:56 But anyway, that's definitely not what I'm talking about.
00:08:57 Again, follow the links in the show notes.
00:08:59 We'll show you exactly what we were talking about last week's show notes, not this week's show notes.
00:09:03 Yeah, we're not going to put in this week's show notes because it was already there.
00:09:05 You should have clicked the links, kids.
00:09:08 Our first sponsor, before we've done a single topic, is Igloo.
00:09:12 Igloo is an intranet you'll actually like.
00:09:13 It's kind of funny that this is the first tech that we're discussing is the sponsor read itself.
00:09:17 with igloo you can share news organize your files coordinate calendars and manage projects all in one place this is like taking the best of the web and productivity apps things like calendars twitter like microblogs file sharing task management wikis and more all available privately and securely for your company or group intranet igloo intranets are highly functional stylish and easy to use with a widget-based drag and drop interface their latest upgrade viking revolves around documents and how you interact with them gather feedback and make changes
00:09:47 They've even added the ability to track who has read critical information to keep everyone on the same page.
00:09:52 It's kind of like read receipts in your email, but less annoying.
00:09:55 And it helps you track whether employees have read and acknowledged policies, signed off on legal agreements or confirmed completion of training materials.
00:10:02 All very useful stuff if you're running a company.
00:10:04 Igloo is all built on their advanced HTML5 platform.
00:10:08 It's a fully responsive platform and offers all these features.
00:10:11 Even things like previewing and annotating documents.
00:10:14 You have to render an Office document and have annotations on it.
00:10:17 All that is done in HTML5.
00:10:19 So it works no matter what device you're on.
00:10:21 You have all that functionality, all the annotations, all the admin controls, everything.
00:10:24 Whether you're on a computer, iPhone, Android phone, or even a BlackBerry.
00:10:28 And when new devices and screen sizes hit the market, Igloo already works on them.
00:10:31 So if your company has a legacy intranet that looks like it was built in the 90s, you should definitely give Igloo a try.
00:10:37 Igloo is even completely free to use for as long as you want if you have a group of 10 or fewer people.
00:10:45 And then if you get past 10 people, it's very reasonably priced after that.
00:10:48 So really, if you have a group of 10 or fewer people, Igloo's free for you.
00:10:52 Just go try it.
00:10:52 It's amazing.
00:10:53 Anyway, sign up for a free trial at igloosoftware.com slash ATP.
00:10:59 That is igloosoftware.com slash ATP.
00:11:02 Thanks a lot to Igloo for sponsoring our show once again.
00:11:04 They've been a longtime sponsor and friend of our show.
00:11:06 Yeah, very much.
00:11:07 Thank you, Igloo.
00:11:09 We should talk about the Photos app that we all thought may have kind of gone away.
00:11:15 Hang on.
00:11:16 Real-time follow-up on the Breville.
00:11:18 It's not a Panini press.
00:11:19 Look at the thing I just put in the show notes.
00:11:21 It's the thing that, like...
00:11:22 it's like a a clamshell thing that closes and it has two little compartments for uh bread like if you cut a piece of bread on a diagonal and it kind of like heats them from both sides different than a panini press which is you know the flat surfaces with the little ridges on them this is a common thing like that's what they prefer to i've seen them in the u.s i just i don't think many people have them but that's what they call it that's what they call a breville and if you read the history of the thing
00:11:46 That's really peculiar.
00:11:47 I mean, well, I've seen them before, but looking at the chat room, it seems like in the UK and Australia, everyone has one of these.
00:11:54 And I cannot think of any one of my friends or family that has one.
00:11:58 So it's labeled there as a durable stainless steel Jaffle maker.
00:12:01 So are those Jaffles?
00:12:02 Is that like, that's what we call this thing?
00:12:04 Yeah, I don't want to try to pronounce that word.
00:12:06 Maybe it's Jaffle.
00:12:09 Jaffle, like waffle?
00:12:10 Oh, goodness.
00:12:12 So quick aside, I was at work.
00:12:14 This was a year ago now.
00:12:16 And somebody was – one of my coworkers was talking about doing something in JavaScript.
00:12:22 And at one point, he said something about JSON.
00:12:24 And I was like, what?
00:12:25 Oh, my God.
00:12:26 That's what the French called it.
00:12:28 And it took me a minute.
00:12:30 I think he was saying it, you know, comically or ironically or whatever.
00:12:34 But what I heard, Jason, I was like, wait, what?
00:12:38 And sure enough, he meant Jason.
00:12:39 I just did it again accidentally.
00:12:41 My boss used to say H over.
00:12:44 H over.
00:12:45 That's when you put your H over an item.
00:12:47 And the H over style and the links.
00:12:51 Well, he was just avoiding trying to pronounce that word because he knew it was such a problem.
00:12:55 That's true, because you never know when that'll go wrong.
00:13:00 But for the record, it's hover.
00:13:01 We'll talk about them in 20 minutes.
00:13:03 All right.
00:13:03 Sorry for the derail.
00:13:04 Photos.
00:13:04 Back to photos.
00:13:06 So let's talk about photos.
00:13:08 We had all, not genuinely, but kind of wondered, hey, what happened to photos?
00:13:12 Because somebody had pointed out to us that it disappeared from Apple's website.
00:13:16 Well, apparently it's back.
00:13:18 It's back in a big way because it's actually in the latest Yosemite beta.
00:13:23 Now, have either of you guys tried this?
00:13:25 But are you crazy?
00:13:26 I was actually going to try it, like not on my computer with my actual photos, but just just to load the program and throw some sample photos at it or whatever.
00:13:33 But then I realized that I'm pretty sure this is still the case that you have to upgrade to the 10.10.3 beta.
00:13:40 And I wasn't willing to do that just just to try the photos app.
00:13:43 So I'll just wait.
00:13:44 Yeah, that's the reason I'm not using it.
00:13:45 It's because I'm not going to run a beta OS on my main computer.
00:13:49 So that's not going to happen.
00:13:51 I've already put in a lot of time doing stuff like that.
00:13:55 I deserve a break.
00:13:57 I also feel like this is a good opportunity that I really should take to go back and clean out some of my photo library.
00:14:03 Because there's so many times, I'm sure this happens to a lot of people.
00:14:07 I'll go on a trip or something, or we'll do a shoot with the kid or the dog or both or whatever.
00:14:12 And I'll just dump all the photos into the photo library and then just never really pick through them.
00:14:17 So I have these giant like 30 gig folders full of some shoot or something like that.
00:14:22 And it's like if I just took an hour to go through this, I would probably delete 95 percent of those pictures and just keep like the 5 percent of the best ones that I actually want to see again.
00:14:32 Uh, and basically I need to apply that process to like five years of photos.
00:14:38 I, it's like spring cleaning.
00:14:39 Like I keep meaning to do this and maybe this is like, maybe this is my motivation to do it finally.
00:14:43 Do you guys have that problem?
00:14:45 I used to use iPhoto.
00:14:48 This was, I don't know, three, four years ago now.
00:14:50 And I felt it was nothing but a burden.
00:14:53 And there's probably a million and seven ways that you can blame that on me, and probably a million and six of them are correct.
00:15:00 But for whatever reason, I just didn't have a workflow that really worked well for me.
00:15:04 And what I've ended up doing since then is just eschewing – that's how you pronounce that word, right?
00:15:08 Eschewing iPhoto altogether.
00:15:10 This is the Accidental Pronunciation Podcast.
00:15:12 And and now what I'm doing is and I think it was Bradley Chambers learning to love photo management in combination with some some scripts from Dr. Drang.
00:15:23 And so basically what I do is I have all of my pictures renamed consistently and stored consistently in my file system.
00:15:31 And that's as close as I get to any sort of organization.
00:15:33 And I wish I had a better organization system insofar as something where maybe I've tagged pictures that I think are really good or I've grouped them into events or what have you.
00:15:43 The sorts of things that I suspect Photos app will be great for.
00:15:47 But for whatever reason, it just felt like such a pain in the butt with iPhoto that I never really did it.
00:15:52 I think I've described my system before.
00:15:54 I put them all in iPhoto and then I star rate them.
00:15:57 And the only cleaning I really do, I tend to be like not want to get rid of pictures of my kids, even if like they're not framed correctly or even if they're a little out of focus, because sometimes they're still cute.
00:16:08 But what I do is I do rate them all.
00:16:10 and when i feel like doing a little cleaning i just show all the one stars and the one stars are basically like you should really delete these because the lighting is really bad or it's blurry or whatever like and i will delete as i'm i'll look at every picture when i load them into i photo i'll delete the ones obviously they're like excellent took a picture of my foot or like something you know they're totally bad but all one star ones and then when i want to clean it's really easy for me to just show a smart album that shows one stars and then just go through and just delete whole swaths of them
00:16:35 Yeah, but see, then you can't see the ones around them that were better, so you could really know, like, all right, which of these do I need to keep?
00:16:41 One star means, I mean, I can look at the pictures.
00:16:43 It's like, these are so blurry.
00:16:45 I'm not one-starring.
00:16:46 If it's in focus and people are in the front, those never get one star.
00:16:50 One star basically means you should really delete this.
00:16:52 One star is the thing that most people would delete immediately.
00:16:54 I just let them stew, and then if I feel like cleaning house, I'd delete all that.
00:16:58 I think I deleted every one star from my collection a couple years ago, and it was a lot of photos, but now I just kind of let them build up.
00:17:04 maybe you're just letting them develop like a polaroid like figuring maybe it'll get better if i just leave it here for a little few more hours yeah and also like a picture that is actually out of focus sometimes we do like family calendars where you and you know make the calendar for the year with pictures and everything and they have these little collages where you can put the pictures and sometimes there's little spots on the calendar for small photos and even a picture that's blurry like it's not in focus when you shrink it down to be like one of the small thumbnails kind of at an angle in the corner of a calendar thing it doesn't actually even look that bad so
00:17:34 occasionally that's why i'm kind of keeping the one stars around or if it's like trying me trying to see a picture of like what some where what do i have on this shelf in this year or where was that thing or whatever like you know i wish i wish the system was more intelligent about finding things for example i do keyword them but my keywords are limited to like i have a keyword for each of my children and then one keyword for me and my wife because i'm not going to do us individually you know what i mean
00:18:02 And that's about it.
00:18:03 And you think, why do you need to do that?
00:18:05 Doesn't the faces feature find all the people that you want for you?
00:18:09 Well, I started doing this before the faces feature existed, long before, first of all.
00:18:12 But second of all, no, it's not reliable enough.
00:18:15 Like me manually keywording them is much more reliable than faces.
00:18:18 I wish I could turn faces off because it's always grinding away.
00:18:21 making the fan spin up on the macbook air to try to detect people's faces but that's the same thing i do with itunes starring them and basically using the star as a threshold system easily lets me sort of get what people are trying to get by cleaning things out which is just like just show me three stars are better those are the good pictures there's very few of them suddenly my collection becomes small and manageable and if i want to share photos on you know photo stream or you know send them to relatives i just show the three stars it's super manageable and
00:18:48 People want their collections to actually be like that.
00:18:50 I can't bring myself to throw out the two-star ones, but the one-star ones, they do delete.
00:18:54 Now, going back to the photo app for a second, I think... So, one thing that we were skeptical of or hesitant or whatever the right word here is... We are disasters.
00:19:04 Yeah, right.
00:19:05 I'm still sick.
00:19:06 I have a good reason.
00:19:08 Is that we were wondering, like, you know, one of the issues with...
00:19:11 cloud service backed things, and iCloud stuff in particular, is that there's pretty much no visibility into the storage and no recourse if it does something crazy, like delete half your contacts.
00:19:23 It's pretty hard to recover from that in a lot of cases for a lot of these services.
00:19:27 And if you have this on your Mac and it has all these files sitting there locally, you can back up these files and then hopefully have some way to re-import them if you had to like nuke your whole iCloud account and start clean or restore a bunch of stuff that was deleted.
00:19:42 And it seems from earlier reports that the storage layout of it, you can import things off disk and it can just leave them where they are and not copy them in.
00:19:52 But by default, it seems to maintain a very iPhoto-like library structure so that these files are just sitting there as files on your disk.
00:19:59 All of your photos are there by default.
00:20:01 It will only be smart and try to delete some of the originals or, you know, cache things online only if you enable the special, like, low space mode.
00:20:09 So you can just have, like, one computer that has the whole library on it and has all those originals sitting there as files, and you can always re-import them later.
00:20:16 So it does seem like it is durable enough in that way to be used as your main photo app, at least once they work out any glaring bugs.
00:20:24 it's actually even better than that like we should explain what the experience of this is so iPhoto was an app and Aperture was an app that Apple had both discontinued both being replaced by this app both mediocre yeah functionality wise photos does not include all the functionality of Aperture it includes most of the functionality of iPhoto but so this this application is coming into people's lives with the expectation that you've already got all your photos in one of these other applications or in a folder of crap somewhere
00:20:48 And it handles all those situations.
00:20:51 So like if you have an iPhoto library, when you start it up, it will import that iPhoto library and it won't actually make duplicates of the files.
00:20:57 It'll just make hard links to them.
00:20:59 We'll put a link in the show notes explaining the hard links.
00:21:01 However, basically, it doesn't take up any more room on your disk, but it makes a separate parallel structure of its own.
00:21:06 At that point, your libraries are divorced from each other.
00:21:09 And if you make changes to either one of them, the changes are no longer visible.
00:21:12 So it's a one time kind of import process that doesn't actually take up much more disk space.
00:21:17 But at that point, they're diverged like they're not kept in sync with each other.
00:21:21 If you have a file full of pictures that just like you've organized yourself, you can just start photos up, make a new empty library and import those pictures.
00:21:29 I believe it will copy them.
00:21:31 And no, it won't copy them in that case.
00:21:32 You can tell it to leave the pictures where they are.
00:21:33 There's a preference, kind of like the iTunes preference of copy media into the library.
00:21:37 You can tell it, don't move my stuff.
00:21:38 I have it arranged in folders.
00:21:40 Just reference them from where they are.
00:21:41 And it will do that.
00:21:42 It will leave them in your nice organized folder structure.
00:21:44 It will put a little thing in the app that shows you like, oh, by the way, this picture isn't in a library.
00:21:48 It's referenced from another location.
00:21:50 and if you want to work that way which i would totally recommend not doing because it's crazy and you're a crazy person the application will do that for you you can put you can organize your photos into little folders by date and name them whatever the heck you want and then just reference them from the photos app and continue that crazy workflow where you act as a little person putting things into folders and then reference them from the application and just like iPhoto you can hold on the option key on launch and switch among different libraries the only
00:22:16 limitation you have is and this is all just like totally local forget about network connection this just works totally locally no cloud stuff involved at all right if you want to do some cloud stuff then you can designate one library as like the what the system library whatever like the iPhoto the iCloud library one library on your system can be
00:22:36 cloud backed up and then you have the choice of do i want to keep all the originals on my mac and then also put them in the cloud or do i want to use like whatever it calls like smart or advanced storage or whatever some other preference that says i don't care if they're all on my mac you can actually take some of them off my mac as long as they're in the cloud and that's the second option so this is an extremely flexible application that does things in pretty much the smartest way possible given the current file system technology we have that leaves every person
00:23:01 able to do whatever it is that they want with their photos.
00:23:04 The only bad thing about it transition-wise is if this app is completely buggy and erases stuff and destroys your photos and they get lost in the cloud and everything,
00:23:12 any changes you made after that initial kind of one-time import process will be lost because once you do that import, you are now leaving iPhoto behind.
00:23:21 I suppose you could import your photos into both of them in parallel, but then you will actually be duplicating because the one-time import with the hard linking stuff, it doesn't take up much more space.
00:23:30 That's not an ongoing thing.
00:23:32 So there is a transition point.
00:23:34 And so I suspect if I try out this program, I will try it out and then
00:23:39 I don't know, maybe just like bail out after importing a couple of pictures into it and then re-import those same things into my iPhoto library.
00:23:46 Like I still don't have a good transition pan, but spec wise, the photos application seems like it does all the right things to make everybody except for Aperture users who are screwed.
00:23:57 It will import your Aperture library to everybody, everybody happy except for the people who use Aperture and will miss all the features that Aperture have.
00:24:03 This doesn't have in terms of advanced photo editing.
00:24:06 Well, the editing controls are actually not that far off.
00:24:09 This is one of the reasons I'm very excited about this app, that the actual editing process and the controls you have for editing are very advanced and really are pro-level editing tools compared to Aperture and Lightroom.
00:24:22 Lightroom is probably slightly more advanced in certain areas.
00:24:24 Aperture, I'm not sure.
00:24:25 I haven't used it in a couple of years, but it's probably very closely matched to those editing tools.
00:24:31 Where it falls short is in the organizational tools of things like Aperture and Lightroom.
00:24:36 And especially if you're coming from Aperture, I think it's going to be... If you were really heavily using those organizational systems of vaults and all these things, most of that is not going to transfer over gracefully.
00:24:48 So that's really where Aperture users are going to be very rightfully upset.
00:24:53 But besides that, it looks... Again, I haven't used it yet, but it sure looks like the editing and processing of the photos is just as good as Aperture was.
00:25:04 But they don't have the interface of doing the pics.
00:25:06 A lot of Aperture was about professional photographers taking lots of photos and then...
00:25:11 designating the ones they think are good in sort of an efficient manner like it's not there's no workflow like that as far as i can tell built into photos whereas aperture so much of aperture was focused on on you know the editing tools which is one thing and then this whole you know like you said the vaults and the management and then the picking process i forget what they call it is that the word they use i think so i might be i don't know again it's been a couple years since aperture but
00:25:33 But yeah, Aperture and Lightroom are both going to be way better for what pros actually do.
00:25:38 My wife, Tiff, is not going to use this Photoshop.
00:25:41 I can already tell you that.
00:25:42 She's not going to use it.
00:25:43 Even Aperture and Lightroom are too heavy-handed for her.
00:25:47 She just uses Bridge and a bunch of directories because when she does client shoots, she doesn't want to bring it into some giant library program and have it organize things for her.
00:25:55 She does it all in the file system with Bridge and does all the picking that way and it works great for her.
00:25:59 most pros are going to have a system like that where they're going to use one of these pro apps to do all that organizational and stuff and managing the shoots and managing the picking and all that stuff.
00:26:09 They're not going to use this app, but that's fine.
00:26:10 This isn't made for them.
00:26:12 This is made for the people like me who, and of course, everybody else, but like,
00:26:17 people like me who were using Aperture and or Lightroom for its advanced editing controls primarily.
00:26:24 And then secondarily, we would occasionally touch some of these library functions, but we were mainly there for the editing controls.
00:26:30 That's definitely the case for me.
00:26:32 I know it's the case for a lot of people who bought SLRs in the last eight years and got into photography as a nice hobby.
00:26:41 Just having these nice editing controls...
00:26:43 built into the main photos library mechanism on iOS devices and Macs is going to be awesome.
00:26:49 Because for all these years, we've had to decide between something that's fully integrated into Apple's ecosystem and syncs everywhere and is all in all the photo pickers and all that stuff, or has great editing controls and pro stuff.
00:27:03 And there were always these things you'd have to give up one way or the other.
00:27:06 And this looks like it's perfect for people like me.
00:27:10 Any prosumer who's really into SLR photography but is not doing pro photo shoots actually for clients every day or on the weekends or whatever.
00:27:20 This is for us and I'm very much looking forward to that.
00:27:22 I think the editing controls, like the adding intelligence to the editing controls is really important because they...
00:27:27 The default for most photo apps, including Apple's, with the exception of the little magic wand enhance button, like they gave you one button.
00:27:34 It's like you don't understand all these crazy controls.
00:27:36 Press the magic wand and maybe it will make your photo look better or maybe it won't.
00:27:39 And if you press that button and didn't like it, you're like, whatever.
00:27:41 But then you're faced with, OK, well, so the magic wand didn't work.
00:27:44 Here's 8000 sliders.
00:27:45 Good luck.
00:27:45 Right.
00:27:46 And if you don't know.
00:27:47 how to use those sliders.
00:27:49 It's daunting to figure out how to, you know, with this million different combinations, and you're trying like, I don't know, do I move this and that or whatever?
00:27:55 Well, so photos has this sort of intelligent thing where they give you sliders that are sort of meta sliders that cause the other sliders to move in what it hopes are pleasing ways.
00:28:03 And you're like, Oh, well, that's bad.
00:28:04 I don't want it to be smart and move those other sliders around.
00:28:06 I want to move the actual sliders.
00:28:07 Well, the great thing is you can use these, these meta controls that influence the other sliders.
00:28:12 To try it, like most people can do that and say, oh, I would never have thought to put those other sliders in this position.
00:28:17 But when I slide this top slider, all these other things move around.
00:28:19 But you still have the ability to edit every single one of the detail sliders manually as well.
00:28:24 So if you want to use the sliders by hand, you can.
00:28:27 But most people have no idea how to get good results with that so they can use those other meta sliders.
00:28:30 So it's a big step up from either magic wand or you're on your own.
00:28:34 and all these edits are fully synced not not just like burning it into a jpeg and syncing that the actual edit states are synced so that you can go on your phone or your ipad and make adjustments and that syncs back well in theory i mean let's be serious here well i mean this is all based on cloud kit so far our cloud kit stuff has been solid why didn't my contacts sync marco contacts it's like a tiny set of data why
00:28:59 That's a good question.
00:29:00 I have no idea.
00:29:01 My faith is like, yeah, I'm ready to be impressed.
00:29:05 It seems like, you know, I've heard rumblings.
00:29:08 I'm sure everyone's heard these rumblings that like Eddie Q's team took over iCloud something something and was really like revolutionizing and fixing stuff like a year ago.
00:29:18 Like that's when all this stuff started, allegedly.
00:29:20 and it seems like CloudKit and the cloud photo library stuff and all the stuff that came out of that that's all based on CloudKit seems like that is most likely to be the result of that rumor and that we're seeing now.
00:29:34 They're doing good things with cloud stuff now.
00:29:38 Rather than the initial iCloud services stuff, which was...
00:29:42 The document stuff, which is a fairly simple problem set, but it was done kind of oddly, but mostly worked.
00:29:49 Key value store, which works all right.
00:29:50 And then Core Data Sync, which was a disaster.
00:29:53 Because they tried to tackle this incredibly complex problem that really can't be done well in the way they attempted to do it.
00:30:00 And of course, so it sucked.
00:30:02 CloudKit was like... We talked about this when they announced it back in the summer.
00:30:05 CloudKit is...
00:30:07 Apple kind of saying, okay, we're going to do a cloud service that actually is much easier to do well.
00:30:13 And so far, it seems like they did.
00:30:16 So I'm pretty confident in this service probably being good.
00:30:22 I mean, we'll see what happens in practice once it's launched full scale and everything.
00:30:25 And we've all been using it for a few months.
00:30:27 But I think all the pieces seem to be in place for this to actually be good and work pretty well most of the time or all the time.
00:30:35 Well, just the fact that they're dogfooding it so heavily, I think, is a pretty big change from, say, iCloud with core data or core data with iCloud or whatever the terminology was.
00:30:45 The impression I had was that nobody was dogfooding that.
00:30:48 But just like you said, Marco, it sounds like…
00:30:51 Apple's heavily dogfooding cloud kit.
00:30:55 And that's definitely a good thing for all of us because I think Apple is fairly tolerant of third-party developers having to jump through hoops and fairly intolerant of their own people having to jump through hoops.
00:31:08 Oh, yeah, that's fair.
00:31:10 And as far as I know, I don't think any Apple app ever used Core Data Sync.
00:31:15 I'm pretty sure we never found one.
00:31:16 I know some people were trying to, like, they were asking around on Twitter, like, you know, a year ago, whenever, like, does any Apple app actually use this?
00:31:21 I don't think we ever found one.
00:31:23 But anyway.
00:31:24 i'm confident and also you know i wouldn't necessarily like be all nostalgic for aperture because apple has been a terrible steward of aperture since the beginning like it it always had delays issues it was always pretty buggy it always had terrible performance there's a most of all just it would just go years without any major updates and everything was always just you know too little too late it was always getting better soon and never actually great that's why lightroom does so well because like a
00:31:54 Apple basically said, hey, we're going to... Apple, I think they basically invented the category of apps that work like this, basically.
00:32:01 I think.
00:32:01 I'm not sure about that.
00:32:02 Please email Casey.
00:32:06 And then Adobe came in with Lightroom and just ate their lunch because they just iterated so much faster and it was so much better.
00:32:13 You know, Apple really, you know, Aperture was always pretty badly neglected.
00:32:16 So, you know, rose colored glasses and everything.
00:32:19 I don't think we're going to see people looking back in six months saying, oh, I really miss Aperture.
00:32:23 Like, I don't think so.
00:32:24 And for the few who do say that, I think they're probably going to be misremembering how good it actually was.
00:32:31 I thought I saw somewhere, and it might have been in Jason Snell's review, but I thought I saw somebody had loaded just a crud load of images of pictures into the new Photos app, and they said you could scroll that thing at a solid 60 frames per second like it was nothing.
00:32:46 I will be excited to see that if that's true.
00:32:48 That's why I wanted to try it.
00:32:49 I'm like, I've got to see this because it is so terrible on iPhoto.
00:32:52 I have maybe 30, 40, maybe I have more than that, 40,000 photos, 50, and maybe it's up to 60.
00:32:57 Anyway, it doesn't seem like that big a number, but I want to see that scroll nicely.
00:33:01 We are also sponsored this week by Hover.
00:33:05 Hover is the best way.
00:33:06 Oh, it's also Hover or Hava.
00:33:09 All of those things.
00:33:10 Hover is the best way to buy managed domain names.
00:33:12 Go to Hover.com and you can get 10% off your first purchase by using promo code SLOTTOASTERPEOPLE.
00:33:19 Slot toaster people.
00:33:21 When you have a great idea, you want a great domain name that's catchy and memorable.
00:33:24 Hover gives you exactly what you need to find the perfect domain for your idea so you can get started actually working on it.
00:33:30 Like I've mentioned before, if I am working on a new project, I need to find a name first.
00:33:34 I can't really move forward without a name.
00:33:37 That just blocks me until I get a name and domain names are the very first thing I go to search.
00:33:40 and hover is great for that hover gives you easy to use powerful tools to biomanage domains so anybody can do it and the support team is always ready if you need a hand they're known for their no wait no hold no transfer phone service so you when you call a real life human being is ready to help they pick up the phone that's it they're ready to help you don't put on hold you're not transferred to anybody that's it they pick up and they help you it's amazing
00:34:03 Plus, they have great online tutorials and email support if you hate the phone like me.
00:34:08 You can find new domain names that you want to get up and running in less than five minutes.
00:34:11 All you got to do is type in a few keywords, and Hover will show you the best available options across all TLDs out there.
00:34:18 Now, if you've ever used any other domain host before, you know that it can be a pretty unpleasant experience at a lot of these different companies.
00:34:25 They make it very complicated to buy just what you need, or they try to upsell you with crazy stuff, or they make you pay extra to upgrade for things that really should be included.
00:34:34 Hover does not believe in this kind of approach.
00:34:36 Instead of charging you for something that should just be there, Hover includes everything you need with your domain.
00:34:41 You get a smart control panel, you get Whois privacy, always for free on any domain that supports it.
00:34:45 They even offer this really cool service called Valley Transfer Service.
00:34:48 And what they do is, if you will let them, they will log into your old registrar and do any transfers for you.
00:34:55 They'll transfer over all your DNS and everything, so it's all correct.
00:34:58 It's very easy to get that stuff wrong, and then your site's down for a few hours.
00:35:01 It sucks.
00:35:01 They will log in and do it for you if you want, because some registrars make it pretty difficult to leave, and of course they don't.
00:35:08 They also have this great email service.
00:35:09 Hover has great solutions for your own custom email address for your domain.
00:35:13 20 bucks a year gets you a fully functional email account at your domain with 10 gigs of storage.
00:35:18 You guys remember when Gmail came out, it was one gig.
00:35:21 This was like in 2004.
00:35:23 And that was revolutionary to have a gigabyte.
00:35:26 No one could ever use that much.
00:35:28 Well, we do.
00:35:29 And Hover now offers 10 gigs a year for just 20 bucks.
00:35:32 Now, if you need more than that, for just $29 a year, you can get the big mailbox.
00:35:37 It's actually what it's called.
00:35:38 It's called big mailbox.
00:35:39 That gets you a terabyte of storage, plus some other nice bonuses.
00:35:42 So $29 a year gets you a mailbox that can hold a terabyte of email, which I think sounds like my personal hell.
00:35:49 They even have email forwarding for just $5 a year.
00:35:51 So you can keep using, if you already have an email account somewhere else, like Fastmail, whatever, you can keep using that for just $5 a year that will forward your email for your domain to anywhere you want.
00:36:00 Anyway, all this is great.
00:36:01 You can get 10% off your first purchase from Hover by going to Hover.com and use promo code SLOTTOASTERPEOPLE.
00:36:07 All one word, SLOTTOASTERPEOPLE.
00:36:10 Thanks a lot to Hover for sponsoring our show once again.
00:36:12 Okay, so there was a little bit of a surprise within the Photos app, and some people went spelunking.
00:36:21 I'm assuming it was Steve Troutensmith.
00:36:23 Is that right?
00:36:23 Steven Troutensmith?
00:36:24 I'm sorry, but that guy.
00:36:26 And we've, they, he, they, someone has discovered UX kit.
00:36:32 So UX kit appears to be sort of kind of UI kit for the Mac.
00:36:38 Marco, do you want to talk about this a little bit?
00:36:41 Yeah, so it's a private framework that is used only by the Photos app at the moment that Apple shipped with the Photos app beta.
00:36:47 And it appears, you know, you can't, no one's like disassembling it, I don't think, but you can class dump it and you can kind of see just like what classes and methods are contained within it from the Objective-C runtime.
00:36:58 It's not just photos, by the way.
00:37:00 People say that Xcode 6.3 beta also uses UXKit.
00:37:03 that's interesting if that's true i did not know that yeah there's a tweet from don mowry saying that i suppose it's easy enough to confirm but i put the tweet in there that is interesting well anyway so uh and what it appears to be is a subset of ui kit ported to the mac and so there are things and just like you know with the ui prefix replaced with ux and so there's things like you know you i think there's like a ux navigation controller and stuff like that and you know there's ux color ux you know all this like
00:37:32 because normally between UIKit on the iPhone and AppKit on the Mac, there are a lot of big differences, but a lot of also just like little superficial differences.
00:37:42 Like the prefix for UIKit is just UI.
00:37:45 The prefix for AppKit is NS.
00:37:47 And so you have some classes like UI color versus NS color.
00:37:51 and UIImage versus NSImage.
00:37:53 And many of these classes that have these superficial name differences aren't that different.
00:37:58 Or the Mac version supports some ancient stuff that no one really uses anymore, so you might as well just unify them.
00:38:06 So there's a lot of overlap that seems trivial, and many people have written C macros or utility classes to...
00:38:15 to have a unified code base that shares some of this code between iOS and Mac more easily.
00:38:20 So this appears to be Apple's version of this on this one app in this one team, where this is their translation layer to have the same code, probably, to have the same code running on iOS and Mac.
00:38:34 So the question is...
00:38:36 Is it just this one team?
00:38:38 Is it just this one app?
00:38:39 Or is this going to be a more widespread thing?
00:38:41 Is it going to become public?
00:38:42 And is this going to be the new unified UI framework so that you can share a lot more code between iOS and Mac?
00:38:49 That's all.
00:38:50 Basically, nobody knows anything about that yet.
00:38:52 Everyone's just speculating.
00:38:54 But that's why this is interesting.
00:38:56 What do you guys think?
00:38:57 guy english had a good point and it's the analogy that came to mind when i thought it was well uh so setting aside that xcode 6.3 also needs to uh appears to use it according to this tweet uh guy pointed out uh prokit.framework remember that yeah yeah all the the pro apps logic and everything aperture logic what are the other apps that used it it was uh maybe maybe shake
00:39:19 when that was out and not final cut mouth maybe final cut anyway a whole bunch of apple's apps that look different like the window chrome was different it was darker and sometimes it was smaller and they had they had their own little weird set of controls and everything they use pro kit framework which was you know a framework shared among apple applications
00:39:38 uh that gave a different ui and i mean i assume it wasn't just look and feel i assume it had other features as well but the point is that it was a framework that was not for public consumption uh that apple used on multiple applications that never became the future of app kit right so the idea that ux kit could just be a thing that apple uses internally to make its applications this is a completely viable idea
00:40:01 It's not crazy to think, oh, well, now once the UX kit, like, because Apple also does the opposite.
00:40:06 They take frameworks, they use them privately for a release or two, and then make them public, right?
00:40:12 So now we can't tell whether this is going to be one of those things that's used privately and becomes public, or is it just another pro kit that Apple will use internally to make its life easier when it makes its applications, but it is not the future of making UIs on the Mac.
00:40:48 And there is a great argument to be made there that many people have made that that should be separate because just porting an iOS app directly to Mac and using a lot of the iOS interface paradigms like navigation controllers and things like that, it doesn't really work well on the Mac.
00:41:05 That's kind of a waste of what the Mac is good at and it just kind of feels like you're clicking an iPad app basically.
00:41:11 But what about things like collection views, like the fancy iOS collection views that sort of reflow themselves and, you know, or even just something like a better table view.
00:41:19 I mean, I know they've improved table view, getting rid of NSL and everything like those type of things kind of span the range.
00:41:24 I mean, they might still have weird APIs like, you know, touches begin inside cell.
00:41:28 And it's like, what do you mean touches?
00:41:30 There's no, you know what I mean?
00:41:31 Like, what you have to think is, look, this framework exists and the class names make you think it's very UI kit.
00:41:37 Like, why would Apple bother
00:41:39 making this and for the photos app the obvious answer to me is the photos for the mac app looks like photos for ios right down to zooming out and seeing that giant grid of like photos for this month or week or year like it is very clearly a macification of the ios photos app so ui wise you know ignoring like the back end and how it stores photos and the iCloud and everything like that
00:42:01 uh so much it looks much more like hey someone ported ios photos to the mac than anything like hey someone made a new version of iPhoto like it is it is just and so if you have the existing photos app which which presumably uses ui kit and you wanted to make a mac version of that being able to
00:42:19 reuse if not that code directly then like that code indirectly or the structure of the program it would be really convenient to have something like ux kit where you can get the benefit of all that ui kit code and you know get some semblance of a mac version up and running faster
00:42:35 That doesn't answer the question of why it would be used in Xcode, but historically, Xcode has been used to dogfood all sorts of weird stuff like Garbage Collection and... What was the other one?
00:42:44 It was DogfoodArc, I think.
00:42:46 Did it DogfoodArc first?
00:42:47 Anyway, that could also just be Xcode dogfooding things because...
00:42:50 If you're going to experiment with weird technologies, you should definitely do it on the application that developers use to write programs.
00:42:56 The argument of you should keep them separate is weakened once you start looking at what things in iOS would you not have on the Mac and vice versa.
00:43:07 And I think that list is actually a lot smaller than you might expect if you're starting to make this argument.
00:43:13 And if you look like, as you said, like, you know, collection view, that's applicable to both.
00:43:19 So many little components, UI control, UI image, UI image view, UI label, like table view, text view, so many of these things.
00:43:28 Actually, there's not a great argument that they shouldn't be the same on both.
00:43:32 It's really just the very high-level structures, the very high-level navigation concepts, navigation layouts, that kind of stuff should be different on both.
00:43:41 But that's really a very small part of UIKit in the grand scheme of things.
00:43:44 And you don't even know.
00:43:45 You say, oh, navigation controller, we don't really push new things on it.
00:43:48 But there's no reason you couldn't make a Mac app that in one of its windows does a sort of UI navigation controller thing of pushing a new view on and popping it off.
00:43:57 It might be weird, but...
00:43:59 Like, arguably, a lot of the existing OS X apps do a lot of iOS-y type things.
00:44:04 I mean, hell, I think in Messages has, like, buttons that aren't buttons but are just colored text.
00:44:08 You know, I think I pointed that on my Yosemite review.
00:44:10 If I didn't, I meant to.
00:44:11 Like, there is just, like, a details button or something in Messages that is not a button.
00:44:14 It is just blue text.
00:44:15 It's like, this is not iOS.
00:44:16 What do you think you're doing here?
00:44:17 But people accept it.
00:44:19 Like, it's like, all right, whatever.
00:44:20 I know when I click that, I get details.
00:44:23 For serving certain interests, as an iOS programmer who doesn't know much about the Mac, it would make me way more likely to start tackling a Mac app if this stuff was more consistent.
00:44:35 If I just dive into the Mac and really am committed to it, I could work through AppKit pretty well.
00:44:40 I could figure it out.
00:44:42 That's not the only reason I'm not making a Mac app.
00:44:45 But...
00:44:45 it would definitely make me a lot more likely to make a Mac app and sooner, and it would make it a smaller undertaking if a lot of this stuff is unified, instead of having all these little superficial differences, some big, some small.
00:44:57 And that has to play in somewhat to any decision they make to this.
00:45:01 Like, if Apple wants to encourage more Mac apps, if they want to...
00:45:05 populate the desolate, awful landscape of the Mac App Store, which is really sad in a lot of places, if they want to help populate that with more better apps, if they want to get more people making Mac apps, more people using the Mac for a lot of this stuff, they have to make it easier for developers.
00:45:22 Right now, all the people who are saying this shouldn't be unified are all longtime Mac programmers.
00:45:31 Longtime iOS programmers, I think, are very excited about this idea.
00:45:34 Because we look at the Mac as like, well, we could go here fairly easily, but all this stuff is needlessly different.
00:45:44 And like, even if you made the core of your app, like, oh, it's all written in sort of completely platform agnostic manner, and it doesn't really matter, or I'm using some framework that's on both places like core data or something.
00:45:55 The UI part is like,
00:45:58 So like, oh, we'll just put a different UI on top of it.
00:46:00 I'm not going to say it's the hard part, but it's a surprising amount of work.
00:46:03 And if you have to repeat it and keep them in sync and every time you want to add a feature, you have to add it in both places with a totally different code using different APIs.
00:46:09 It's just, it's a lot of extra work.
00:46:12 I'm not sure UXKit makes it
00:46:15 you know lowers the barrier enough to really move the needle on the mac app store because it has other problems uh you know like and it's just there's so there's so few mac users like i think you'd have to really make it a low barrier for someone i can address the market of like hundreds of millions of ios devices or like a couple of mac people like there's like a million or two or five or like it's so the iphone is just such a monster and that's just one ios device compared to the mac right but
00:46:42 If this was their goal, like their long term goal, like we're going to dog food this, we're going to see if it's possible because we as Apple have a bunch of iOS apps that we've decided this is the right way to do photos with the stupid view where you zoom out and see everything as a big thing and you, you know, put your finger or your cursor over it and see, you know, that's the future of photos.
00:46:59 We already wrote that app.
00:47:00 Can't we just get that to run on the Mac?
00:47:02 Well, no, because X, Y and Z. It's like, well, OK, so we have a job to do.
00:47:06 We can use this UXKit framework to be the first people to try to do that.
00:47:09 But Apple has way more resources to throw towards the successor to iPhoto than the average developer with an iOS app.
00:47:16 who might be thinking about making a Mac app.
00:47:18 So if Apple runs this experiment and decides, boy, this really makes porting much easier, then what do they do about it?
00:47:24 Do they just say, like, how would they?
00:47:27 Assume that this is a successful experiment inside Apple and assume that the goal of it was to see if this is something that developers might want for the reasons that Marco stated.
00:47:34 how does apple then at wwc announce this as a thing and tell like what is the messaging it's like so you're thinking you're writing a mac app if you have an ios version then look at ux kit because you could reuse a lot of that same code changing all the the capitalized capital x's or something uh but otherwise use app kit or is the message like this is the future of writing mac applications it just happens to look like the ios one but even if you never write an ios mac we're telling you you should use ux kit to write your mac apps
00:48:04 Well, honestly, I think if they actually unified it, it would just be called UIKit Everywhere.
00:48:09 That's the direction they would go.
00:48:11 They would work from iOS back to the Mac, and they would just bring over everything named UIKit that makes sense to have on the Mac.
00:48:19 And also, one advantage they would have here is right now...
00:48:22 They're maintaining two different frameworks.
00:48:24 They're maintaining two different UI libraries.
00:48:26 And AppKit is very, very old.
00:48:30 And there's a lot of cruft in there from the olden days.
00:48:33 UIKit was kind of like a rewrite of AppKit for the iPhone and to be more modern and to be more efficient and have all these new capabilities and be simpler in a lot of ways.
00:48:46 ui kit is like it is the rethink of app kit it is the rewrite of app kit um they just didn't replace app kit with it quite yet if they were going to call it ui kit everywhere though doesn't that come because like the code is not the same like ux kit i'm led to believe is more or less just a wrap around the existing app kit apis to begin with and maybe they would like
00:49:05 gut that out later but I don't think you can pull that out because you have to maintain support for AppKit for a long long time into the future right so linking against the if they called it UIKit you couldn't link against that framework if like if one set of code is like the native code for the iOS devices and another set of code is the
00:49:25 the wrapper around app kit i don't know how you could do that with the same name it seems like like i think the reason the x is there like it just doesn't make sense to me like it would seem it's not going to be a single unified code base it's going to be two separate code bases and having two separate code bases in a framework with the same name on two platforms i mean i suppose you could pull it off because the sdks are in different folders you know this is the ios sdk and this is the mac sdk but it just looks like
00:49:47 I mean, think about looking up documentation for it.
00:49:49 Like, surely there would be differences.
00:49:50 So, I don't know.
00:49:51 Like, messaging-wise, though, that's... We'll get to this after the next sponsor.
00:49:56 But that is a weird message that, like...
00:49:59 app kit we've been evolving and improving for a long time but now uh you know it's like i always wonder that when they bought next like how i wonder how long the ns prefix will i wondered initially would they keep the ns prefix and everything because it's kind of weird you know ns next step like why are all why don't all these cocoa glasses of ns prefix i bet there's tons of people just starting out programming for the mac wondering what the hell is ns crap is about right but it's it's held on for a surprisingly long time right and and
00:50:25 you know if they get out from under and say all right this is the new thing and we call it ux kit and maybe in the future it'll be unified but for now we have ui kit and ux kit and like i still think they would be stuck maintaining three things app kit ux kit which is on top of app kit and ui kit like so it wouldn't be maybe long long term it's a unification but
00:50:49 The messaging just, it seems weird to me.
00:50:52 I mean, that's fair about maintenance.
00:50:53 The messaging I don't think would matter.
00:50:55 I mean, look, they have two languages now.
00:50:57 Well, but one of them is clearly a successor to the other.
00:51:01 I think it's going to be longer.
00:51:02 And by the way, a lot of people are speculating that UXKit might be Swift only or Swift native.
00:51:08 I think we can already tell it's not just by inspecting the file and everything.
00:51:14 But if you look at the timing of this,
00:51:17 The Photos app was introduced at the same time as Swift Beta 1.
00:51:21 When Swift Beta 1 was announced at WWDC last year, very few people inside Apple had even used it yet.
00:51:28 So I think it's extremely unlikely that there's any Swift code in the Photos app.
00:51:33 Well, there's probably some Swift code.
00:51:34 That's the way they would... But I don't think it's written from the ground up in Swift.
00:51:38 And I think you're right that this is an Objective-C framework.
00:51:41 The whole point of Swift is you can call through to the Objective-C frameworks.
00:51:44 And half of the stuff they did in Swift 1.2, which we didn't even talk about,
00:51:47 making it less painful and less awkward to interoperate between Swift and Objective-C stuff by adding a whole bunch of annotations that you can mark up at Apple.
00:51:56 I'm assuming he's marking up his own Objective-C APIs with all these annotations that mean nothing to Objective-C, but totally let Swift know how it needs to write the adapter classes to be less annoying.
00:52:05 Exactly.
00:52:06 And I think that's the biggest sign as anything that Objective-C is not going to go away two years from now.
00:52:11 This is going to be a very long-term replacement.
00:52:17 Right now, look at how many Apple classes are still using C++.
00:52:21 So many APIs are still written in C++ that I don't think we have to worry anytime soon that Objective-C is going to be just ended.
00:52:29 Well, I mean, it could be ended in the sense that they tell you when you're writing your application, the only code you will ever write is Swift.
00:52:35 Because you could get away with that because it's like, I'm not limited.
00:52:38 I can call all the existing frameworks and APIs.
00:52:40 I can call them all from Swift, right?
00:52:42 And I can do weird C-style stuff too.
00:52:45 So you could say third-party developers, if you were starting a fresh new application and opening a new project in Xcode...
00:52:51 write all your code in swift and you'll be fine like they're not at that point yet but that's like the way they want to get and that point could come way before all the objective c code is gone because that's going to take forever like the actual people at apple are going to be writing objective c for a long time but they could be telling all third-party developers we would like it if you just wrote all your code in swift uh and you won't be limited in which apis you call it like the idea of like a swift only or swift native api
00:53:17 What's the selling point of that other than like ideological purity at this point and even in the near future?
00:53:23 I don't, you know, surely that day will come.
00:53:26 But unless there's some big advantage in terms of speed or interface, it's going to be difficult to justify it because then you'd be cutting off all the people with existing Objective-C apps.
00:53:35 And there's a lot of them.
00:53:36 Yeah, and yeah, I would not expect a Swift exclusive API for anything important to be available in the next, I don't know, two years at least.
00:53:46 I mean, I think it's going to be a while.
00:53:49 Apple likes to move fast.
00:53:50 They like to like, oh, it's sooner than I expected.
00:53:52 I didn't think, you know, and in fact, they will probably do it with something important when they decide to do it, but it seems like it's just way too soon now.
00:53:59 So that probably means that whatever your estimate was, two years, like maybe cut that in half.
00:54:03 Don't they always surprise us where it's like,
00:54:05 uh you know the way they herd everybody into whatever new thing they want to do is like the new hotness is only available with x and yeah but not necessarily first of all not necessarily on this level of like the language level of what you're doing like the api level not necessarily on that level and also i think the last time they did that like with what was it with carbon like when was the last time they did that no the best example i think is how you can't build applications for older versions of os's
00:54:32 uh with the newest version of xcode they want to push everybody to the newest version of xcode and that's why people have to keep seven versions of xcode running on old machines like they they're like you can't even target you know snow leopard anymore with this thing and like they they are pushing people up their os support chain forcibly by saying look you're gonna have to have this version of xcode because it's the only way you can develop for the iphone 5 but you can't develop for snow leopard with it so you know all these people keeping these vms alive with ancient versions of xcode and the old sdks
00:55:00 That is Apple aggressively pushing people way too fast.
00:55:03 As soon as people are running VMs with old versions of your IDE, you know you're going too fast.
00:55:07 And that is a very common thing that people do.
00:55:10 Yeah, actually, a lot of Mac developers need to do that.
00:55:13 I think it'll be sooner.
00:55:15 I tend to come down on this closer to John's point of view than Marco's.
00:55:18 I think the push to Swift is going to be more aggressive and sooner than any of us expect.
00:55:23 I think I'm on the edge.
00:55:27 I almost want to say something will be Swift specific or this year, maybe at the end of the year.
00:55:35 I think perhaps it's more reasonable to say sometime in 2016, but I think it'll be soon.
00:55:40 I think it'll be really soon.
00:55:41 And certainly Swift is making some really significant steps in doing so very quickly.
00:55:49 And what I keep thinking is,
00:55:50 Swift is supposed to make a lot of the dangers of Objective-C go away, and that's, of course, causing a lot of, I don't know about drama, but maybe doubt in the community, especially amongst those who have worked with Objective-C for a long time.
00:56:08 But I think...
00:56:09 I think that if Swift prevents really silly programming errors and if it's a little more stable eventually and it runs faster eventually, it's in Apple's best interest to push everyone that direction.
00:56:22 And I think they will.
00:56:23 And I think they'll do so really aggressively.
00:56:26 Yeah, but I mean, honestly, I think most of the drama is already really fizzling out.
00:56:33 And I think, you know, it's only a matter, it's only a couple more swift revisions.
00:56:37 I mean, look at how much they did in 1.2.
00:56:38 It was a pretty substantial upgrade in a lot of ways.
00:56:42 And I don't even use it yet.
00:56:44 But I could tell just by looking at what they changed and other people's reactions to it.
00:56:47 It's a pretty substantial upgrade.
00:56:49 I've read a bunch of these blog posts of like, we switched our big project to Swift and rebuilt a big project in Swift and here's how it went.
00:56:56 And overall, it seems to be people are, you know, kind of mostly okay with the language itself with a few minor differences here and there, but mostly okay with the language itself, but they just complain that the tools are immature still.
00:57:11 That's working itself out pretty quickly, really.
00:57:13 They just added the incremental compilation, which was probably the biggest complaint in its absence before.
00:57:19 In less than a year, Apple has already eliminated most major complaints about the language.
00:57:28 There's still some minor complaints, and there's still some people who really object to certain things about it, and that will probably never change.
00:57:34 But for the most part, they've already addressed many, many good complaints about it in less than a year.
00:57:42 And they're moving really fast.
00:57:43 Like they're making big, big breaking changes, almost so much like it's frustrating, like reading the documentation for the language and trying to learn the language just to the point you think you're actually learning things.
00:57:53 They change it all.
00:57:53 And you're like, but I just.
00:57:54 learned how it worked before now it's totally different again and like they don't do it like in my there are minor ways like oh we tweak this little syntax here but there's like big fundamental like just wait until they add exceptions and regular expressions people's brains are going to explode right this is why i haven't learned it yet this language is moving yeah i mean this language is moving fast and just it's like wow 1.2 was a big change but like well my program got five times faster and i didn't change anything and you know like my compile times are lower like
00:58:19 it's still super young and i think it's probably still super buggy and they've got a long way to go but like there's the i think the inclination is to think well it's young now and there's these big changes but the rate of change will slow down and i expect it to like to not slow down to make people uncomfortable with the amount that it doesn't slow down for the next couple of years like at a certain point it's going to be kind of like you know the change fatigue with the os go like
00:58:42 are right already like my my annoyances with whatever features in swift are now dwarfed by my annoyance that you keep changing the language every three months like we understand you could you're addressing all of our problems and trying to make things better but now i just want it to be stable so i can write some code and feel like i actually know the language that's that's going to happen in like eight months if they keep up this pace
00:59:01 yeah hopefully i mean like i you know i said like last year i was going to wait about a year before i even looked at it and so far that's that's working out very well like i i can see in passing oh they're making all these big changes but i have no investment in it i i haven't even read the the apple swift book yet the thing they release on my books for free i haven't even read that yet that's good because every page of it has changed by now i think i know
00:59:23 And so I'd rather just wait until it settles down at least most of the way.
00:59:28 I would expect within the... You said within the next couple of years, I think it will be pretty stable even in a year from now.
00:59:35 But I think the reason I don't think it'll ever really stable is just like built into this language is the idea that it is a versioned language and...
00:59:43 backward there's no backward syntax compatibility their entire path forward and we'll see how this works is that like the ide is going to update your source code like they're not going to support swift 1.0 1.1 one you know for like the source like it's not like i wrote this in swift 1.0 and i'm going to be able to compile it in xcode 9 many years from now no you won't no you can't even compile that now probably like their whole strategy is source compatibility forget i mean maybe they'll change their policy like that's when it comes to the maturing point they're gonna say okay now the new policy is
01:00:11 We will actually respect the sanctity of your source code and not require you to use our refactoring tools to upgrade the syntax.
01:00:18 But they're not in that phase yet.
01:00:19 They're in the phase that says, we told you we're going to break syntax compatibility.
01:00:23 We are going to.
01:00:24 We're never going to compile your Swift 1.0, 1.1 stuff anymore.
01:00:27 So just get used to it, and you better upgrade to Swift 1.2.
01:00:30 And by the way, 1.3 will do the same thing to you.
01:00:33 Our final sponsor this week is Automatic, your smart driving assistant on your smartphone.
01:00:38 Go to automatic.com slash ATP.
01:00:42 So Automatic is this little dongle that plugs into your car's OBD2 port.
01:00:46 It's the same port they use at the mechanics or the dealers where they check it for error codes.
01:00:50 It's usually in the driver footwell.
01:00:52 Automatic plugs into that and so all the information that the dealers can get and the mechanics can get out of your car, Automatic can get and it has a smartphone app that integrates with this and does cool stuff.
01:01:02 So, by the way, this works on iPhones and Android phones, which is pretty great.
01:01:07 And it can show you, by combining the smarts in your car with the smarts in your phone, it shows you things like where you've driven and how efficiently you drive.
01:01:16 It gives you feedback on your driving in real time that can save hundreds of dollars a year on gas.
01:01:22 They can even call emergency services for free in a serious crash.
01:01:26 So if your car crashes and your phone is at all workable, it can use your phone to call emergency services for you.
01:01:34 This could really seriously be a benefit here.
01:01:37 Automatic also can diagnose any check engine light code.
01:01:41 So because it's in that port that all the mechanics use, if there's any kind of error code that causes the check engine light to come on, the car has like a lower level error code than that.
01:01:50 It's just not showing you because it usually just lacks the display for that.
01:01:53 that's why it just says check engine but usually there's some lower level code and a lot of those codes are really obvious things that you can fix things like the gas cap isn't sealed all the way you know stuff like that you can just fix that yourself or you know minor parts swaps you can do you know you can go to a mechanic instead of going all the way to the dealer paying all this money so it can save you lots of money with check engine light codes it can give you lots of money savings on gas it can call the emergency services for free in a crash and it even has little useful things like parking reminders and
01:02:21 Again, it's combining your car with your phone, so it knows where you parked.
01:02:26 And you can use the Automatic app on your phone to just go find your car again.
01:02:30 They even have integration with a few different things.
01:02:32 So they integrate with the Nest learning thermostat.
01:02:35 So for example, if you're headed home and Nest has you in away mode, so your house is cold in the winter, Automatic knows you're getting close to your home, so it will tell the Nest, turn the heat on.
01:02:46 And so then by the time you get home, your house is nice and warm for your arrival.
01:02:49 And even if you don't have a Nest, they have integration with IFTTT, If This Then That.
01:02:55 So with that integration, you can integrate countless other online services with your automatic device.
01:03:00 So it's really great.
01:03:01 There's also an API.
01:03:03 You can download your driving data.
01:03:04 You can subscribe to events, like when you start and stop the car, when your check engine light comes on, etc.
01:03:08 There's a whole API for you to use for whatever you want.
01:03:11 And if you have an Android phone, they even have a feature called Do Not Disturb Mode.
01:03:15 So that if you want, you can have it automatically mute your phone like buzzing or beeping while you're driving.
01:03:21 So you don't get distracted by those notifications.
01:03:22 So great stuff here.
01:03:24 Automatic.com slash ATP.
01:03:26 And this is normally about $100.
01:03:29 There's no subscription fees.
01:03:30 This is one time up front.
01:03:32 Just $100.
01:03:33 There is, again, no monthly fee.
01:03:35 You can buy the device.
01:03:36 That's it.
01:03:37 Now, there's a special offer for the podcast listeners.
01:03:39 20% off.
01:03:40 So for you guys, by going to automatic.com slash ATP, it's just $80.
01:03:45 It's 20% off.
01:03:47 So just $80.
01:03:48 Free shipping in just 2 business days.
01:03:51 And they have a 45-day return policy.
01:03:54 This is really risk-free.
01:03:55 Fantastic deal.
01:03:57 80 bucks, free shipping in two days, and a 45-day return policy.
01:04:01 Automatic.com slash ATP.
01:04:03 Thanks a lot.
01:04:05 And speaking of different ways of writing your user interfaces, a couple of things have happened over the last weeks or months that a few listeners have asked us to talk about.
01:04:17 And the first, actually might have even been a year ago now, is Async Display Kit.
01:04:22 Do you want to tell us about that, John?
01:04:24 Yeah, all this talk about UXKit has, like, the idea, oh, UXKit is a successor to AppKit, and AppKit has this cruft that UIKit, you know, learned from AppKit and did things better, which is why it seems nicer to do a lot of things in UIKit than it is in AppKit and everything.
01:04:39 And AsyncDisplayKit and the other topic we'll do after about React...
01:04:45 or React Native rather, point to sort of a larger leap above both the AppKit and the UIKit paradigm, particularly having to do with the requirements that certain things only be done on the main thread.
01:04:59 laying out the ui drawing and there's some exceptions to that where you can try to do some of those things off the main thread but generally that leads to sadness unless you're super careful and know what you're doing uh and that's a limitation kind of built into the framework a framework that if you trace its lineage through you know open step and next step app keep going way back in time made sense when you didn't have a multi-core cpu in your little handheld crazy phone like the
01:05:25 multi you know uh symmetric multi-processing was barely a glimmer in people's eyes back then forget about these you know 12 core cpus and everything like that um but the reality is that now we do have multi-core in everything and even if you just offload some of that work to another core it can be a big benefit so async display kit is a thing i think it's a thing that facebook made for like its its native applications the paper application where
01:05:49 they wanted to do layout calculations just basically math of saying how wide is this how much room is it going to take up blah blah blah and they wanted to do it in parallel not on the main thread because they didn't want to block the main thread they wanted the main thread to be available to pick up events and process them and make the the ui you know reactive not to use that word the next thing um
01:06:10 and so they made async display kit which is a thing on top of app kit that lets you do ui type calculations in asynchronously and possibly in parallel and other threads and then do it in a nice way so that the actual layout gets done on the main thread as it has to to work with the thing but you can actually do the calculations elsewhere and that's what makes me look at ux kit and think like
01:06:34 This can't really be the future of anything.
01:06:36 It seems just like an interim step because I would want to see a leap.
01:06:40 Like UIKit was a nice step up from AppKit, but it was kind of like more like a cleaned up AppKit, but it didn't revisit some fundamental assumptions in light of the hardware realities that we have today.
01:06:52 And I think something like...
01:06:54 Something that incorporated something like Async Display Kit into the fabric of the framework would be much better than someone taking AppKit or UIKit and layering another framework on top of it to offload stuff to other threads and stuff like that.
01:07:06 Yeah, so Async Display Kit gained most of its fame, I guess, from Paper, which is an app that Facebook wrote as a kind of alternative to their traditional Facebook app.
01:07:21 And it's actually the app that I use on my phone because it freaking supports sending messages, which is nice.
01:07:27 You don't have to have a separate app for that.
01:07:28 But anyway, it's very pretty.
01:07:29 And the animations are very cool.
01:07:32 And it's very nice.
01:07:34 And Async Display Kit powers it.
01:07:36 Now, lately, Facebook has taken a different approach because React Native is Facebook, right?
01:07:41 I'm not making that up, am I?
01:07:43 I think you're right.
01:07:44 All right.
01:07:45 Well, we'll just assume I'm right.
01:07:46 Why not?
01:07:47 Email me and tell me if I'm wrong.
01:07:49 Anyway.
01:07:51 react native is also by facebook and react originated as or at least to my knowledge as a javascript front-end framework kind of sort of but not really at all like angular and then somebody at facebook said well you know what we could do something on the native side with this and
01:08:13 And so there's an unbelievably good video that I had seen by way of Andy Matushak, who has been coming up a lot lately, actually, on the show.
01:08:23 And it's an overview by one of the developers of React Native at Facebook talking about how it works and kind of what it does.
01:08:32 And I haven't watched it for a week or two since whenever it came out.
01:08:36 And so I can't really get into the specifics because I'll steer us into a black hole of incorrectness.
01:08:42 But some of the stuff that it does was just unreal, including being able to mess about with your UI without doing another build.
01:08:52 And so you can have your app running in the simulator, fart around with some stuff in Xcode, and it will refresh itself in the simulator without recompiling.
01:09:03 And additionally, you could actually connect Chrome to the app, the running app, kind of like we talked about, I think, last episode with...
01:09:12 with web views but this isn't a web view this is all real honest to goodness native stuff and so you can connect chrome they have some sort of interpreter connector whatever and you can connect chrome to your native app running react native and go inspecting it kind of like um what was the third party thing that got sherlocked this year do you know what i'm thinking of oh yeah the thing that exploded all the views but yeah so it's kind of similar to that and
01:09:37 I haven't played with it yet, but just watching this half an hour video, my mind exploded probably 15 times.
01:09:44 Reveal.
01:09:45 Thank you for the chat room.
01:09:46 It was revealed that I was thinking.
01:09:47 You're not going to try to pronounce that?
01:09:50 Thank you, person in the chat room.
01:09:51 Marius Sirachi.
01:09:54 That's totally wrong.
01:09:54 Anyway, this video is really, really incredible.
01:10:00 And Marco, especially, well, you haven't seen this, have you?
01:10:04 No, of course not.
01:10:05 Okay, never mind.
01:10:05 So you're useless.
01:10:06 Hey, in my defense, I did spend all day today making another Go program.
01:10:10 So I was in this century.
01:10:12 Okay, well, that's good.
01:10:14 I would like to hear about that if we have time.
01:10:15 But, John, what are your thoughts on this React Native thing?
01:10:18 Have you done React, the JavaScript framework at all?
01:10:21 I retweeted a thing from, like, someone was making a joke, like a sign of the W3C, and it was one of those signs of life where I said there have been blank days since a new JavaScript framework and had, you know, zero whiteboard.
01:10:35 i'm pretty sure i know what react is and i've seen it like the the javascript version for web applications you can correct me if i'm wrong casey because you've watched the thing because i haven't watched it yet but react is the one where they do where they have all is it the one where they have like the dom sort of as a structure not actually connected to the dom and they do diffing against it to figure out what actually needs to be updated and that ends up being faster it's like yep it's one of those crazy solutions that has to do with
01:11:01 it's it's not shadow dom crystal td and the thing although that's a separate thing and web components are related to this but it's like you would think it would be so much slower to build these parallel structures in memory uh that aren't the dom and then figure out what the changes are by diffing it against something else and then and then only at the end after you've done this crazy diffing thing and it's just these abstract memory structures that have no connection to the browser that you say now finally i know what i have to update in the dom and you do the minimal update to the dom but
01:11:28 Updating the DOM is so damn slow that doing that diffing ends up being way faster than doing it like the quote-unquote direct way.
01:11:36 And it's worth pointing out also the Flipboard thing on this topic, where Flipboard came out, I think it was yesterday or the day before, it was very recent, and they launched a web version, and then their engineering department posted this whole thing, how they're basically doing...
01:11:49 a react like uh diffing system in the middle of this whole system where they're basically they basically rewrote part of webkit that just runs on a canvas it's and it's a very small part but still yeah that's what they call it a web version i put scare quotes around a web because once your entire application is just a big canvas tag that you draw stuff in with your own framework like yeah i guess that's the web but like you've just reinvented
01:12:13 active x controls like you're right oh no that's that's terrible that's really insulting come on not you know what i mean but like you are not it's a difference we just talk about this with flash like the web is we know what the web is and anything that is a rectangle in a web page in which some other program runs is not the web and canvas is like the borderline of that it's like well is that the web or is it like you've written you know yes you you have a nice display layer and you could in theory do a
01:12:39 do everything yourself and they're not they're not doing everything themselves but it's like as many people pointed out in terms of like accessibility of a canvas native application like unless you're signing up to re-implement you know ui kit or app kit with all the accessibility things that are that are inherent there
01:12:55 and support for all the tools.
01:12:56 It strikes me a lot as a big rectangle on a webpage where other things happen, which may be fine for Flipboard, but I don't think it's... That's fine for Flipboard.
01:13:04 Yeah, right.
01:13:05 But React is more like, we're going to take the web as it exists and we're just going to find out a nicer way for you to write applications or what they think is a nicer way.
01:13:15 React has some weird stuff going on that, you know, they violate, they sort of sacrifice a lot of sacred cows.
01:13:21 They're the big things, I think, also where they, like, mix...
01:13:25 javascript handlers in line with these fake things that look like tags but really aren't and freaks people out because it looks like you're doing like the old style on mouse over equals whatever but you're not really because that's not actually dom markup that's just a way to communicate with the like there's a lot of weird things about react but i think that's all besides the point because i think the important part of it is that it is a different model it's a very different model from app kit and ui kit
01:13:48 of how to make GUI applications.
01:13:50 And it's like, well, that's for the web.
01:13:52 The web is so different than native.
01:13:53 It has to be different.
01:13:54 And React Native is like,
01:13:56 What if we take that same model and apply it to native things?
01:14:00 Does that work?
01:14:00 Is it actually better than using UIKit or AppKit?
01:14:03 And some people apparently think it is.
01:14:05 I think the jury's still out on whether this new paradigm is the way to go.
01:14:09 But I think this combined with AsyncDisplayKit show two different potentially complementary approaches that show that are so different from AppKit and UIKit and UXKit that it's like...
01:14:23 it makes UI kit and UX kit and app kit look like objective C 2.0.
01:14:28 And it makes these things look like potentially Swift or something like, I just feel like there's a bigger leap to be had.
01:14:33 And it's like, I would recommend that Apple not invest some huge amount of time unit making, pushing some unified UI kit, UX kit type of thing for the future, because that transition will take a long time.
01:14:44 And when you're done with it in transition, what you've got is basically now everything's as good as UI kit and UI kit may be nicer than app kit in important ways, but it is not sort of a,
01:14:53 large it's not as big a leap potentially as big a leap as Swift potentially is over Objective-C like I'm looking for the next big step and I would say refine what you have now make AppKit better as you've been doing make UIKit better as you've been doing and get busy working on whatever the next big thing is and if it's something like React Native fine if it's something that incorporates the ideas of Async DisplayKit fine if you think you can retrofit those to both UIKit and AppKit and let people do more things off the main thread maybe try that too but
01:15:21 I'm not going to say this is my next Copeland 2010 type of thing, but I do look at these other frameworks and I'm not convinced that they're the future, but they look different enough from the present that I'm interested in potential ideas for the future.
01:15:35 Yeah, I agree.
01:15:36 I think you're totally right that if you're going to make everyone do a big transition...
01:15:42 If there is this other thing that has come up in computer science-y type circles and everyone thinks this is a really great idea and it turns out in practice to really be a really great idea, it is definitely worth considering.
01:15:52 Is it worth, if you're going to force people to go through a transition, to make a bigger leap like Swift?
01:15:58 It's not even like computer science-y, just recognizing the hardware.
01:16:01 The hardware is so different now.
01:16:03 The frameworks we have are not a good match for everything being multi-core because of the main threat constraints.
01:16:08 And GCD helps that a lot.
01:16:10 Like GCD does help, but for UI code, it doesn't help because it's like certain things you have to do on the main thread or bad things happen.
01:16:17 And so that's like the Async Display Kit is like, we're going to hack around that limitation of Apple's frameworks and say, you just sit there, framework, don't worry.
01:16:24 We'll actually do the UI updates on the main thread.
01:16:26 But we're going to do a whole bunch of other math over here in our sort of play world.
01:16:30 And same thing with React, our sort of play world of this is not the UI, but this is our little...
01:16:35 fake model of the UI so we can actually take advantage of parallel processing.
01:16:39 And then we'll get back to you with like, okay, now your actual UI or now your actual DOM, please do this change.
01:16:44 And that is hacky and clever, but it shows that the current frameworks are just not a good fit for current hardware.
01:16:51 Well, I think the multi-core hardware rendering on main thread thing is kind of a red herring.
01:16:56 In practice, the reason why a lot of UI code now is tricky to write is not because drawing calls have to happen on the main thread.
01:17:07 It's because declarative versus procedural, whatever.
01:17:13 It's a different paradigm is what I'm saying.
01:17:15 It's not that it's tricky to write.
01:17:17 It's just that if you have performance concerns, you want to treat it more like a game engine where it's like, if you're going to do anything, you have to be done because I have to pull the next event off the queue.
01:17:29 You need to leave the main thread alone.
01:17:31 That's the whole thing of GCD.
01:17:32 Stop blocking the main thread for crying out loud.
01:17:34 I don't care what you have to do.
01:17:36 Get like...
01:17:36 Get in, get out.
01:17:37 I need to get the next event because if it's stuttery when it's scrolling, it's super bad.
01:17:41 And like that's why Async Display Kit has this cool, you know, one of the classes they have is like, say you're going to show a big giant grid of images and they're coming from the Internet.
01:17:48 You can't wait to get all those downloaded to figure out what sizes they are so you can lay it out.
01:17:52 It'll take forever.
01:17:53 So there's like this procedural thing where like we'll download super low res versions of those and asynchronously bring in the higher res versions.
01:18:01 But just so you can get a scrollable correctly laid out thing as soon as possible so you can start scrolling it.
01:18:06 that's the type of thing that's very difficult to do with the existing framework because it's like, they don't expect sort of asynchronous updates to all this, like to all these features.
01:18:16 It's like, it should be easier than it is.
01:18:17 And it's not, it's not because of like, like you said, declarative versus procedural, that's part of it.
01:18:22 And you could say, Oh, it's easier if I could describe my UI in this way, instead of writing a bunch of code to make my UI in this way.
01:18:27 But it's like for large grids with lots of things on them,
01:18:31 I don't want to block the main thread with the amount... I don't want my main thread to be blocked if N is really large for something that's performance is dependent on the number of items.
01:18:43 Yeah, but I think it's more, you know, like you said, like with GCD, we can already step off the main thread, come back later.
01:18:49 Like, it's...
01:18:50 It's more of a paradigm shift.
01:18:52 It's not that the APIs have to happen on this main thread.
01:18:55 It's the paradigm for how you update the UI.
01:18:59 The way React does it, if you look, I don't know React, so whenever I see snippets of React code, it just breaks my mind.
01:19:07 I'm looking at this and I'm like, oh my god, this is totally backwards, inside out, upside down, and in French.
01:19:14 It looks so foreign to me because it's so different from what I'm used to.
01:19:20 Yeah, so let me jump in here.
01:19:21 So one of the links is that we're going to put in the show notes.
01:19:24 Why React Native Matters?
01:19:25 And this is by Joshua.
01:19:28 I'm guessing that's Josh Aber.
01:19:30 Anyway, he says, right now we write UIs by poking at them, manually mutating their properties when something changes, adding and removing views, etc.
01:19:39 This is fragile and error prone.
01:19:40 Some tools exist to lessen the pain, but they can only go so far.
01:19:45 UIs are big, messy, mutable, stateful bags of sadness.
01:19:48 And that's building... Oh, it's Josh Abernathy.
01:20:06 I'm sorry.
01:20:09 That's building on what you were saying, Marco, where this is just a whole different model of how you interact with user interfaces.
01:20:18 And it makes a lot of sense.
01:20:20 Maybe the particulars are a little bit wonky, and I'll concede that.
01:20:23 But the premise of really this is just moving from one concrete state to another, and it should just be a finite state machine, hopefully, in theory, that is a really cool premise.
01:20:34 And building on that,
01:20:36 And going back to Andy Matushak, he tweeted a few days ago, we'll put a link in the show notes.
01:20:40 I say with confidence as a former UI kit author, React's model for the UI layer is vastly better than UI kits.
01:20:47 React Native is a huge deal.
01:20:49 In another tweet, they've just got to figure out the interaction and animation pieces.
01:20:53 And so he goes on just briefly to all ask me what's react filter bubble danger.
01:20:57 You must watch the broader development landscape.
01:20:59 Don't get trapped in one platform.
01:21:00 And I think that's, that's a really good call.
01:21:02 And this is something very interesting.
01:21:04 That's, that's influenced from the, from a web framework coming into native and it's making some real, making some really interesting,
01:21:12 interesting moves and i and i wouldn't be surprised if something along these lines gets adopted by apple in the same way something along the lines of reveal which isn't an apple staples comparison but you know reveal was kind of sherlocked it wouldn't surprise me if they took a very similar spiritual spiritually similar approach to whatever replaces ui kit and app kit eventually one day maybe
01:21:34 Oh, yeah, because React, I mean, it's making big waves, and it's making waves with a lot of the people who matter with such decisions.
01:21:41 People like Andy Machusak, people who are developing these frameworks, people who are in important positions, or were, or know people, or those...
01:21:50 The new people in those positions, it's making big waves.
01:21:54 I have heard so much about React.
01:21:56 Every JavaScript framework out there besides React that's come out in the last decade, I hear nothing about because I don't care.
01:22:02 React makes big enough waves that I keep hearing about it.
01:22:05 I don't know anything about Angular.
01:22:07 Is that the one that has a million different levels of factories?
01:22:10 ember and angular yeah like you don't those those are confined to the client side react is coming over to the native side like i think the to tie this together with uh async display kit was like you know we're talking in in two different things like i was mostly talking about async display kit with the performance concerns and you were talking about react as the paradigm thing they're connected though because react's functional thing where like you know you operate on state and it's a value type thing
01:22:32 So that sort of, you know, lack of side effects where you just operate on your arguments and return a value and everything is sort of, you know, like just a value type and all that stuff that you see a lot of that in Swift as well.
01:22:43 That allows you to parallelize that stuff because if you don't have side effects, if you're not, if it's not just one giant big ball of mutable state that you can only update one thread at a time, otherwise you get crazy conflicts.
01:22:52 That's one of the many things that ties AppKit to its current paradigm.
01:22:56 React says, you know, React and Async DisplayKit are connected because if you use the React model, it doesn't matter what thread you do these mutations are.
01:23:02 It doesn't matter.
01:23:03 You could do them all in parallel the same.
01:23:04 Like, they're side effect free.
01:23:06 They're pure functional.
01:23:07 And so it lends itself to that type of UI model as opposed to the current model, which is we have this one thing.
01:23:15 It is the state of the UI.
01:23:16 Be super careful with it.
01:23:18 And going back a sec to what Casey just said, it is not past Apple to steal good ideas.
01:23:24 They do it all the time.
01:23:26 And if something is making this big of a wave, and Apple's engineers and top people, if Apple thinks it's a good idea, they will do it, or they will do something similar to it.
01:23:39 Something like this, this is a pretty big deal.
01:23:41 To change your entire UI API paradigm or to add a new one is a
01:23:45 major deal and this you know this is not something that can happen in a year this is a this would be a big undertaking it would have to be a skunkworks but i think that the exciting thing about swift is it showed us yeah it was a skunkworks but it was essentially one guy who one very powerful guy who had proven himself with many other things that he had done in the company it's not just some random employee off in the corner somewhere but
01:24:07 For a long time, it was just one person.
01:24:10 And I'm sure there's lots of those one-person type projects that may or may not go anywhere.
01:24:13 But it just goes to show that you don't need buy-in at the VP level to get the ball rolling or something like this.
01:24:18 And maybe the ball starts rolling and then stops rolling, as happened with ZFS or whatever other things.
01:24:24 It's not guaranteed that it's going to happen, but it seems like Apple is currently an organization in which something like this
01:24:30 could start happening and get killed before we ever see it and something else comes along and maybe react is just the hotness today and then two years it's something else like but it's not outside the realm of possibility that apple can innovate in this way on any subject other than file systems which they seem institutionally incapable not that i'm bitter
01:24:49 and tying it back even though i really want to end on that but tying it back uh if they're going to do something like a react style ui framework that would be a really good thing to start with swift and to make swift only uh one of the things that i that makes react code look so weird is that it fits in very weirdly with existing languages like just like the syntax of of declaring it and using it just like the fact that it's using javascript like this is
01:25:16 yeah it's really badly bolted on and i mean you know not by its own fault by the fault of the language really but you know swift is is still squishy and and generally more pokeable but but but swift is a much better fit like the whole idea of so many things being value types in swift like not that that is a direct parallel to the idea of the ui state being a value type and everything but like just shows that the headspace like where is swift at in terms of like immutable data well it is
01:25:41 it is much more on the react side of things than objective c is because objective c is all about everything be mutating and hey just declare this type id whatever guys it's all right uh whereas swift is like no you know we're gonna pin things down lots of things that were reference types are becoming value types just because we've learned that you know making ns string reference type just leaves more headaches and
01:26:01 people forget to copy them and they have you know it's like that is the mindset of swift and so something using the good ideas and react and async display kit written natively in swift would be a very interesting successor to both ui kit and app kit from apple so someone should start writing that now and in four years get back to me
01:26:20 Anyway, give me a reason to learn Swift.
01:26:23 That'll be eight years later.
01:26:25 All right.
01:26:26 Thanks a lot to our three sponsors this week, Igloo, Hover, and Automatic.
01:26:30 And we will see you next week.
01:26:34 Now the show is over.
01:26:36 They didn't even mean to begin.
01:26:39 Because it was accidental.
01:26:41 Accidental.
01:26:42 Oh, it was accidental.
01:26:43 Accidental.
01:26:44 John didn't do any research.
01:26:47 Marco and Casey wouldn't let him.
01:26:49 Cause it was accidental.
01:26:52 It was accidental.
01:26:54 And you can find the show notes at ATP.FM.
01:27:00 And if you're into Twitter.
01:27:03 you can follow them at c-a-s-e-y-l-i-s-s so that's casey list m-a-r-c-o-a-r-m-n-t marco armen s-i-r-a-c-u-s-a syracusa it's accidental they didn't
01:27:25 What are we talking about?
01:27:35 Oh, your go thing.
01:27:36 What is this about?
01:27:38 You're really getting into this go thing.
01:27:40 Yeah, I'm getting faster with it now.
01:27:42 Like I and today was the first time like my previous the polar, the feed polar.
01:27:47 That's just one giant file because I didn't want to figure out how do I break up things into different files and manage that in Go because it's a pretty long file and I should break it up now because it got longer once I finalized all the stuff I actually needed to be in the system fully.
01:28:07 But that's just, you know, so tonight I was working on something else.
01:28:11 So I have these two servers at high velocity that I bought there that I started leasing per month about a month ago.
01:28:20 And I haven't done anything with them yet.
01:28:22 Because I bought them because they were having an insane sale that was just ridiculous for what you get for both hardware and bandwidth.
01:28:29 where now I, for a few hundred dollars a month, I now have an unmetered gigabit of transfer, a gigabit per second unmetered of transfer.
01:28:40 And I asked them, I'm like, before I bought it, I'm like, all right, so, you know, what's your actual policy here?
01:28:44 Like, if I actually use all this, what if I was hosting big podcast files?
01:28:49 If I made a podcast file host for us or whoever else, like, you know,
01:28:53 if we actually used all this bandwidth would you cut it off or like and they're like nope we actually we're like we you can use it that's the point uh so and it's it's it's a pair of machines that are each 500 megabit and they're each as good as roughly as good as a six core mac pro they have dual ssds raid with raid one uh 64 gigs of ram i mean it's like
01:29:19 These are insane machines.
01:29:21 Six-core Xeon 1660v3s, which are actually faster than the current Mac Pro CPUs because the Mac Pro seem to have skipped a generation, which they sometimes do, so I'm not surprised.
01:29:31 But there is a newer version of the Xeon chips that the Mac Pro uses that is out right now that Apple has not updated to and seems like they're probably just not going to at this point.
01:29:40 Anyway, so I have these servers that I bought because one thing I want to do, and the reason why I was so interested in having tons and tons of bandwidth available, is I want to be able to launch a Twitter card for Overcast player pages so that people who are browsing the Twitter app can play the podcast right there in Twitter cards.
01:30:02 Twitter cards require that all assets that are loaded within them, including media files, are served over HTTPS.
01:30:09 Some podcast hosts support HTTPS for their files, but most don't.
01:30:15 So the first thing I wanted to write was an HTTPS proxy.
01:30:21 And there are a few of these that exist.
01:30:23 There's one, I forget what it's called now.
01:30:25 There's one that GitHub wrote in Node.
01:30:28 Oh man, I'm sorry, I forgot the name.
01:30:30 Anyway, so there's that one, and that's fine.
01:30:33 I looked at it briefly.
01:30:34 It's mostly made for images, but fine, it would work the same way.
01:30:38 I decided to try to write that in Go, a basic SSL proxy.
01:30:43 And it's nothing.
01:30:45 It's like 100 lines.
01:30:46 I mean, it's almost nothing.
01:30:47 It's great.
01:30:48 And I also have a few other things I wanted to try.
01:30:50 I mentioned last week that I was using ImageX for my thumbnailing, but it was costing me a fortune.
01:30:58 So I'm moving my artwork thumbnailer to these boxes as well.
01:31:02 So I wrote just one Go program that contains those two functions, the SSL proxy and the artwork thumbnail.
01:31:11 Just those two functions implemented in Go.
01:31:13 It listens over HTTPS and is its own server.
01:31:15 There's no server in front of it.
01:31:16 There's no Nginx or Apache or anything reverse proxying to it.
01:31:19 It's just its own server, raw, right to the internet.
01:31:22 And that's all these boxes do is run this program.
01:31:24 So I'm hopefully going to be deploying that in the next day or so.
01:31:29 And it didn't take you that long to write, it sounds like?
01:31:32 No, a few days.
01:31:32 I mean, I've been sick, so my work hours, I can only really work a few hours at a time before I go lay down, which really sucks.
01:31:39 But I'm extremely annoyed about that.
01:31:44 That is by far the worst part about being sick, is not how I feel, it's that I can't work.
01:31:49 That's what drives me nuts the most.
01:31:51 Anyway, so that's on its way out, at least.
01:31:55 If I was working full-time at full capacity, this probably would have taken only two days.
01:32:00 It has actually taken something like four days, but oh well.
01:32:03 So how does your Go server handle the... I still don't quite understand the concurrency model of Go, but how does it handle if there are more incoming connections than...
01:32:12 Then like, does it, does it do multiple processes or a single process event driven?
01:32:16 What does it, what does it look like on the machine?
01:32:18 It, it can do multiple cores, but it is, it is all seen.
01:32:22 It's for the most part, it's single process event driven.
01:32:24 It's, it's, they use this concept and forgive me, anyone who's an expert listening, I'm not an expert yet on this.
01:32:29 So this is a, a newbie overview of what, of the way it works.
01:32:33 But, uh, they use this, they use this thing called go routines, which are, which are these, you know, kind of threads.
01:32:40 cooperating sequential processes or something like that yeah something like that um so it's those things and so there it's it's basically a very lightweight thread that exists within the app space it is not an os level thread so so how does it behave like at the limits like if you overwhelm it with connections to the to the other connections just wait does the do you exhaust like the number of like i you know i always look at what the behavior at the limits like that's the only reason i would ever put another server in front of it like well i know how whatever will behave
01:33:07 I can set these limits on number of connections.
01:33:09 I know people will wait.
01:33:10 I know what will happen.
01:33:11 I know when people will start getting timeouts or connections.
01:33:14 Whatever the failure mode is, I can choose my failure mode.
01:33:17 And I don't know what the failure modes at all are for Go because I've never used it.
01:33:21 So I was trying to do some research on that earlier today to try to figure out, do I need to put Nginx in front of it or something?
01:33:27 Or can I just go without it?
01:33:29 The responses to that question were, for the most part, a few people who did it, who just did it raw off the internet, who said, it's fine.
01:33:36 A few people who said you should put NGINX in front of it because of separation of roles, which I think is total BS, honestly.
01:33:46 The way those arguments were presented, none of them convinced me that they were valid arguments.
01:33:52 That was not...
01:33:54 There's nothing saying that having Nginx reverse proxying to this Go server is any more of a purity of roles than having the Go server serving itself.
01:34:03 It has this functionality built into the language.
01:34:07 The only reasons I could think of are the older reasons that we used to run proxy servers in that if you don't want to slow down the process, if a bunch of your clients have slow connections, you don't want to tie up
01:34:20 your back-end process doling out bits to the slow connections, but when it's an event-driven thing, that's not really valid anymore because you're not tying it up.
01:34:28 When it's doling out bits slowly, it's doing other things because it's, you know, multi-threaded and moving on to the next thing.
01:34:35 Right, and the way, like, it seems like you would, like, the difference between Nginx being tied up with all these connections and Go being tied up with all these connections because they both have that same event-driven style model, I don't think one would be substantially better than the other at that.
01:34:51 Yeah, and the failure mode is the other option.
01:34:53 But the real question for me is, does Google put anything in front of its servers when it runs them?
01:34:57 And if Google doesn't do it, which I suspect they don't because it seems like Go is designed to do this, then it's like, well, if Google's not doing it, you don't need to do it either.
01:35:04 If it's designed to handle the traffic that Google expects, surely you can do your podcast image thing by having the Go app talk directly to the web.
01:35:13 But I know nothing about this, so I'll be interested to see what the results are of your experimentation.
01:35:18 that's probably a bad example just because google is such an incredible scale they probably have lots of stuff in between you know the the public internet and their application servers so like that that's probably a bad example but i would be i would be interested to see like you know medium-sized sites to see like what they do right well no but google i'm saying like google do they intentionally put a layer there whose only purpose is to be you know what i mean like i would suspect that the machines that their things are
01:35:43 are running on the go process is listening on the ports and yes there's stuff in between but it's like do they you know do they shove nginx and there is essentially a proxy server for some reason and it makes much more sense to do that if you have a multi-process back end because then you would be tying up an entire child process when really you should just shove the
01:36:00 put a big buffer on the proxy, have the chaw process, ship the bytes out to the proxy, and then that chaw process is free to serve another request while the proxy server doles out those bits to the slow client.
01:36:08 That's like 1990s-error state-of-the-art web technology, but we've moved on from that.
01:36:13 Right, and there was, I saw there was one benchmark that somebody posted where they, and they showed all the code they used, and there were a few complainers in the comments, but it seemed pretty valid, where they benchmarked a simple Go program, like a Hello World kind of thing.
01:36:27 They're like,
01:36:28 simple go program raw versus nginx with a few different configurations and tweaks and the go program just had it destroyed nginx in uh in in uh request rate per second with either a b or one of the other similar tools
01:36:45 It was way faster with just pure go because, of course, it's doing less like and you're synchronizing to event driven things like one thing is handling and they're not going to be in sync of like when when I'm doing the work on behalf of this request and then handing back like it's just you're just yeah, it's not just adding overhead.
01:37:00 It's like these two desynchronized event driven things trying to talk to each other.
01:37:04 Exactly.
01:37:04 So the way these servers are set up, they actually have none of my app on them.
01:37:12 They don't have any access to my main infrastructure.
01:37:15 They don't even read the database.
01:37:16 They don't have anything on them except this Go program.
01:37:19 They don't even have PHP installed.
01:37:22 And they don't even have private net access back to the Linode servers that are running the rest of the app.
01:37:27 They have no connection whatsoever to the app.
01:37:30 Just my app is able to write its files into it.
01:37:34 And it only has the Go files.
01:37:35 So the risk if these things get compromised is pretty small.
01:37:39 And if they go down, these are kind of accessory features.
01:37:42 I'm going to have a CDN in front of the artwork thumbnail anyway.
01:37:46 I'm not doing a CDN in front of the podcast bandwidth thing, or the podcast SSL thing, for two reasons.
01:37:53 Number one, the bandwidth cost would be extraordinary, and I don't think I would be able to afford it.
01:37:59 Number two, the way this is working...
01:38:01 Overcast does not proxy the files normally.
01:38:05 And I only want to use this in areas where SSL is really required for usability or for functionality.
01:38:12 So that would be things like Twitter cards, the web player to avoid mixed content warnings, things like that.
01:38:18 In reality, that's not most uses of Overcast.
01:38:20 That's not most plays.
01:38:22 And it probably will never be.
01:38:23 But regardless, I still don't want to steal hits from people's files because
01:38:28 And so the way I've set it up that there is absolutely no caching of that SSL proxy's assets.
01:38:35 Every request that is made through that proxy has a corresponding request back to the origin server.
01:38:42 And I know they're probably not going to count my IP as unique...
01:38:46 I am sending the X forwarded for and X real IP headers that, you know, that's standard for proxies.
01:38:52 I would imagine like to prevent fraudulent download count increases, most stats services probably ignore those.
01:38:59 For some of the big hosts, like I already talked to Libsyn and I know SoundCloud.
01:39:03 I won't need to use it with them because I know how to do secure URLs for them reliably so that
01:39:11 That should be fine.
01:39:12 But either way, I still want the downloads to be counted in some way as much as possible for the origin servers.
01:39:20 So anyway, there's no caching involved there.
01:39:23 That's intentional.
01:39:24 But for the artwork, there is caching involved there.
01:39:27 There's going to be a CDN in front of it.
01:39:28 So if these servers go down for any reason, it's not going to be a massive deal.
01:39:35 It's not going to be like the whole app stops working or something big is like ugly and broken.
01:39:40 it's going to be a really small deal.
01:39:41 And so I'm just going to try it.
01:39:43 I have just this one 7-megabyte Go binary to put on the servers, and that's it.
01:39:49 There's no dependencies.
01:39:50 This very much appeals to me.
01:39:52 There's no configuration, really.
01:39:54 The only sensitive thing on there is going to be the private key to the SSL certificate that it uses.
01:39:59 That's it.
01:40:01 So I think it'll be interesting.
01:40:05 That was much more in-depth than I expected.
01:40:08 That's excellent.
01:40:09 What else is going on?
01:40:10 You want to do titles?
01:40:11 I think Minutiae.
01:40:13 That has to be it.
01:40:15 Yeah, but the AE, the combined AE, I don't know what that's called.
01:40:18 That's going to break a whole bunch of podcast clients, isn't it?
01:40:22 My shell script might break to embed the title.
01:40:25 i'll have to uh that's a different issue yeah well it's not really i'll just do i'll use itunes to edit it or something else can you believe how like a lot of podcast producers that's how they embed the id3 tags is they import the mp3 into itunes and hit command i for the info panel and type in the stuff and then export like that's crazy to me that anybody does that they should use mp3 rage and pretend it's 2002 again
01:40:50 Well, I'm using lame on the command line, which is pretending like it's 2004.
01:40:55 Similar error.
01:40:56 Yeah, exactly.
01:40:57 Why don't you use a hex editor?
01:40:59 Yeah, then you have to know UTF-8 for converting that character.
01:41:03 That's not going to work.
01:41:03 It's easy enough.
01:41:04 Yeah, I think the new Shay is probably the best one here.
01:41:09 Is that little AE symbol actually pronounced like...
01:41:14 j t a t little i don't even know how to pronounce the little well it depends on what language you're talking about if you're talking about latin or greek which is probably where it's from uh the answer is nobody actually knows and everyone's gonna think they know and they're making it up uh and so uh i think we'll just we'll use the wonderful ae ligature and we will just uh tolerate the emails that come in because we love everybody's emails so much including the people who tell you that's not a ligature
01:41:41 I think it is a ligature, isn't it?
01:41:44 I don't know.
01:41:45 I'm just speculating about potential email we could get.
01:41:47 Yeah, as Holgate in the chat room points out, the HTML entity name for it is AELig.
01:41:53 So I'm pretty sure it's a ligature.
01:41:56 Yeah, I don't know.
01:41:56 I don't know the technology.
01:41:57 You know, font and typeface and everything.
01:42:00 There's lots of distinctions that I have apparently not cared enough about to memorize.
01:42:06 I know they exist, but I don't know what's right.

Minutiæ

00:00:00 / --:--:--