PodSearch

ATP

365: Day-One Cowboy

 

00:00:00 ◼   ► How's Hops? We're getting there. He wore a cool diabetes sugar monitor for two weeks.

00:00:07 ◼   ► The good thing is like the insulin shots are easy because like dogs have all that loose skin on

00:00:11 ◼   ► behind their neck and you just stick it in there like you don't even stick it in the muscle. He

00:00:14 ◼   ► doesn't even notice. Oh, that's what you tell yourself. I told myself the same thing, but

00:00:19 ◼   ► it's still a needle going through your skin. He notices. Oh, I know, but you know, like it's,

00:00:25 ◼   ► thanks, dad. Dogs are very tolerant. It was a branding exercise. I marketed it as chicken shot

00:00:33 ◼   ► because I would give him chicken before and after the shot to kind of try to develop a positive

00:00:39 ◼   ► association with it. Right. Or at least bribery. I don't know. So I marketed it as chicken shot. You

00:00:44 ◼   ► want to come get your chicken shot? And that seems to work where he actually seems okay with it.

00:00:49 ◼   ► I wonder if Apple could take a lesson from that, like, you know, rebrand like App Store

00:00:53 ◼   ► rejections, like beer rejection. Hey, here's, here's a beer. We're sorry we can't accept your

00:00:59 ◼   ► app like this because of these reasons. Here's another beer. I made it this far into winter.

00:01:06 ◼   ► This far before taking out the fisherman's friend. Oh, no, I'm sorry, Marco. I'm sick now,

00:01:17 ◼   ► too. I just, uh, last night's rec diff, I was talking to Merlin about that. I made it

00:01:21 ◼   ► several winters without really getting sick, but it caught up with me. This is it. I have a feeling

00:01:26 ◼   ► this is actually something that we caught from Merlin somehow through podcasts because he was,

00:01:30 ◼   ► he was so sick for so long and we listened to all of his podcasts and you read from podcasting with

00:01:34 ◼   ► him. So you're totally screwed. Somehow if it's possible to transmit viruses over Skype, I

00:01:38 ◼   ► guarantee you this is Merlin's fault. So thanks Merlin. Thanks a lot. I don't have that much I

00:01:43 ◼   ► can complain about really because usually like it's mid February. Usually I am sick from November

00:01:50 ◼   ► until WVDC just every year because like school happens and winter happens and so actually this

00:01:58 ◼   ► is the furthest I've made it through a winter without getting sick in years ever since Adam

00:02:02 ◼   ► started going to school and even like this winter like this has been such a ridiculously mild winter.

00:02:06 ◼   ► I really can't even complain about that really. I do and I will, but I feel like like I bought a new

00:02:11 ◼   ► snowblower this past fall and of course then it hasn't snowed at all. Not once. I bought it right

00:02:16 ◼   ► before Thanksgiving and it has snowed zero times since then and it's just sitting there in my

00:02:20 ◼   ► garage brand new untouched never used never run. Although I gotta say I mean again I think I would

00:02:28 ◼   ► buy a new snowblower every year if it made it not snow. I've only ever bought two and that happened

00:02:35 ◼   ► both of the years now that that happened so I don't know there's some kind of correlation there.

00:02:39 ◼   ► Definitely without question. All right so last week I think it was mostly me. I lamented the

00:02:45 ◼   ► fact that it seemed to me to be a political problem that you couldn't do SwiftUI style

00:02:53 ◼   ► previews of UIKit controls. So you know SwiftUI is this new fancy declarative way of making user

00:02:58 ◼   ► interfaces. UIKit is the old and busted except it actually isn't busted it actually works but that's

00:03:03 ◼   ► neither here nor there way of doing things and I want to have that sweet sweet live preview of UIKit

00:03:08 ◼   ► stuff and a bunch of people wrote to point to a couple of different links one of which is NS

00:03:14 ◼   ► Hipster which I definitely read in the past it's completely slipped my mind that will show you that

00:03:18 ◼   ► yes it is possible to do this with a UIKit view so I'm not entirely I feel like this kind of

00:03:26 ◼   ► implicitly corroborates my theory that it's all just political and little else but one way or

00:03:32 ◼   ► another we'll put a couple links in the show notes to indicate instructions on how to do this for

00:03:36 ◼   ► yourself if you are so interested. It was like I was saying last week that you can embed NS views

00:03:41 ◼   ► in SwiftUI things you can embed UI views like that's that's kind of your escape patch and so

00:03:46 ◼   ► this is sort of a you know the most simplified case where it's like I just want to see I don't

00:03:51 ◼   ► even want to use SwiftUI I just want to see a SwiftUI view so I will make a or I want to see

00:03:56 ◼   ► a UI view or an NS view so I will make a SwiftUI wrapper and the only thing in it will be okay now

00:04:02 ◼   ► show my NS view or UI view here which is not really using it for its intended purpose you still have

00:04:08 ◼   ► to end up like passing your data down through the the straw but I suppose you can hold on to

00:04:14 ◼   ► a reference to the UI view and Twitter it elsewhere so I do wonder how it behaves in those situations

00:04:18 ◼   ► but anyway yeah it's it's possible if you want to go that route although to try to develop your app

00:04:24 ◼   ► like this you'd have all these weird sort of candy coatings of SwiftUI that don't do anything wrapping

00:04:30 ◼   ► around all of your actual UI that does stuff that's written in a different API just so you

00:04:34 ◼   ► can get the live previews doesn't seem like a great strategy to me well maybe in the new version of

00:04:38 ◼   ► Xcode you never know moving on folder aliases in the dock this is not a problem that I feel like I

00:04:45 ◼   ► have my world so I pretty much ignored all of this but John I presume you have many many many

00:04:49 ◼   ► thoughts about the many many many pieces of feedback we've gotten last week we were talking

00:04:54 ◼   ► about the thing that happens when you click a folder in the dock sometimes you get the big

00:04:58 ◼   ► springy bendy tower and sometimes you get the big grid and I don't like either one of those things

00:05:03 ◼   ► and Marco was saying how he uses them can never find what he wants and the big grid that comes up

00:05:07 ◼   ► and then I shared the command option click shortcut which just opens the folder and then I

00:05:13 ◼   ► said gee wouldn't it be nice if if you just clicked a regular click and it opened the folder if that

00:05:18 ◼   ► was one of the options if you didn't like any of the two other options and I'd complained about

00:05:23 ◼   ► that in the past I complained about it again on the show I said that should definitely be

00:05:27 ◼   ► an option lots of people wrote in with the suggestion that I should have brought up last

00:05:31 ◼   ► week which is if you make an alias to a folder and you put the folder alias in the dock then

00:05:36 ◼   ► when you click on the folder alias the folder opens just like I want it but that's not exactly

00:05:42 ◼   ► a solution because if you put a folder alias in the dock it looks like a folder aside from the

00:05:47 ◼   ► little alias icon badge in the corner and when you click on it it opens the finder window and when

00:05:52 ◼   ► you drag something to that folder it highlights like it's going to accept your drag and then when

00:05:56 ◼   ► you let go whatever your dragon just springs right back and this is a long-standing complaint

00:06:02 ◼   ► that I have so long-standing in fact that I went back and searched for it myself in my own past

00:06:08 ◼   ► history that apparently can't remember and in 2009 in the snow in my Mac OS 10 snow leopard review

00:06:15 ◼   ► I made this exact complaint for the exact same reasons because I'm nothing if not predictable

00:06:23 ◼   ► and in that complaint in the review I mentioned that I had filed a radar against this in I don't

00:06:29 ◼   ► I didn't say when I filed the radar but the radar was closed in March of 2008 with the explanation

00:06:36 ◼   ► not currently supported so not only have I wanted this for over a decade but it's been more than a

00:06:42 ◼   ► decade since my radar complaining about it was closed by Apple saying no no and it's you know

00:06:49 ◼   ► I like I said in the last episode I do command option click all the time just reflexively but

00:06:55 ◼   ► it still annoys me and the folder alias thing which I also talk about in this very same snow

00:07:01 ◼   ► leopard review from 2009 that annoys me even more because the fact that you can make a an alias and

00:07:08 ◼   ► stick it in the dock like that makes sense to me because it's just like any other thing that you

00:07:12 ◼   ► can drag from the finder into that part you can put files there you can put folders there you should

00:07:16 ◼   ► put aliases there right once you have a folder alias in the dock why can you not drag things

00:07:22 ◼   ► into it like what other sensible behavior is there for a docked folder alias if you have a

00:07:27 ◼   ► docked folder alias and you drag something into it and highlights it's like here I am

00:07:31 ◼   ► dragging stuff into a folder what else should it do that is literally the only thing it should do

00:07:36 ◼   ► and the fact that the bug was closed over a decade ago and the time since no one has ever thought to

00:07:40 ◼   ► either disallow aliases to be in the dock because maybe like no the doc isn't for aliases this is

00:07:45 ◼   ► just for real things fine whatever but if you're going to allow them and you're going to allow

00:07:48 ◼   ► aliases to folders let us drag something into them anyway lots of people had other uh potential

00:07:54 ◼   ► solutions to this one of them was to just write to the docs plist directly you can just add an entry

00:07:59 ◼   ► for a thing that actually is a folder but if you added it like so the doc thinks it's a file it

00:08:03 ◼   ► basically behaves like a folder alias uh and someone uh wrote an automator workflow that

00:08:10 ◼   ► sits in your doc and looks kind of like a folder but when you manipulate it it's really running this

00:08:15 ◼   ► automator workflow to do the things that it's supposed to do all this is just way too much work

00:08:20 ◼   ► for something that apple should just support which is either a just add a third option for

00:08:25 ◼   ► folders in the doc that says hey when i click it open it in a finder window or b let us do the

00:08:30 ◼   ► thing with folder aliases which works in all ways except it doesn't work as a folder you can't drag

00:08:34 ◼   ► stuff into it so yeah everything old is new again and apparently this aspect of the doc has not been

00:08:41 ◼   ► revisited in more than a decade somebody i didn't record who but somebody refiled this as a new

00:08:46 ◼   ► radar that's i'm gonna read this number five nine two eight nine four two three that is the more

00:08:55 ◼   ► recently filed radar on the fact that if you put a folder alias in the doc it looks like a folder

00:09:00 ◼   ► but doesn't behave like one we'll put a link in the show notes all right so you weren't here before

00:09:06 ◼   ► the show and the listeners weren't here before the show but i was lamenting to marco that what kind

00:09:11 ◼   ► of jerk releases an app 45 minutes before we record the show so i didn't even realize that

00:09:15 ◼   ► you had released it when i sat down to scroll through the show notes right before we record

00:09:19 ◼   ► it's almost as bad as releasing an app live on the show i mean who would ever do that so what's going

00:09:24 ◼   ► on john it was no surprise because you both knew about the app and i've been talking about on the

00:09:28 ◼   ► show or whatever um i know i know it was a little bit of uh app review excitement about this but i

00:09:33 ◼   ► will i'll briefly describe what the app is and then we can move on to other things because i don't

00:09:37 ◼   ► want to spend too long on this and have this be like the the show where we all release apps next

00:09:40 ◼   ► next next show it's your turn marco so get an app ready geez uh aggressive timeline right but but

00:09:47 ◼   ► later uh after we may be in an after show or maybe we get through some topics i would do want to talk

00:09:52 ◼   ► about some war stories from the development of this app uh but anyway for now my new app is

00:09:57 ◼   ► called switch glass no it's not a great name it's switch and then the word glass and it's all stuck

00:10:02 ◼   ► together uh it is another replacement for a drag thing functionality that i miss uh the window

00:10:08 ◼   ► layering thing was front and center this is the application switcher palette that i like to have

00:10:14 ◼   ► it's just literally a thing on your screen that shows an icon for every running application and

00:10:18 ◼   ► you click on the icon to switch to the app which sounds to most people like the most ridiculous

00:10:23 ◼   ► thing ever so anyway it's a very simple application most people do not want or need this it has an even

00:10:30 ◼   ► narrower you know potential customer base than front and center which itself was very weird

00:10:36 ◼   ► but i wanted this app because i used the application switcher that was built into drag

00:10:39 ◼   ► thing for years and years and years and drag thing is gone and i just wanted this back so i wrote it

00:10:44 ◼   ► uh it is not the simplest possible mac app that was front and center because i literally had no ui

00:10:48 ◼   ► uh that you interacted with this actually has a little bit of ui but is like the second most

00:10:54 ◼   ► simple app that you can ever imagine but i made it uh made it the way i like it i included way

00:11:00 ◼   ► too many options uh just because that's something that amused me to do i do not recommend this when

00:11:05 ◼   ► you're making an app don't make a million options it's too many options no one needs that many

00:11:10 ◼   ► but i enjoyed that part of it and so that's what i did uh we'll put a link in the show notes to

00:11:13 ◼   ► my post about it or the product page and the giant fact where you can read uh answers to all of your

00:11:18 ◼   ► questions like why would anyone want this application and what does it even do and why is it only running

00:11:23 ◼   ► catalina the answer to that is it's swift ui and swift ui is only on catalina and the answers to a

00:11:29 ◼   ► bunch of other questions like uh all the sad limitations of sandboxing let me not implement

00:11:33 ◼   ► all the features that i want that's life anyway it's five bucks i'm starting at the deterrent

00:11:39 ◼   ► pricing level because look no one's gonna buy this thing anyway honestly i i when you have to explain

00:11:46 ◼   ► why would anyone want this you know you don't have a big seller on your i just wanted this to exist

00:11:50 ◼   ► and if there's someone else out there who want who also wants something like this then here you go

00:11:54 ◼   ► uh this is my little app switcher i like it i'm happy it's here so i'm not trying to snark i'm

00:12:01 ◼   ► trying to understand so you have a dock somewhere on your screen that is showing all of your running

00:12:06 ◼   ► applications and then you have switch glass also on your screen also showing running applications

00:12:12 ◼   ► easy to read the fact is he well i haven't had the chance i didn't even know this was a thing

00:12:15 ◼   ► yeah okay i do i do yes uh it's a part of this is kind of habit from the old days but it's like

00:12:23 ◼   ► it's a habit that went away with mac os 10 but then came back as i you know started to use drag

00:12:30 ◼   ► thing to replace it so classic mac os towards the end of its life had an application switcher palette

00:12:36 ◼   ► that just showed little icons for every running application that you could just drag it was just

00:12:40 ◼   ► like a draggable window you could just drag it around on the screen and usually i had it as a

00:12:44 ◼   ► vertical list in the upper right hand corner remember classic mac os did not have a dock

00:12:48 ◼   ► it had an application switcher menu like the upper right hand corner of the screen had a menu like a

00:12:52 ◼   ► pull down menu in the menu bar that would show all your running apps but you'd have to pull that down

00:12:56 ◼   ► and then they added like a little floating palette right and i used to use that and in the absence of

00:13:00 ◼   ► a dock and if you're not doing command tab i don't even remember if command tab was implemented at

00:13:04 ◼   ► the time that thing came out um you click on the app you switch to it it's convenient and you know

00:13:09 ◼   ► it's just kind of get used to it maggots 10 obviously has a dock the dock does the same exact

00:13:13 ◼   ► thing but as i complained about in my early maggots 10 reviews the dock does tons of other stuff too

00:13:20 ◼   ► right so the trash is there you can put folders there even though they behave weirdly you can put

00:13:23 ◼   ► files there also applications that are not running are in the dock and they're mixed in with the

00:13:28 ◼   ► applications that are running uh back in the day used to be able to pin the dock to to the corners

00:13:32 ◼   ► right so you can make the dock be centered on the bottom or you can make it be pinned to the left

00:13:37 ◼   ► side or pinned to the right side and same thing for you know when you had the dock on the left

00:13:41 ◼   ► edge of the screen or the right edge screen you could pin it to the top or the bottom they took

00:13:44 ◼   ► away that pinning feature which is always a sort of undocumented plist hack they took that away

00:13:49 ◼   ► years and years ago and that annoyed me and i you know i just started running the drag thing

00:13:56 ◼   ► application switchers one of the features of drag thing is you can make palettes and put them

00:13:59 ◼   ► anywhere on your screen but you could also make a palette that just always showed your running

00:14:02 ◼   ► applications so i did and i put it pinned to the upper right corner of my screen and i've just been

00:14:06 ◼   ► using it for years now you said why do you need two places to click on your screen to switch

00:14:11 ◼   ► applications you know about me and mousing right like it's not like i don't use command tab i do i

00:14:15 ◼   ► use command tab i also obviously click on windows to switch them around that's the whole deal with

00:14:18 ◼   ► front and center right one of the things i also do is click with my mouse and very often either

00:14:25 ◼   ► my muscle memory or my cursor just finds itself there the upper right corner is a convenient place

00:14:29 ◼   ► for you to go to click on an app to switch to it i also click on apps to switch to them in the dock

00:14:35 ◼   ► how do i decide when to do which i don't know it just i i don't think about it i just find myself

00:14:39 ◼   ► doing it but when i didn't have that palette there in the upper right i missed it and i found my

00:14:45 ◼   ► cursor going to that side and looking for the thing that wasn't there anymore so you know it's

00:14:50 ◼   ► just a thing that i enjoy uh you can also make it smaller than the dock uh or you know i guess you

00:14:57 ◼   ► can probably go the same so you can make it very very tiny you can adjust uh the spacing between

00:15:02 ◼   ► the icons there's never anything else there you can keep your dock hidden right so doc isn't

00:15:07 ◼   ► visible at all and you just use this as a switcher i don't know like i honestly i don't have much of

00:15:12 ◼   ► a pitch for this application other than to say i wanted it to be exist and i made it for myself

00:15:17 ◼   ► and i tried to do a good job on the app to make it so that it's useful for other people too but

00:15:21 ◼   ► if you don't if you don't want this thing you don't want this thing so it's kind of like uh front and

00:15:25 ◼   ► center at least front and center like even if you don't want it adds an ability that you didn't have

00:15:29 ◼   ► before like you can you know shift click to bring uh the whole app forward if you run it in modern

00:15:33 ◼   ► mode or whatever that was an ability you didn't have before this doesn't really give you any

00:15:37 ◼   ► abilities you didn't have before it just gives you a different way to do things you could already do

00:15:40 ◼   ► that's it i mean this looks very pretty and very well done i i am i am confused how you have found

00:15:48 ◼   ► yourself in a position that you feel like this is a part of your computing world but you know what

00:15:52 ◼   ► john you do you and i'm excited that this is here yeah i mean it's just i i'm just as surprised as

00:15:58 ◼   ► you were when drag thing went away i'm like oh well i'll just you know those habits i won't need

00:16:01 ◼   ► those but i i knew probably i knew i would need the window layering because i'd use many things

00:16:04 ◼   ► to do it but i didn't think i would really need the application switcher but i ran without it for

00:16:08 ◼   ► a while and i said you know what i miss i miss the stupid application switch about and like i said and

00:16:14 ◼   ► i just posted on my website uh a short little thing about it i'm not the only one so uh the

00:16:21 ◼   ► author of keyboard maestro you know the mac automation utility like when i was working on

00:16:27 ◼   ► front and center i noticed that keyboard maestro had added an application switcher palette like to

00:16:32 ◼   ► keyboard maestro like it was a new feature of the application just like in one of the menus lurking

00:16:36 ◼   ► in the keyboard maestro menu there's an option that said show application switcher whatever like

00:16:39 ◼   ► what and i showed it and it looks basically exactly like front like a switch glass looks like

00:16:45 ◼   ► i i looked at that i was like wow someone had an application palette i don't have to i can use this

00:16:50 ◼   ► to replace drag thing because i already own keyboard maestro and i run it right but then i

00:16:54 ◼   ► had feature requests so i wrote the author i'm like oh could you change this about the application

00:16:57 ◼   ► switch or could you change that and he was like not really this is not really what my application

00:17:03 ◼   ► does like keyboard maestro does his own thing i just added this for the hell of it and so that's

00:17:08 ◼   ► when i decided rather than pestering this poor person who just added this feature to his much

00:17:13 ◼   ► bigger complicated sophisticated application i should just make it myself how hard could it be

00:17:17 ◼   ► an excuse to use swift ui or whatever um but yeah the whole i don't know uh why it was added to

00:17:23 ◼   ► keyboard maestro but obviously someone wanted this thing besides me so there are at least two people

00:17:29 ◼   ► two people in the world who uh wanted to have an application switcher enough to code it up well

00:17:35 ◼   ► good for you yeah i agree and it is annoying to me how good this looks now are you pulling and i

00:17:41 ◼   ► think i already know the answer to this because i'm pretty sure i saw some discussion about it

00:17:44 ◼   ► you are pulling the actual desktop background in the position um preference is that correct

00:17:50 ◼   ► we're gonna say that for the war stories okay okay okay that's in too depth i think we've more or

00:17:55 ◼   ► less covered it oh and yeah read the blog post more information read the fact more information

00:17:59 ◼   ► i think i covered most of the questions people are gonna ask but yeah we'll get to war stories

00:18:02 ◼   ► later there are plenty but i don't want to bog down the whole being the show with this anyway

00:18:05 ◼   ► switch guys is five bucks go pay for it and never use it again that's ideal yeah definitely never

00:18:11 ◼   ► send any support email exactly that's pretty cool i mean it's funny to you know for for somebody who

00:18:18 ◼   ► is such a you know mac person and a programmer it is kind of funny that you have you know up until

00:18:26 ◼   ► a few weeks ago never released a mac app and all of a sudden you've released two that's pretty cool

00:18:32 ◼   ► like i feel like the world needs more you know public john syracuse of work that's not just cpan

00:18:40 ◼   ► modules agreed yeah i mean no one needs my programming like this is all silly but like

00:18:45 ◼   ► part of it is the mac app store honestly because uh i would not have gone through the hassle of

00:18:50 ◼   ► you know making a website to even just distribute the software and update it and just deal with all

00:18:56 ◼   ► that hassle if i couldn't make like a couple bucks here and there right so but the mac app store makes

00:19:00 ◼   ► it easy enough that i can put in like i don't have to run a store or do credit card processing because

00:19:05 ◼   ► i'm not going to make enough money like i even thought about that for this app because this would

00:19:08 ◼   ► be so much easier if it wasn't sandboxed i could do more stuff i'm like this app is never going to

00:19:12 ◼   ► make enough money to justify me making my own like website and payment processing like it's not you

00:19:19 ◼   ► know i do want to distribute it i want it to be out there for people to use say here's this thing

00:19:23 ◼   ► but there's no way i would have ever done it if you know the mac apps didn't exist now is it worth

00:19:29 ◼   ► the 30 cut apple's taking not for an application that would actually make any money but for my

00:19:33 ◼   ► applications that are just making me hopefully making me enough money to buy that stupid 400

00:19:37 ◼   ► bracket for the inside of my mac pro uh that's i mean this is this is this all goes to the the

00:19:43 ◼   ► pegasus j2i fund uh so you know that's so sad for that amount of effort god i don't understand why

00:19:51 ◼   ► it's why is it 400 an eight terabyte hard drive is like 130 bucks retail because they're only

00:19:55 ◼   ► gonna make like a hundred of these i know it's a bent piece of aluminum painted black i just i

00:20:01 ◼   ► don't understand it yes but it's a custom bent piece of aluminum painted black and apple's

00:20:06 ◼   ► probably taking 50 of that price for their retail margin i i think it's just pegasus i don't think

00:20:11 ◼   ► there's any profit sharing with apple it's just a pegasus but is it sold in the apple retail store

00:20:15 ◼   ► yes then apple then pegasus making probably 200 bucks of that i don't know but i don't know what

00:20:21 ◼   ► that deal is i think apple has this big disclaimer about how these aren't their products i don't know

00:20:25 ◼   ► if there's any profit sharing anyway but there if apple's the retailer like they take a large like

00:20:30 ◼   ► retailers take a large slice of the retail price of items usually it's at least a third

00:20:35 ◼   ► and often half i mean apple is apple fulfilling it i think isn't it sold like in the apple store

00:20:40 ◼   ► yeah i don't know i don't like a third-party seller on amazon i don't know it's anyway no no it's it's

00:20:46 ◼   ► i'm sure i guarantee you it's like a standard retail arrangement like i'm sure apple's taking

00:20:49 ◼   ► probably almost half the cut and you know as as their retail markup and so they probably have

00:20:55 ◼   ► it's probably a 200 bracket not a 400 bracket that has to include the price of the hard drive

00:20:58 ◼   ► which is probably at wholesale i don't know maybe 80 or 100 bucks i don't know how much any terabyte

00:21:02 ◼   ► drives cost these days so you figure it's more like a 100 bracket you know for something that is

00:21:07 ◼   ► machined to precise tolerances and is probably going to sell in pretty low volumes that isn't

00:21:12 ◼   ► that ridiculous honestly well anyway i'm glad that the mac app store exists because it's part of what

00:21:19 ◼   ► made me actually go through the formal i probably would have written these anyway just for myself

00:21:23 ◼   ► but i would not have spent nearly as much time like polishing them to get them to the point where

00:21:26 ◼   ► i'm not 100% embarrassed to put them out into the world and that takes all the time it's really easy

00:21:32 ◼   ► to get this working enough for me to use it much harder to productize it and that was part of the

00:21:37 ◼   ► fun like i said talked about the front and center i wanted to have that experience of like go through

00:21:41 ◼   ► app review deal with xcode you know get a thing on the store like just all all those different

00:21:47 ◼   ► things of course now that i've done with front and center you know it's getting kind of old but

00:21:49 ◼   ► like yeah i've i've had it i've had the experience uh i'm enjoying the program experience as we'll

00:21:57 ◼   ► talk about in more stories later uh but i'm i'm just glad these apps exist because i'm running

00:22:02 ◼   ► them both all the time well i am happy for you that you've put a new baby into the world yeah

00:22:06 ◼   ► me too it's pretty cool yeah we're gonna take a break for a while yeah next week it's marco star

00:22:11 ◼   ► and so you can't you're not casey we're gonna take a break and marco is just gonna kick back pour

00:22:16 ◼   ► myself a beverage and watch mark already did this he made quitter which was exactly the same thing

00:22:19 ◼   ► it's something that he wanted on the mac and he made it although he didn't even bother with the

00:22:24 ◼   ► mac app store do you still use it uh usually not um i i have i've kind of like trained myself to

00:22:31 ◼   ► not use social media stuff too aggressively on my mac enough that i usually don't run it and i

00:22:37 ◼   ► forget about it um but i do use forecast a lot i use forecast because the m3 encoder that's that's

00:22:43 ◼   ► my mac app that i use all the time but you haven't ever taken on that i'm gonna do the final 90 to

00:22:48 ◼   ► polish it to a commercial product you're still just reading it for yourself and using it and

00:22:51 ◼   ► distributing it to friends right correct i mean well yeah because like to actually make enough

00:22:57 ◼   ► money on it because it's such i mean talk about you know you're talking about like super specialized

00:23:01 ◼   ► products with very small audiences like yeah forecast is probably one of those although

00:23:05 ◼   ► honestly it's a bigger market than switch glass i'll tell you that does it i mean yeah there are

00:23:10 ◼   ► more people who make podcasts than want a second thing on their screen showing running apps but

00:23:13 ◼   ► how many people are encoding chapterized podcasts and would know about this it's it's not a big you

00:23:19 ◼   ► know it's probably a hundred people or less everyone you could sell to you already gave the

00:23:23 ◼   ► app to that's your problem well right and that's that's the thing it's like for you know when i

00:23:27 ◼   ► have an app that's like forecast where it's like what would be a good price for forecast it's

00:23:31 ◼   ► actually it actually has a lot of utility so i think five bucks would actually be too cheap

00:23:36 ◼   ► you know i think if i was going to charge money for it it would probably be i don't know 20 30

00:23:40 ◼   ► something like that 99 it's a pro app uh yeah i was gonna say 100 bucks just just make it just

00:23:45 ◼   ► make the window black maybe but if i'm gonna charge that much money for it i have to then

00:23:50 ◼   ► also offer a level of support that would be commensurate with that level of money and then

00:23:55 ◼   ► that would be so much hassle and so much time for me that it wouldn't be worth having those sales in

00:24:00 ◼   ► the first place because there'd be so few of them yeah because you're not going to use it you're not

00:24:03 ◼   ► even visualizing it as an income stream you'd be like oh i tried to use this chapterized thing on

00:24:07 ◼   ► this mp3 can you look at this file for me and it's like what am i doing am i debugging your weird

00:24:10 ◼   ► mp3 file for the you know 20 bucks you gave me three years ago on an app that no longer makes

00:24:15 ◼   ► any money exactly that's why like if i make the decision that an app is probably never going to

00:24:21 ◼   ► bring in enough money to like notice then i'd rather just have it be free than have it be cheap

00:24:27 ◼   ► because i don't want to deal with the support entitlement that people sometimes rightfully feel

00:24:33 ◼   ► about the amount of money they spent on your app yeah if you make a five bucks you could you know

00:24:37 ◼   ► fund your next mac pro hard drive bracket or something but then after that you know

00:24:42 ◼   ► put it to bed i mean you should you should see some of the emails i get for people who have

00:24:46 ◼   ► paid the overcast ten dollar a year subscription like that's who some people get really upset about

00:24:51 ◼   ► things like that yeah but even though and what crushes me so much is when people say i hey i

00:24:57 ◼   ► downloaded your app and it doesn't have you know some feature like video it doesn't have video

00:25:02 ◼   ► podcast playback so i bought the subscription to see if it had it then and it still doesn't have

00:25:06 ◼   ► a refund it's like oh i never said that would add it and i can't issue refunds because app store

00:25:13 ◼   ► oh like it's just so people do not like hearing that i can tell you they do not like hearing that

00:25:19 ◼   ► you can't issue refunds because nobody believes you all i do is i i send people a link there's

00:25:24 ◼   ► an i'more article like if you search google for app store refunds like every other google search

00:25:30 ◼   ► there's an i'more article in like you know one of the first three results and so and it's like how

00:25:34 ◼   ► to get it refunds from the app store i just send people that link i'm like i'm sorry i can't do it

00:25:37 ◼   ► i send them the official apple page i'm afraid if i send them to a third-party site they're going to

00:25:41 ◼   ► be like this isn't true this isn't even apple's site just give me my refund i think it's more

00:25:46 ◼   ► likely that the i'more page will remain there and remain current than some random apple support

00:25:53 ◼   ► document about app store refunds yeah yeah i i click through the apple instructions to see that

00:25:58 ◼   ► it looks like it works and i think it does people are getting refunds so they they can figure it out

00:26:01 ◼   ► that's i said it in slack before uh we started the show that like uh applications that are hard

00:26:07 ◼   ► to explain and easy to misunderstand is my new niche on the mac it's like front and center you

00:26:13 ◼   ► can't even explain what the hell it does then people get it and they think it does whatever

00:26:16 ◼   ► they had in their head and it doesn't do that and then they're angry about it and then this thing

00:26:20 ◼   ► it's like you look at the screenshot and you think you know what it does you think it's basically a

00:26:23 ◼   ► drag thing where you can make a configurable set of palettes everywhere like that's not how this

00:26:26 ◼   ► works and people don't read and they just buy it and they're angry so that is the uh the thing

00:26:31 ◼   ► i've carved out for myself weird little apps that satisfy my own needs that other people do not

00:26:36 ◼   ► understand and one thing i love about your apps first of all they are you know these kind of

00:26:42 ◼   ► little utilities they exist but they usually are not nicely done and you are actually caring about

00:26:51 ◼   ► things like the gooey spacing of the preferences dialogue it's like how many people who launch

00:26:58 ◼   ► one of your apps even even people who would use it every day how many of those people are going to

00:27:03 ◼   ► see that preference of screen a at all or b more than once and yet you're putting in all this effort

00:27:09 ◼   ► into like getting all the spacing it's like the only window in my app you know i know i'm a lot of

00:27:14 ◼   ► like i get it but like you know like you know like if i tweak the interface for forecast which i

00:27:19 ◼   ► should probably do because i don't know what i'm doing uh but like you know the ui of the app is

00:27:23 ◼   ► the app like it's you're constantly using the ui like i feel like that's like a high risk you know

00:27:27 ◼   ► a high reward thing to do whereas what you're doing is putting tons and tons of time into

00:27:32 ◼   ► perfect into perfecting a screen of the app that most of the users will never see or will see once

00:27:38 ◼   ► and that's kind of cool and then the second thing i like about what you're doing is that you are

00:27:43 ◼   ► making apps that adjust mac behavior in a way that a provides utility to people but b that in our new

00:27:52 ◼   ► world of quote the future of computing called ios these wouldn't even be possible neither would

00:27:59 ◼   ► quitter neither would things like clipboard managers which i love so much like this is the

00:28:03 ◼   ► kind of utility that makes the mac so great it's like you can actually customize it like first of

00:28:10 ◼   ► all you can have apps that interact with other apps in non-trivial ways and in ways that weren't

00:28:16 ◼   ► like pre-programmed by the target apps you can have apps that add things to effectively the system

00:28:22 ◼   ► shell that you you have something that's always displayed or that's displayed you know permanently

00:28:27 ◼   ► in the background or whatever you can do things like interact with the desktop like this is all

00:28:31 ◼   ► stuff that you can't do on ios like at all nobody can make utilities like this for ios except apple

00:28:39 ◼   ► and they won't like third parties can't do this and so that's i think it's just it's cool from

00:28:46 ◼   ► the point of view of like a kind of reinforcing the mac as like hey this platform is not dead or

00:28:52 ◼   ► not like a relic of the past this is actually a current thing that people use and love and b

00:28:57 ◼   ► kind of just taking advantage of the power that we have in this platform of like look you know i

00:29:03 ◼   ► know it's i know a lot of people love ios and that's great and there's some advantages certainly

00:29:08 ◼   ► but the mac is really cool for lots of things and lots of reasons that ios will probably never be

00:29:14 ◼   ► able to offer and the ability for utilities like this to exist on the mac and to be as good as they

00:29:20 ◼   ► are will never happen on ios and that's pretty cool yeah i mean it's it's kind of weird because

00:29:27 ◼   ► the mac is getting harder to do stuff like this on and ios is arguably getting slowly easier for

00:29:33 ◼   ► things like third-party keyboards or you know the share extensions and stuff right so they're moving

00:29:37 ◼   ► towards each other but they're still very far away and this is i've always liked this type of little

00:29:43 ◼   ► utility thing for the mac like things like i said things that change how you use the mac

00:29:47 ◼   ► lots of people ask me with front and center everything aren't you afraid you're gonna get

00:29:50 ◼   ► sherlock that apple will implement this functionality i'm begging apple to implement

00:29:53 ◼   ► this functionality sherlock all of my apps make it so i do not have to continually keep these things

00:29:59 ◼   ► running as you change the operating system and deprecate the apis i'm using or whatever

00:30:02 ◼   ► please take front and center's functionality build into the os let me pin the dock to the

00:30:07 ◼   ► ends add a dedicated application switcher like it used to be in class like i welcome that with

00:30:11 ◼   ► open arms anytime you do any kind of system extension that's a possibility right if you're

00:30:16 ◼   ► trying to make your living for it off of it you don't want apple to sherlock you but if like me

00:30:20 ◼   ► the only reason you're the only reason you're making these things is because you have no choice

00:30:25 ◼   ► like then i'm totally happy for them to be integrated and even if you're trying to make

00:30:29 ◼   ► your living off of something like that be aware that if you make something that extends the system

00:30:34 ◼   ► and it actually is popular like this is awesome i'm making tons of money i made this cool thing

00:30:38 ◼   ► and it's like to give one example which i don't think apple will make but like you mentioned

00:30:42 ◼   ► clipboard history right i think clipboard history has broad appeal if implemented well

00:30:47 ◼   ► there are lots of third-party applications that implement it i can't live without it

00:30:51 ◼   ► apple could build that into the system uh i still think they i wouldn't like their implementation as

00:30:57 ◼   ► much as the third-party ones but it would be cool to just know that every mac out there has

00:31:00 ◼   ► clipboard history in some fashion you know what i mean oh yeah um and so if you're making a really

00:31:05 ◼   ► good clipboard history manager like i use payspot i think it's really good you have to be aware it

00:31:10 ◼   ► could be that despite you making this app and maybe making lots of money off of it at any point

00:31:14 ◼   ► apple could decide this year we're going to add that to the os and that's just the price of doing

00:31:18 ◼   ► business when you're extending the system and it's true of applications too you know if you make uh

00:31:23 ◼   ► i don't know uh thing that lets you read articles later apple could add that feature to uh its

00:31:28 ◼   ► applications and you know could and did what can you do uh you could keep going because nobody uses

00:31:33 ◼   ► it yeah yeah that's the other thing just because they added to the operating system doesn't mean

00:31:38 ◼   ► people still won't want your fancier much more configurable version but you never know well

00:31:43 ◼   ► congrats john i hope you uh earn enough money for a wheel for your no i can't afford a wheel i just

00:31:49 ◼   ► want i just want a bracket that holds hard drives not even one wheel you can't do one wheel if they

00:31:55 ◼   ► sold the wheels individually that'd be nice you could go on like a payment plan i mean you'd be a

00:31:59 ◼   ► little lopsided for a while every six months you get one wheel for 100 bucks oh my goodness

00:32:04 ◼   ► we are sponsored this week by bombas working out is hard it's always been hard even when it's easy

00:32:11 ◼   ► it's still pretty hard bombas socks can't change that but they could make it more comfortable

00:32:17 ◼   ► if this year your theme or your resolution is to get fit start by getting socks that can keep up

00:32:23 ◼   ► every step of the way you do a lot of things to stay active lots of different things so bombas

00:32:28 ◼   ► made lots of different performance socks designed from everything from running to hiking to cycling

00:32:32 ◼   ► and more if you're very into sports or if you're planning to get very into sports bombas can help

00:32:37 ◼   ► there with performance socks and styles made specifically for basketball tennis running golf

00:32:42 ◼   ► and more there too these are made with a lightweight poly cotton blend which means no

00:32:46 ◼   ► matter how hard you're working your feet will stay cool dry and comfortable never sweaty and

00:32:52 ◼   ► bombas socks are just really good socks they provide support in places you didn't even know

00:32:56 ◼   ► you needed like your arches each sock is built with a special arc support system that's supportive

00:33:00 ◼   ► but not too tight kind of like a nice hug but on your foot a foot hug and constantly pausing your

00:33:06 ◼   ► treadmill to adjust twisted bunched up socks is enough to make anyone ready to quit that's why

00:33:11 ◼   ► bombas are designed with left right contouring and a y-stitched heel so they stay perfectly in place

00:33:17 ◼   ► and you ever notice that annoying toe seam most socks have along the toe that little ridge on top

00:33:22 ◼   ► bombas got rid of it they designed it out it's gone just smooth sailing all the way across the

00:33:27 ◼   ► top of your foot i gotta say i use bombas socks myself a lot of the time and i recently you know

00:33:32 ◼   ► i i got for christmas i got a couple of their merino socks these are my favorite socks i like

00:33:37 ◼   ► them so much i actually just earlier today ordered more because i keep going through them like first

00:33:42 ◼   ► thing on every laundry cycle and then i run out i gotta wait till the next laundry cycle to get more

00:33:46 ◼   ► get my bombas back so i had to order more to get more pumpas because they're so good so also did

00:33:51 ◼   ► you know that socks are the number one most requested item in homeless shelters bomba socks

00:33:55 ◼   ► were created to change that for every pair you buy bombas donates a pair to someone in need so go to

00:34:00 ◼   ► bombas.com slash atp today and get 20 off your first purchase that's b o m b a s.com bombas.com

00:34:10 ◼   ► slash atp for 20 off bombas.com slash atp thank you so much to bombas for hugging my feet and

00:34:17 ◼   ► sponsoring our show all right so the oscars were a couple of days ago and uh i would just like to

00:34:27 ◼   ► let you gentlemen know that apple's laptop keyboards did not actually win an oscar they kind of anti-won

00:34:33 ◼   ► an oscar so i actually i saw that this was the thing but i i never got a chance to watch the

00:34:39 ◼   ► video so would one of you like to explain to me what happened here yeah this is taika watidi uh

00:34:43 ◼   ► what did he do he was directed jojo rabbit this year which was nominated he's done a bunch of

00:34:48 ◼   ► things and been in a bunch of things um and he was in that thing where you stand in front of the

00:34:52 ◼   ► weird background uh like the big backdrop and the press asks you questions i believe it's called a

00:34:57 ◼   ► step and repeat i how do you know this that's the picture-taking thing i'd like it a red carpet

00:35:02 ◼   ► there's like a big banner oh i didn't even know that yeah like the big banners and you stand in

00:35:05 ◼   ► front of me get your picture taken you keep walking oh yeah i know what you're talking about

00:35:07 ◼   ► i just didn't know that's what it was called those are called stepping receipts anyway he's standing

00:35:11 ◼   ► in front of us and he's taking questions someone asked him like something i don't remember the

00:35:14 ◼   ► question it's like with the writer strike writers guild something or other how do you feel about what

00:35:18 ◼   ► you know what should writers do or what would you like to see happen it was some question that

00:35:22 ◼   ► really wasn't leading in this direction at all it was a hollywood question about the entertainment

00:35:26 ◼   ► industry and and being a writer or whatever and his answer was a whole big spiel about how apple

00:35:33 ◼   ► needs to fix its keyboards like that would help writers because writers are out there in hollywood

00:35:36 ◼   ► and they're typing away on their apple laptops because it's hollywood and they all love max

00:35:39 ◼   ► but those keyboards are terrible and here's here's the quote that it gets keeps getting passed around

00:35:44 ◼   ► the money quote what are some of the needs that you believe that writers should be asking for in

00:35:49 ◼   ► the next round of talks with produce um apple needs to fix those keyboards though they are impossible

00:35:56 ◼   ► to write on they've got they've gotten worse that makes me want to go back to pcs because pc keyboard

00:36:02 ◼   ► the bounce back on for your fingers is way better and the hands up who still uses a pc

00:36:07 ◼   ► you know what i'm talking about this is a way better keyboard and those apple keyboards are

00:36:13 ◼   ► horrendous especially as the computers as laptops get newer and newer i mean here's the new the

00:36:19 ◼   ► latest the latest one the latest uh new iMac the keyboards are worse and i've got very about that

00:36:27 ◼   ► some shoulder problems i've got um like a sort of ooze don't know if you call it over here like this

00:36:32 ◼   ► sort of thing here which is that tendon that goes from like the forearm down into the thumb you know

00:36:37 ◼   ► what i'm talking about you guys who are writing and what happens is you open the laptop and you're

00:36:41 ◼   ► like this so we've just got to fix those keyboards wga needs to step in and actually do something

00:36:48 ◼   ► this you know went all around the web because it is you know the oscars are a mass market thing

00:36:54 ◼   ► apple's keyboards despite all us complaining about them in all the stories in tech world

00:36:58 ◼   ► generally don't break out into the same world as hollywood entertainment

00:37:03 ◼   ► but here here it is the crossover event of the century

00:37:05 ◼   ► famous hollywood person hates apple keyboards now a couple things are interesting to know about this

00:37:11 ◼   ► one when he's describing it he you know he's just you know speaking off the cuff and he mentions

00:37:17 ◼   ► like on apple's new iMacs and so you might start listening and say is he actually complaining about

00:37:24 ◼   ► the laptop keyboards or is he because he said iMac but really as he goes on it becomes clear as he

00:37:30 ◼   ► explicitly mentions keyboards later or laptops later the massive brand footprint that the iMac

00:37:37 ◼   ► name has still in people's mind from that teal compute plastic computer all those years ago

00:37:41 ◼   ► is such that when a brain just reaches for what was the name of that apple product sometimes the

00:37:48 ◼   ► thing that pops out is iMac especially when you're thinking of a Mac so i thought that was fascinating

00:37:52 ◼   ► but but no he is actually talking about the laptop keyboards but the second thing is because he's not

00:37:56 ◼   ► a super duper tech nerd he's not specifying oh i don't like the butterfly keys he doesn't know what

00:38:01 ◼   ► butterfly keys are we also don't know does he hate the new 16 inch macbook pro with the good fixed

00:38:10 ◼   ► keyboard i don't know he might hate that one too like there wasn't enough information for tech

00:38:15 ◼   ► nerds to latch onto but you know all this the summary here is that these keyboards even if

00:38:22 ◼   ► apple fixes them all to everyone's satisfaction tomorrow which they still haven't done because

00:38:27 ◼   ► they're selling the butterfly keyboards on all their laptops except for the one that margo bought

00:38:30 ◼   ► for years apple will continue to have this reputation of keyboards that people don't like

00:38:36 ◼   ► and if it is actually the case that people still don't like the keyboard on the 16 inch macbook pro

00:38:43 ◼   ► apple still has more work to do again i don't know this is just one person's complaint i suspect what

00:38:48 ◼   ► they're actually complaining about is the butterfly keyboard whether they know it or not and i suspect

00:38:52 ◼   ► they don't know or care that there's a new laptop that has a different keyboard and i suspect further

00:38:56 ◼   ► that if you showed them the new keyboard they might say they like it better but it'd still be

00:38:59 ◼   ► grumpy about it because in their minds apple and keyboards like i said they've gotten worse you

00:39:04 ◼   ► know it makes me want to go back to pcs because the keyboard is not satisfying to him so much so

00:39:11 ◼   ► that when you know at the oscars in front of a bunch of press ask questions that have nothing

00:39:16 ◼   ► to do with tech they weren't asked like what kind of tools would help you you know or maybe it was

00:39:20 ◼   ► like what would help the writer's guild or whatever but it wasn't about a techn it wasn't a technology

00:39:23 ◼   ► question and this is what he came up with so this is not good for apple uh and this just goes to show

00:39:29 ◼   ► the the lasting legacy of the butterfly keyboard even though apple thinks maybe that they have

00:39:37 ◼   ► solved this problem with the combination i mean the official party line like what what they've

00:39:41 ◼   ► actually said you know from pr marketing like what they've actually said is a like you know the 16

00:39:47 ◼   ► inch has this wonderful new magic keyboard blah blah blah and that b that the like new materials

00:39:53 ◼   ► revision of the butterfly keyboard is doing great and so it kind of sounds the the public statement

00:40:00 ◼   ► seems to currently be this problem is behind us now whether they believe that internally we don't

00:40:05 ◼   ► know a they very much haven't solved it like most people who are using their laptop for like non

00:40:13 ◼   ► super high-end stuff like you know if he's talking about in the context of using it as a writer

00:40:18 ◼   ► you think he has a 15 inch maybe i think it's very clear that apple sells a heck of a lot more

00:40:24 ◼   ► uh 13 inches and airs so if this is a market that largely uses those they might not even realize

00:40:32 ◼   ► that there is a model with a better keyboard because they aren't shopping for a laptop that

00:40:37 ◼   ► big they don't want one that big and so not only is this problem not solved in any of the smaller

00:40:45 ◼   ► ones from the like you know butterfly reliability perspective but this shows that also he wasn't

00:40:51 ◼   ► talking about reliability he just hates the low travel so it isn't enough that they simply might

00:40:57 ◼   ► have fixed the reliability or at least improved their reliability with the new materials revision

00:41:01 ◼   ► last year like they have to get rid of this keyboard altogether because even if it works

00:41:07 ◼   ► perfectly a lot of people still hate it which i'm one of those people so i totally get that

00:41:11 ◼   ► so that's one problem the other problem is what if they had actually replaced every single keyboard

00:41:18 ◼   ► in the lineup which i think this makes clear they have to do that they still are going to have years

00:41:26 ◼   ► of reputation damage from people who either don't know that they have been fixed or are still using

00:41:33 ◼   ► an old one that hasn't yet had the new keyboard put into it or still remember being burned by having

00:41:41 ◼   ► owned one of those that's going to take years before it's mostly behind them and it just goes

00:41:48 ◼   ► to show like how immense the damage has been done to their reputation and to their brand image

00:41:53 ◼   ► and to their customers image of like do i want to even buy apple products anymore

00:41:57 ◼   ► the the immense amount of damage that they did i honestly think this has been the biggest screw-up

00:42:04 ◼   ► in the last at least decade for the mac and possibly for apple period it's such a huge deal

00:42:10 ◼   ► and when we were all saying you know hey this is this is kind of a problem we were saying that for

00:42:15 ◼   ► years a lot of people were telling us why do you why don't you just forget about it why don't you

00:42:20 ◼   ► just move on why don't you just stop harping on it it's not that big of a deal i like my butterfly

00:42:24 ◼   ► keyboard like no this was a really big deal it still is a really big deal and it's going to

00:42:29 ◼   ► continue to be a really big deal for years after they completely removed from their lineup which

00:42:35 ◼   ► they now definitely have to do and still haven't yeah this is a tough thing for apple too because

00:42:41 ◼   ► this is this is the type of press that apple hates which is basically not particularly informed and

00:42:48 ◼   ► in some ways unfair criticism from someone very famous right so like he went he went into a thing

00:42:56 ◼   ► of like talking about his art is it unfair i don't know i don't think he was talking he was talking

00:43:01 ◼   ► about his rsi and everything and for all the faults you could have with low travel keyboards i have

00:43:06 ◼   ► never seen anyone even you know imply that they increase the the risk of rsi you know if anything

00:43:12 ◼   ► they should help because you're pressing less hard on the keys or whatever like there's no foundation

00:43:16 ◼   ► for that but when you're annoyed with something when you're just a regular person who doesn't

00:43:20 ◼   ► care about tech stuff or whatever you're just you're just a regular consumer and you have this

00:43:23 ◼   ► thing and the keyboard annoys you and maybe you keep buying them and like the keyboards used to

00:43:27 ◼   ► be better and you keep buying these new apple laptops and you don't like the keyboards you're

00:43:31 ◼   ► going to map all sorts of bad feelings onto that so you're going to say yeah my shoulder's been

00:43:34 ◼   ► bothering me and i bet it's because of these new keyboards which is not it's not because of the new

00:43:39 ◼   ► keyboards but you still don't like the new keyboards and that's like the worst case scenario

00:43:43 ◼   ► for like public relations where someone with with a big microphone like someone in front of a million

00:43:47 ◼   ► cameras at the oscars right is asked an unrelated question and of their own accord pulls out let me

00:43:54 ◼   ► complain about an apple product like i can just imagine those people going oh no like this is the

00:43:59 ◼   ► word it's like you know it's not it's not a good day for apple and it's it's not and you have to

00:44:05 ◼   ► just deal with that people are not going to try to be fair and even-minded with their criticism

00:44:09 ◼   ► and if they just feel like saying i think this thing caused my rsi they're going to say that

00:44:12 ◼   ► right and that's going to become the story you know famous person says apple products have

00:44:18 ◼   ► bad keyboards and it will you know even if it was a hundred percent false which it's not like there

00:44:23 ◼   ► some people don't like keyboards even if even if there was nothing to this story it would still

00:44:27 ◼   ► have traction so i feel for apple pr um you know like this is i think the first time that the

00:44:36 ◼   ► keyboard problem has had something like this happen where it's a magnified example of extremely

00:44:43 ◼   ► you know like worst case scenario potentially unfair criticism everything else has been like

00:44:48 ◼   ► we're a bunch of tech nerds and we love apple but we're disappointed by this thing

00:44:52 ◼   ► and trying to be reasonably fair and measured about it uh but hollywood director doesn't care

00:44:59 ◼   ► about being fair and measured about technology product opinions he's just gonna say i don't like

00:45:03 ◼   ► these darn keyboards right and that's that's what happened so i kind of feel for apple but uh other

00:45:09 ◼   ► people may be you know having the opposite feeling of just glee that that apple is getting slammed

00:45:14 ◼   ► for this i don't have any glee about it um i i mean i do find myself wondering uh you know tica

00:45:20 ◼   ► give us a call uh do you who you know do you like the new keyboard do you like is the 16 inch better

00:45:27 ◼   ► right because if it's not then that's even the worst scenario where it's like i don't know i

00:45:31 ◼   ► mean it's just one person like you know some people will just never like keyboards that aren't the ibm

00:45:36 ◼   ► model m or whatever right everyone has their own personal opinions and it's a shame when that person

00:45:41 ◼   ► is very famous and says i'm never going to use anything except for a buckling spring keyboard

00:45:45 ◼   ► and apple doesn't offer those on his laptops therefore i had apple laptops that's another

00:45:49 ◼   ► example of unfair bad pr from a single person but that's the world we live in right but i do wonder

00:45:56 ◼   ► like you were saying marco you know if if everything had the new keyboard is the problem solved marco

00:46:02 ◼   ► likes the new keyboard but and you know and this wasn't even around reliability this is about you

00:46:07 ◼   ► know feel but how does the rest of the world feel about the new keyboards when it eventually replaces

00:46:12 ◼   ► the old ones will people buy a new apple laptop and say oh it's better than the old keyboard but

00:46:18 ◼   ► they used to make them even better even if that's not true they might save them that to themselves

00:46:21 ◼   ► for the rest of their lives right again unfair right like in reality maybe this keyboard is

00:46:27 ◼   ► better but they have this this rose-colored glasses memory of apple of marco's best laptop ever that

00:46:33 ◼   ► you know whatever whatever they're remembering about how the keyboards used to be they'll even

00:46:38 ◼   ► if apple makes a keyboard that's better than that in the future they'll always be like yeah they

00:46:42 ◼   ► used to be better like that's just human nature and you can't fight that's the danger of having

00:46:46 ◼   ► a misstep like this that you know you're like well we corrected it and we made a new keyboard and and

00:46:51 ◼   ► it's better and in blind tests everyone likes it better than the old one it's reputation and people

00:46:57 ◼   ► are stubborn about reputation you know you just think of all the people you've heard in your life

00:47:01 ◼   ► who have told you how much they hate insert company x you know weber grills delta airlines you know

00:47:08 ◼   ► whatever some company that did some bad thing or had some bad product three decades ago and forever

00:47:14 ◼   ► this person every time they come up just complains about it and says their new products are no good

00:47:19 ◼   ► whether or not that that's true that's the danger of of taking a misstep the reputational damage can

00:47:24 ◼   ► live as long as the people it lives inside which is not fair to the company especially if they fix

00:47:29 ◼   ► things or you know used to make crap pox it was true of japanese cars i don't know if you either

00:47:35 ◼   ► one of you have talked to your grandparents about the reputation products from japan used to have

00:47:41 ◼   ► like after world war ii right japan makes crap and they're like i'm never buying a japanese car they

00:47:46 ◼   ► make garbage and for some of these people for their whole lives just always thought japanese

00:47:51 ◼   ► cars were garbage whereas if you you know if you were in a later generation you think japanese cars

00:47:56 ◼   ► reliability they're they're well made they're reliable and that's the reputation japanese

00:48:00 ◼   ► cars have and even if japan's quality goes downhill maybe we'll have that reputation in our

00:48:04 ◼   ► mind it's very difficult to dislodge these things sometimes the only way they ever go away is that

00:48:09 ◼   ► generation people of dying and the new generation of people thinking oh japanese cars that's

00:48:13 ◼   ► synonymous with reliability because they make good cars yeah i think i think the way that you

00:48:19 ◼   ► minimize the risk of this happening to you as a company you know a obviously try not to ship

00:48:25 ◼   ► flaws right but nobody can do that every time nobody's perfect every time so i think you know b

00:48:30 ◼   ► if you ship a flaw try to recognize it and rectify it as quickly as you can so that the number of

00:48:39 ◼   ► people who have negative experiences with your product is as small as it can be and here apple

00:48:45 ◼   ► seemed to do the opposite of that they seem to not only not recognize it because this was this was a

00:48:51 ◼   ► problem since the 12 inch macbook in 2015 they had plenty of time and then they moved to the whole

00:48:56 ◼   ► product line with this keyboard in late 2016 and it took them three more years before they released

00:49:02 ◼   ► a single model that didn't have it and now we are you know three and a half years into that timeline

00:49:08 ◼   ► now and they're still selling this keyboard brand new in their probably highest volume laptops they

00:49:16 ◼   ► kind of did the worst possible thing here like you know not only did they ship a mistake okay everyone

00:49:19 ◼   ► ships mistakes sometimes but they have taken an eternity to fix it and they have made the mistake

00:49:26 ◼   ► affect the broadest possible swath of their customer base like it isn't that they continue

00:49:32 ◼   ► just shipping one model with this like if it was only ever the 12 inch macbook you know it would

00:49:36 ◼   ► maybe get a reputation for okay this keyboard kind of sucks in this tiny little laptop but

00:49:40 ◼   ► oh well we'll buy a bigger laptop we can avoid that keyboard but they didn't do that they put it

00:49:45 ◼   ► in all of them so everyone who buys mac laptops which is most people who buy max was forced to

00:49:52 ◼   ► have this keyboard for this entire time span so this was a significant problem and this affected a

00:49:58 ◼   ► large portion of their customer base for a very long time the damage from that is way bigger than

00:50:06 ◼   ► like if the new mac pro had a problem sorry john like if the new mac pro had a problem

00:50:10 ◼   ► then that okay that would that would affect a very small customer base and probably for not that long

00:50:15 ◼   ► of a time whereas like if you know if the laptops have a problem that affects lots of people and

00:50:21 ◼   ► this problem has lingered for years like i'm happy to try to place blame on them for shipping this

00:50:26 ◼   ► keyboard in the first place but just as critical of an error was letting it sit for so long without

00:50:32 ◼   ► replacing it the interesting thing is you can you can actually be cranky and and immature and bitter

00:50:40 ◼   ► about it and still uh save yourself so i was thinking when you're talking about that i was

00:50:46 ◼   ► thinking about other examples of where apple has screwed up um and tennegate uh they made a phone

00:50:53 ◼   ► that had uh you know the story was you wrapped your hand around it the signal couldn't get out

00:50:58 ◼   ► which was true and you could demonstrate it and apple was cranky about it particularly steve

00:51:02 ◼   ► job saying but you could do that to blackberry phones too and and you know it's not fair and

00:51:06 ◼   ► blah blah blah and they had that press conference like fine you want a bumper we'll give everyone

00:51:10 ◼   ► free bumpers like he was just so you know immature and and not not uh magnanimous about it at all

00:51:17 ◼   ► and he was just mad that he even had to have this press conference and give people free bumpers or

00:51:21 ◼   ► whatever uh but two things uh were different about that thing or first of all they did it fairly

00:51:28 ◼   ► quickly the antenna antenna gate story came out and they didn't you know insist that there was

00:51:32 ◼   ► nothing wrong for three years like they fairly quickly had an actual press conference about it

00:51:36 ◼   ► and tried to fix it and the next thing they did was you can be damn sure the phones after that

00:51:42 ◼   ► didn't have that exact same problem they changed the designs of their phone to be better in that

00:51:46 ◼   ► regard whether or not they thought it was fair or thought that the previous phone actually was

00:51:51 ◼   ► no worse than any other phone or whatever it was kind of like bending it too same deal learn from

00:51:56 ◼   ► it quickly and then the very next phone make it less bendy and from that point on have this be

00:52:01 ◼   ► one of your criteria right i mean like it wasn't addressed as like well they did such a good job

00:52:07 ◼   ► and they just had perfect pr like steve jobs was cranky about it right he was the face of the

00:52:12 ◼   ► company and he seemed like indignant that you could be complaining about this which is not even

00:52:18 ◼   ► really a problem but his attitude did not dictate that the company you know what this isn't a problem

00:52:23 ◼   ► we're not going to do anything about it no they still had a press conference they still gave people

00:52:28 ◼   ► free bumpers right if you know and that's that's the bar like you don't have to be perfect you

00:52:33 ◼   ► don't have to be like i'm a saint and if i ever do anything wrong i will be uh you know immediately

00:52:39 ◼   ► uh contrite and i will offer our sincere apology and i will right all the wrongs you don't have to

00:52:44 ◼   ► be that good but time to action is key take reasonably appropriate action learn from your

00:52:50 ◼   ► mistakes and do it quickly and you can even be cranky and now how many people think iphones have

00:52:56 ◼   ► your reputation that if you hold them in your hand they don't get a signal you never hear that

00:52:59 ◼   ► like even from people who who remember and tennegate that is not a slam on iphones you

00:53:05 ◼   ► say iphones aren't those the phones that don't get a good signal when you hold them in your hand

00:53:08 ◼   ► nobody says that but that was that was a big story at the time and they didn't gracefully nip

00:53:15 ◼   ► it in the bud but they did act quickly and fairly decisively and did not continue to ship iphones

00:53:22 ◼   ► with the exact same performance characteristics for years and years and so you know i think

00:53:26 ◼   ► obviously that was a different apple and at a different time and a different scope and yeah

00:53:31 ◼   ► the iphone wasn't as big at that time and then you know there's many things about the current

00:53:34 ◼   ► situation that are different but i think apple itself has shown good examples of quickly learning

00:53:41 ◼   ► from and recovering from its mistakes in an imperfect way such that you avoid this sort of

00:53:48 ◼   ► long-term unfair put scare quotes around that if you want reputational damage i don't i don't i

00:53:54 ◼   ► just don't get it i don't understand why they would double and then triple and then quadruple

00:53:58 ◼   ► down on it and as you both were saying i don't understand why we don't have this across the line

00:54:04 ◼   ► across the entire laptop line and the answer is is because it's a big ship that moves slowly and

00:54:10 ◼   ► i'm not appreciating how challenging it is to make these changes and have them be global changes not

00:54:16 ◼   ► not only in the figurative sense of global across their line their laptop line but global in the

00:54:21 ◼   ► sense of literally these devices are shipped around the world but i mean they seem to be able

00:54:25 ◼   ► to do it phones i mean not exactly the same thing but similar things like you were saying like we

00:54:30 ◼   ► can make it work for phones we ship a hell of a lot more phones we do computers well i think it's

00:54:34 ◼   ► largely about attitude and and about economics like it it probably took them a long time a longer

00:54:41 ◼   ► time than i bet we would have guessed to even decide you know what this was the wrong move

00:54:47 ◼   ► obviously no one took the feedback in 2015 on the 12 inch no one cared obviously the the high

00:54:56 ◼   ► failure rate and low manufacturing yield of that initial 2015 keyboard that information didn't

00:55:02 ◼   ► really go anywhere either obviously there was an attitude that this is the way forward this is a

00:55:08 ◼   ► great period by the way that same attitude seems to apply to the touch bar still they still think

00:55:14 ◼   ► the touch bar is a universal good because if they didn't think the touch bar was a universal good

00:55:19 ◼   ► they would make it optional but they don't so clearly they think why would anybody not like the

00:55:25 ◼   ► touch bar and i think that's still the wrong move regardless like something kept that attitude going

00:55:32 ◼   ► of this keyboard is is great this is fine there's we have no problems with this through all those

00:55:37 ◼   ► revisions and revisions because they didn't want to admit to themselves properly that they were

00:55:42 ◼   ► wrong and then secondly there's a huge economic thing of like you're going to have this manufacturing

00:55:47 ◼   ► line running for x years it's going to cost you you know x dollars to retool and redesign

00:55:54 ◼   ► and re-engineer a different keyboard into this into this line and i have a feeling they just

00:55:59 ◼   ► spread sheeted it and at some point somebody decided hey you know what it would be too

00:56:04 ◼   ► expensive to fix this faster and so we're going to fix it on our timeline and in the meantime oh well

00:56:12 ◼   ► we'll do a repair extension program and sweep it under the rug problem is that didn't work

00:56:17 ◼   ► we are sponsored this week by linode my favorite web host look no matter what you need if you need

00:56:24 ◼   ► servers whether it's from a personal project or a hobby thing or learning how to use linux

00:56:29 ◼   ► all the way up to larger scale things like running an entire app like i run all of overcast at linode

00:56:34 ◼   ► whatever it is you need from small to big linode has the pricing the support and the scale that you

00:56:39 ◼   ► need for your project they have 11 data centers worldwide and they're always adding more they

00:56:43 ◼   ► recently added sydney australia all these data centers have enterprise grade hardware they just

00:56:48 ◼   ► launched an s3 compatible storage option recently and it's all backed by their next generation

00:56:53 ◼   ► network linode delivers the performance that you expect at a price that you honestly don't you can

00:56:58 ◼   ► see for yourself today using code atp 2020 to get a 20 credit and that'll give you access to

00:57:05 ◼   ► everything they have to offer you have native ssd storage and all their servers this 40 gigabit

00:57:10 ◼   ► network behind it all all these servers come with root access you can install whatever software you

00:57:15 ◼   ► need you can figure everything with their api to automate things like expansion or contraction

00:57:20 ◼   ► they have a cli tool in python i use it all the time and all this comes in starting at just five

00:57:25 ◼   ► dollars a month this is great for people who just want to get started who you want to try things out

00:57:30 ◼   ► and all their plans from you know you know i use mostly the bigger ones but all their plans in my

00:57:35 ◼   ► opinion are the best value in the business and i've been with them for almost a decade and the

00:57:40 ◼   ► entire time they've stayed the best value in the business whenever new technology gets better it

00:57:45 ◼   ► gets cheaper they give you more for your money so it's super great to be a linode customer i've been

00:57:49 ◼   ► with them for all this time i run all of overcast there i run markets.org there on the live streaming

00:57:54 ◼   ► server for this podcast there everything i run there i'm very happy with see for yourself linode.com/ATP

00:57:59 ◼   ► using promo code ATP2020 to get a 20 credit that could be four months free on a five

00:58:07 ◼   ► dollar a month plan so once again linode.com/ATP promo code ATP2020 thank you so much to linode

00:58:15 ◼   ► for hosting all my stuff and sponsoring our show you posted some interesting things to instagram

00:58:24 ◼   ► today oh yeah yeah you're not gonna get away with this we'll close out the crank chapter here this

00:58:29 ◼   ► will be the last thing i'm cranky about tonight so i look at my instagram stories at some point in

00:58:34 ◼   ► the evening and i see that you were lamenting the fact that you couldn't debug something in xcode

00:58:40 ◼   ► if i'm not mistaken in the beta specifically and then you were lamenting the fact that it required

00:58:45 ◼   ► catalina and then next thing i know you're doing the thing that you swore that i was not allowed to

00:58:49 ◼   ► do dad and you're installing catalina on a device i'm presuming it's your iMac pro did you buy your

00:58:56 ◼   ► mac pro before or after this this travesty happened i haven't had time yet are you going to

00:59:04 ◼   ► i don't know my fan noise is back i still gotta figure that out but uh no i'm so annoyed uh no

00:59:10 ◼   ► yeah i i've been resisting catalina on my main iMac pro uh i i've had it on my laptop because it came

00:59:17 ◼   ► with it and it's been you know i've been dealing with it it's fine um but as i said before i didn't

00:59:23 ◼   ► see any reason to upgrade to catalina and there only seemed to be downsides and risks no real

00:59:28 ◼   ► upsides and well now i finally had to do it because i upgraded my phone to the 13.4 beta which

00:59:36 ◼   ► presumably sometime in the next few weeks will become the 13.4 release of ios and you can't

00:59:42 ◼   ► develop for that phone with xcode 11.3 you can only develop for it which means i can only do

00:59:49 ◼   ► like the build and run and install development builds on my phone easily from the new beta of

00:59:55 ◼   ► xcode 11.4 which requires catalina they do this every year where like every year like at some

01:00:03 ◼   ► point halfway through the year or so they make the newest version of xcode require the newest mac os

01:00:08 ◼   ► and that is what finally pushes developers who have been reluctant to install the new version

01:00:12 ◼   ► of mac os to finally do it because while it is possible to continue doing my job without being

01:00:19 ◼   ► able to instantly run development builds on my phone it becomes much more cumbersome and it it's

01:00:24 ◼   ► just the cost of that to me is too great so i bit the bullet and i upgraded on podcast day

01:00:33 ◼   ► mere hours before the podcast very bold maneuver yes uh and here i am running catalina

01:00:40 ◼   ► on my desktop finally so i'm finally fully upgraded reluctantly i i've been really eyeing

01:00:48 ◼   ► both side eyeing and excited i in catalina uh on account of you know starting to do some swift ui

01:00:55 ◼   ► work and it would be so much nicer as we discussed last episode to be able to do that on my imac pro

01:01:00 ◼   ► but my two dads that's a reference john have told me that i am not allowed to upgrade to catalina

01:01:06 ◼   ► so i haven't and here it is now i am the only holdout on mojave is that correct because john

01:01:11 ◼   ► you have to run it on your mac pro correct yeah my wife's imac is still on mojave and i i thought

01:01:16 ◼   ► about upgrading her but i'm like you know what just don't just like i don't i'm not honestly i

01:01:23 ◼   ► don't have many catalina problems like i had one weird freak out where i don't know if it was xcode

01:01:31 ◼   ► related i was always running xcode so i don't know whether to blame it but at a certain point like

01:01:34 ◼   ► how did it manifest oh uh i would select uh i was fast user switching between people to take

01:01:40 ◼   ► screenshots and i selected a different account from the fast user switching menu and nothing

01:01:46 ◼   ► happened cool just and just i i was trapped i could not switch to another user and i was like

01:01:52 ◼   ► okay this means time to restart like no error message no nothing in the console nothing like

01:01:58 ◼   ► it just you would pick something from fast you're switching and it would just blink like and then

01:02:02 ◼   ► there were just nothing would ever happen and that they said okay this is a sign i need to restart and

01:02:08 ◼   ► so i did and everything was fine after that but other than that and of course the bazillion

01:02:12 ◼   ► permission dialogues and everything that marco was putting in his story that we just know are

01:02:16 ◼   ► inherent in catalina i haven't actually had any catalina problems you better knock on some wood

01:02:22 ◼   ► and and mojave by the way which my wife is still running every once in a while like it decides to

01:02:27 ◼   ► activate the screensaver in such a way that it won't deactivate it i have to ssh in and kill the

01:02:31 ◼   ► screensaver process right so the mojave is not without its set of weird bugs too so i figure i'll

01:02:37 ◼   ► just stick with this with the set of bugs i know in mojave and uh and catalina my mac pro has been

01:02:41 ◼   ► fine um but yeah i i saw the the new xcode beta come out and i'm not down with the especially

01:02:49 ◼   ► i was about to release an app not down with the xcode betas but i i feel you marco with like at

01:02:53 ◼   ► a certain point you do you do have to upgrade uh and i guess your time has come and i and i think

01:02:59 ◼   ► i think you picked a reasonable time like i don't think it'll be a disaster for you

01:03:02 ◼   ► this is about as long as i make it every year this actually i think it's longer than i usually tend

01:03:06 ◼   ► to make it because usually there's some new feature of the os that i eventually just break

01:03:10 ◼   ► down because i want it um and and like like casey like you know your swift ui previewing thing that

01:03:15 ◼   ► you want like that would be that's a pretty good one of those features like it would it would

01:03:21 ◼   ► make sense like you know the reason i did it was because okay now some like pretty important part

01:03:28 ◼   ► of my job has become impossible on mojave that's motivation enough for me to make the jump for you

01:03:33 ◼   ► if you're doing a lot of swift ui stuff that live preview part of swift ui is pretty nice and it

01:03:39 ◼   ► would kind of make sense that okay you should probably like you should probably update if

01:03:44 ◼   ► that's a really important thing to you but you know for everyone the threshold of where that is

01:03:48 ◼   ► gonna be different like you know again like in past years there have been such compelling features

01:03:53 ◼   ► sometimes that you do it for that for everybody the threshold is going to be different of like

01:03:58 ◼   ► when do you update to a new os and if the os has compelling features that threshold could be

01:04:04 ◼   ► you know pretty pretty soon after release i mean you could even be one of those day one cowboys

01:04:08 ◼   ► that you know just i don't recommend that but you know you could do it more level-headed approaches

01:04:15 ◼   ► usually the you know maybe wait wait until the point one comes out you know that's that's usually

01:04:20 ◼   ► a pretty safe bet most years but you know that threshold moves for various people depending on

01:04:26 ◼   ► their priorities and depending on the particular release you know my threshold is like well i'm

01:04:31 ◼   ► gonna i can stay on the old version as long as it doesn't impede anything i really need to do

01:04:36 ◼   ► and that was true until today and it's no longer true and so here i am

01:04:40 ◼   ► i'm sorry but does that mean i'm allowed to dads finally please i mean if you want if you really

01:04:48 ◼   ► are you're still doing swift ui stuff and you want to have the preview i suppose

01:04:52 ◼   ► you have an actual reason to do it before you didn't have any reason though i mean and you

01:04:57 ◼   ► weren't telling us about your the details of the app you're making so okay uh we should quickly

01:05:03 ◼   ► mention things that would perhaps require catalina since this is related swift playgrounds is out

01:05:08 ◼   ► for the mac and it requires catalina because it's uh it's not combined it's what's the other one

01:05:16 ◼   ► uh catalyst there we go it took me a minute um so yeah so that's really exciting i haven't tried it

01:05:21 ◼   ► yet because i'm not on catalina but this is super cool and uh generally speaking from what i've

01:05:27 ◼   ► read it sounds like it's a pretty decent mac app which is exciting as well it's not flawless but

01:05:32 ◼   ► it's pretty decent all in all so hey that's a win as far as i'm concerned i've seen some people

01:05:37 ◼   ► complaining that like that it is swift playgrounds on the mac like literally you know swift

01:05:41 ◼   ► playgrounds the thing they demoed on the ipad hey look at this you can learn how to program this is

01:05:44 ◼   ► cool little robot you can make it hop around like all the stuff that you saw them demo on the ipad

01:05:48 ◼   ► at wwcl years ago it's that on the mac but i think when people saw it they were thinking oh it'll be

01:05:55 ◼   ► like swift playgrounds but all the apis will be mac apis and that's not the case this is a catalyst

01:06:01 ◼   ► app and inside the app like someone i saw them put a screenshot of trying to like instantiate an ns

01:06:06 ◼   ► color and it was like no i think you mean ui color like oh like yeah it's playgrounds like you saw on

01:06:12 ◼   ► the ipad on your mac literally through catalyst which is great and it's cool and it's you know

01:06:17 ◼   ► i downloaded it and uh you know it's it's exactly what you would think it would be uh it's convenient

01:06:23 ◼   ► if you don't have an ipad and you have a kid who wants to do this type of thing no but you do have

01:06:27 ◼   ► a mac now if they can have a way to do it um i was confused at first when i saw like the headlines

01:06:32 ◼   ► flying around it was like wait playgrounds have been on the mac forever i use them all the time

01:06:36 ◼   ► when i'm developing an xcode and i want to try out a quick little thing i bring up a playground

01:06:40 ◼   ► i type some stuff in it and it works fine but then i remembered no it's the thing with the robot

01:06:45 ◼   ► yeah which i don't what is the name of the thing in xcode that's that's called playgrounds but not

01:06:52 ◼   ► swift playgrounds what is that thing called uh it's just playgrounds i believe it's a new

01:06:56 ◼   ► playground that's i mean yeah you just you just do you know from the file menu file new what and you

01:07:00 ◼   ► one of the things you can make is a new project new file you can also make a new playground and

01:07:04 ◼   ► it makes a little thing where you can type in code and it runs in real time and shows you the results

01:07:08 ◼   ► in the right hand side everything they demoed in a different wwc session all those years ago

01:07:12 ◼   ► but it doesn't have a distinct name and it's not its own application it's just a playground file

01:07:17 ◼   ► for xcode anyway this is swift playgrounds for the mac some people have been poking around and

01:07:23 ◼   ► finding all the non-mac aspects of it but it's just like any other catalyst file like the keyboard

01:07:27 ◼   ► shortcuts don't work the way you expect like the the responder chain is weird the window layering

01:07:32 ◼   ► is weird i think i'm saying if you bring up a window and hit command w it closes the window

01:07:36 ◼   ► behind the active window which is you know not right many things about ios applications that

01:07:44 ◼   ► are running on the mac through catalyst that is not quite right but it's better to have this is

01:07:49 ◼   ► an example of catalyst you know quote-unquote shovelware but like you wouldn't have this

01:07:52 ◼   ► app at all on the mac so maybe the one you got is not super duper mac like but it's better than

01:07:58 ◼   ► not having it on the mac and the app itself once you're inside it functions just like you would

01:08:02 ◼   ► see it on the ipad only you get to use the mouse on a keyboard so even though catalyst continues to

01:08:07 ◼   ► not be a shiny example of good mac applications it is still vastly preferable to have a so-so

01:08:15 ◼   ► catalyst port of an app than to not have it at all especially for an app like this where it's

01:08:20 ◼   ► like this is not a professional app where you're trying to say this is the new way all mac apps are

01:08:25 ◼   ► going to work this is just allowing people who have a mac to use a cool application that was

01:08:29 ◼   ► previously only on the ipad i don't have any problem with that in fact i i'm with you i think

01:08:34 ◼   ► it's overall theoretically it's a good thing now in practice catalyst has had a really slow start

01:08:41 ◼   ► and that's due to lots of reasons that the more apple uses it the more that they will see and feel

01:08:49 ◼   ► these reasons and the sooner they are likely to get fixed so that's actually a good thing like

01:08:53 ◼   ► if apple's gonna keep bringing over apps like this that are that like you know are not critical apps

01:08:58 ◼   ► to mac os but have some utility if they are present bring as many over as they want to and

01:09:03 ◼   ► and have them use catalyst and they can see you know how incomplete it is they could they can feel

01:09:09 ◼   ► like oh this this actually is kind of crappy like and and there have been some recent changes like

01:09:14 ◼   ► i don't know if we're gonna get to this today but like they they have introduced a new date picker

01:09:17 ◼   ► style that doesn't use the stupid ios wheels finally like in whatever the new catalina beta is

01:09:23 ◼   ► and they recently announced and we didn't cover this yet either they recently announced something

01:09:27 ◼   ► last week that you can you'll now be able to build catalyst apps that use the same bundle id

01:09:34 ◼   ► which is pretty important for lots of reasons especially like sharing a purchase

01:09:37 ◼   ► as your ios app when catalyst was unveiled last summer you had it forced you to have this big like

01:09:43 ◼   ► matt catalyst prefix on the bundle id so you couldn't your app that you ran on the mat could

01:09:48 ◼   ► not have the same id for store and technical purposes as the app that you that you had an ios

01:09:55 ◼   ► so you couldn't do things like one purchase gets you all apps and i think the reason for that was

01:09:58 ◼   ► simply because they hadn't set that all up yet like on the store back end and everything else

01:10:02 ◼   ► so they were forcing this thing and so like catalyst as it was released was pretty incomplete

01:10:07 ◼   ► they are very slowly chipping away at catalysts various shortcomings and problems and so the more

01:10:13 ◼   ► apple ships their own apps like swift ui for it the more they're going to feel these issues and

01:10:18 ◼   ► and hopefully prioritize them so i don't personally have really any feelings on this particular app

01:10:25 ◼   ► but hey it's a fun thing for people to use and if you're learning whatever else it's it's easier

01:10:30 ◼   ► than xcode so you know good for them yeah it's a very polished like the application itself is like

01:10:37 ◼   ► you know a very polished example of like a learning to program type thing because i

01:10:40 ◼   ► remember a lot of those learning to program things from my youth obviously this is ancient and things

01:10:44 ◼   ► you know but like just in terms of the production values adjusting for the times and the technology

01:10:48 ◼   ► stack it's a very fancy well done sort of high production value in hollywood parlance as we're

01:10:57 ◼   ► talking about hollywood this episode uh high production value example of learning to program

01:11:01 ◼   ► like it's you know like two the production values are too high it's like this is not what

01:11:07 ◼   ► is it really important this important to learning the program to have this adorable uh you know of

01:11:13 ◼   ► an interface and these kinds of graphics no it's not it's just typical apple like over polish over

01:11:19 ◼   ► kill and it's it's great it's all the more disappointing when i couldn't get any of my

01:11:22 ◼   ► kids interested in it because they were just at the time i tried to show it to them they were like

01:11:26 ◼   ► not interested don't care about the robot don't care about typing things why would i ever do this

01:11:30 ◼   ► why wouldn't i just use an analog stick to move the little robot around like video games you know

01:11:37 ◼   ► anyway but but anyway i think if kids are into programming and they get their hands on something

01:11:43 ◼   ► like this at the right age it can be amazing and i wish i had something like this because i

01:11:47 ◼   ► the things i had at my disposal had much lower production values and are much less friendly

01:11:51 ◼   ► yeah i very much admire apple for doing this and i think it is it is a really nice move to help

01:12:00 ◼   ► people teach their kids like you were saying or teach themselves and you know the playgrounds

01:12:07 ◼   ► playgrounds as a scratch pad for trying you know to write code that does exist in xcode and it's

01:12:15 ◼   ► for somebody like the three of us is a better answer but for somebody who is um for somebody

01:12:22 ◼   ► who is just trying to learn how to write code it's so good and you know i would never turn to this i

01:12:29 ◼   ► would just go to an xcode playground but but if i was trying to show deklin how to write code i

01:12:33 ◼   ► would definitely use this and i think that that's extremely cool and i think it should be commended

01:12:37 ◼   ► that apples still cares enough to do this sort of thing the the sad thing about me trying to

01:12:43 ◼   ► teach my kids to program is that eventually my son did get into programming more or less on his own

01:12:48 ◼   ► because you know another example of kids not wanting to hear from their parents but if they

01:12:51 ◼   ► just go to other homes they're into it right and now he's taking courses in high school programming

01:12:56 ◼   ► courses in high school and he's he's doing it in netbeans like we have to install netbeans on on

01:13:02 ◼   ► on the max because it's java oh god and he installed his netbeans ide which is this ancient thing and

01:13:07 ◼   ► then java doesn't come on the mac anymore so he turned his nose up at swift playgrounds which are

01:13:12 ◼   ► like you know glass of ice water and hell compared to netbeans are they i i still think swift is a

01:13:19 ◼   ► terrible beginner's language but that's you know that's just me i guess it's better than java i can

01:13:24 ◼   ► tell you that and anyway he's doing java now he's not doing swift he's doing doing java in netbeans

01:13:29 ◼   ► because that's what's on the the the computer science ap test is still in java because you know

01:13:34 ◼   ► lags behind the rest of the world i suppose so he's gotta you know learn and use java what should

01:13:39 ◼   ► it be instead i don't know i mean i would feel better about c for that you know or like a pseudo

01:13:44 ◼   ► language like is it computer science is not about you know computer science is as much as they say

01:13:48 ◼   ► it's as much about computers as astronomy is about telescopes right right so like it or if you're

01:13:54 ◼   ► learning actual computer science the details of any particular language should be immaterial and i

01:13:59 ◼   ► understand you have to have something to do the test with but you know it could just be like an

01:14:05 ◼   ► algorithms test i don't know i know i'd computers ap computer science as far as i'm aware did not

01:14:09 ◼   ► exist when i was in school so i have no idea what he's in for but he's doing it and i installed net

01:14:13 ◼   ► beans so there you go yeah i wish it existed when i was in high school agreed can we just state

01:14:19 ◼   ► publicly that you are aware that there are other better java ides that exist and that is not the

01:14:24 ◼   ► point oh i'm not choosing to install netbeans it's like you know it's like anything in school here's

01:14:29 ◼   ► the calculator you have to buy here's the id you have to install for this class exactly he's not

01:14:34 ◼   ► picking this like this is this and it's it's not just netbeans it's like a specific old version of

01:14:38 ◼   ► netbeans that really is angry about both mojave and catalina it's it's not it's not as bad as

01:14:44 ◼   ► the me trying to install minecraft mods but it's close i'm gonna go out on a limb here and say that

01:14:49 ◼   ► java is no worse a learning language than swift i i think swift is way better than java way better

01:14:59 ◼   ► yeah i agree million miles better as language i want to use today i agree but a learning language

01:15:05 ◼   ► has different needs and and i think as a learning language as well i i think they're both mediocre

01:15:10 ◼   ► learning languages honestly i i think you i would want to go something simpler and more forgiving

01:15:15 ◼   ► like either javascript or some maybe like python you know something like that javascript is too

01:15:20 ◼   ► weird it's a reasonable second choice but honestly i think swift is a great language to learn

01:15:26 ◼   ► programming in uh of all the real languages out there that we can pick because i think both python

01:15:31 ◼   ► which is my other pick and javascript are a little bit too weird in the basics and i wouldn't if i

01:15:37 ◼   ► was teaching a course i wouldn't want to have to explain the weird basics whereas i think i could

01:15:40 ◼   ► go a long time without explaining any weirdness for just doing the basics in swift yeah until

01:15:45 ◼   ► until you do something wrong yeah yeah anyway uh there's no uh javascript playgrounds app like this

01:15:50 ◼   ► so there you go we are sponsored this week by blue vine running a business is filled with unexpected

01:15:57 ◼   ► events that require sudden cash flow blue vine can help you secure cash fast applying online is easy

01:16:03 ◼   ► and takes just a few minutes blue vine is an easy fast way to help support your business growth with

01:16:08 ◼   ► a line of credit of up to 250 000 whether you need money to offset some upfront costs secure a new

01:16:14 ◼   ► inventory or maybe pay an unexpected expense through blue vine you can help yourself and your

01:16:19 ◼   ► business stay secure for any reason there's no fee to set up your line of credit and blue vine never

01:16:24 ◼   ► charges maintenance or prepayment fees applying is easy just go to getbluevine.com slash atp fill out

01:16:31 ◼   ► a few simple details and you're done within minutes seeing an offer will not affect your

01:16:36 ◼   ► credit score and once approved funds can be received in as quickly as 24 hours so you can

01:16:41 ◼   ► have peace of mind knowing that funds can be drawn with a click of a button for any business expense

01:16:46 ◼   ► blue vine has helped more than 20 000 customers and has delivered over 2.5 billion dollars in

01:16:51 ◼   ► funds to businesses blue vine also has advisors available by phone to answer any questions you

01:16:56 ◼   ► might have and help meet your business needs with an a plus rating from the better business bureau

01:17:01 ◼   ► and nearly five star review on trustpilot see why thousands of satisfied business owners have chosen

01:17:06 ◼   ► blue vine as their go-to source for financing blue vine is offering our listeners a special limited

01:17:10 ◼   ► time promotion of a 100 gift card when you take out a loan or open a line of credit with blue vine

01:17:16 ◼   ► so go to getbluevine.com slash atp for more details all you have to do once again getbluevine.com

01:17:23 ◼   ► slash atp and apply that's quick easy and meaningful help to your business in as little as

01:17:29 ◼   ► 24 hours this promotional offer is subject to terms and conditions that can be found at getbluevine.com

01:17:34 ◼   ► slash atp thank you so much to blue vine for sponsoring our show

01:17:41 ◼   ► uh shall we do some ask atp let's do it so we start with anthony scartapani i should have tried

01:17:47 ◼   ► that before reading it just now i hope i got that right uh anthony writes today at work we started

01:17:52 ◼   ► debating the differences between mac and windows on the basis of security people were discussing

01:17:56 ◼   ► having antivirus software like avg or kaparski or etc on their windows machines but there weren't any

01:18:01 ◼   ► mac owners that did the same some of the windows users mentioned that they only use windows

01:18:04 ◼   ► defenders their defense to malware it made me realize the mac os doesn't really have any in

01:18:08 ◼   ► your face software that is quote unquote protecting you at all times anthony writes i understand mac

01:18:13 ◼   ► os has built in security like xprotect and gatekeeper is this software essentially doing

01:18:17 ◼   ► the same thing as other antivirus software also do you think that mac os is really better at

01:18:20 ◼   ► defending malware viruses beyond the fact that there are less machines running mac os versus

01:18:24 ◼   ► windows if so how uh there's a lot here but no there's no real antivirus that comes with mac os

01:18:31 ◼   ► that i'm aware of or am i crazy i mean you know as this person mentioned just xprotect really

01:18:36 ◼   ► but xprotect is really doing i think as i think it is basically serving as antivirus like it is

01:18:44 ◼   ► it is a system thing that runs in the background all the time that uh that silently downloads

01:18:48 ◼   ► updates from apple whenever there is one and that can be used to target and block the execution of

01:18:55 ◼   ► binaries with certain signatures and that's what antivirus programs do as far as i know uh john

01:19:00 ◼   ► what am i missing here well they but they do more than that so like xprotect and gatekeeper and the

01:19:05 ◼   ► general design of mac os is made to like there are multiple ways one is to protect it against

01:19:11 ◼   ► known threats like that's what x predict is doing like if there's a thing that's bad and we know

01:19:14 ◼   ► it's out there we can describe it and quickly tell all the max about it so they will not run that

01:19:18 ◼   ► thing gatekeeper is like don't just run stuff willy nilly make sure you prompt for permission

01:19:23 ◼   ► and you know the quarantine attribute and downloading stuff or whatever so that's all kind

01:19:26 ◼   ► of like sort of passive preventative stuff and then there is the other passive stuff which is

01:19:31 ◼   ► like in the design of the the os like address space randomization and protecting against loading uh

01:19:37 ◼   ► dynamic dynamically loading libraries from weird locations and sandboxing right so that's sort of

01:19:42 ◼   ► baked into the thing but antivirus software of the type being described you know in this uh

01:19:48 ◼   ► question and of the type that people think of when they think of windows does something above and

01:19:54 ◼   ► beyond that right because windows at various times has had equivalents of all the things i just

01:19:59 ◼   ► described less so maybe in the windows xp days but much more so now because microsoft has gotten

01:20:04 ◼   ► very serious about security after getting totally reamed on security back in the what was it late

01:20:09 ◼   ► 90s early 2000s i don't know i don't know what how you guys work talk about long-term reputation

01:20:14 ◼   ► damage like microsoft had horrible security on windows basically for what 20 years at least or

01:20:22 ◼   ► longer like like it was it was until when did they introduce windows defender which was like

01:20:27 ◼   ► their built-in antivirus stuff that was not that long ago right but but like their security problems

01:20:32 ◼   ► were there but didn't come and bite them until it all landed at once right so yeah maybe they had

01:20:37 ◼   ► like lack security for a long time like everybody else in the industry but they because they were so

01:20:42 ◼   ► prominent and dominant they bore the brunt of this big security catastrophe and then they got

01:20:48 ◼   ► serious about security after that so they they acted as quickly as possible it's just that

01:20:54 ◼   ► people kept running windows xp right for a long time um but yeah for the antivirus stuff like what

01:21:01 ◼   ► the difference is is they're thinking of programs that run on your computer and periodically and or

01:21:08 ◼   ► continuously wander over every single file on your computer and say let me look at this file

01:21:13 ◼   ► is there anything bad in here nope okay let me go to this file is there anything bad in here nope

01:21:16 ◼   ► okay and then beyond that say every time you do any file i own anything or try to launch anything

01:21:22 ◼   ► or whatever this third-party program jumps in and says you're trying to write to this file who are

01:21:26 ◼   ► you are you allowed to write this file you're trying to launch this program is it okay to launch

01:21:29 ◼   ► this program let me look at this program right which is more invasive than xprotect like that

01:21:35 ◼   ► that's the general complaint of you know the mac users at a you know big corporation have to run

01:21:41 ◼   ► antivirus software is that oh it's destroying my computer it's killing my battery life because it

01:21:44 ◼   ► is literally looking at every single file on your computer right or when you're trying to do lots of

01:21:49 ◼   ► file i/o this third-party program is intervening and saying that that before you do that file i/o

01:21:54 ◼   ► let me look at what you're doing and let me see who you are and what you're writing and what this

01:21:57 ◼   ► file is and make sure it's okay and that slows everything down right all the things we described

01:22:02 ◼   ► xprotect gatekeeper address space randomization sandboxing they don't do that they do not like

01:22:08 ◼   ► there's not suddenly a process using 100 CPU grinding over your entire disk right well except

01:22:13 ◼   ► dropbox yeah separate separate issue entirely you know for the purposes of antivirus there's not

01:22:19 ◼   ► something that is causing your file i/o to be slower again except for dropbox because it is

01:22:23 ◼   ► intercepting or doing something on every single bit of file i/o like dropbox drinks from the fs

01:22:28 ◼   ► events fire hose and it can actually slow down i/o significantly so if you're if you're worried

01:22:33 ◼   ► about that quit dropbox and then do whatever anyway those programs absolutely do exist for

01:22:39 ◼   ► the mac i personally hate all of them even the quote-unquote good ones because they screw with

01:22:43 ◼   ► my mac because i feel like they're doing something that i don't need to be done like i've never

01:22:48 ◼   ► voluntarily run that kind of antivirus software on my mac and i have also never had a problem with

01:22:53 ◼   ► viruses and i don't think i'm just lucky right so is that because max have better security

01:22:58 ◼   ► i doubt it i think it's mostly big you know right now windows has pretty good security and i think

01:23:06 ◼   ► so does the mac because the mac os 10 sort of grew up in an era when windows was getting slammed with

01:23:11 ◼   ► security threats so apple took that took that lesson to heart even though it wasn't happening

01:23:15 ◼   ► to them right so i think the security of it's probably fine but bottom line is that it is a

01:23:20 ◼   ► less popular operating system that is less profitable to exploit because there are fewer

01:23:25 ◼   ► max and many more windows machines um so i don't recommend that mac users run any kind of antivirus

01:23:31 ◼   ► software because i think the antivirus software itself is more of a problem than viruses will be

01:23:35 ◼   ► but that doesn't mean you're not vulnerable it just means i think that's i think that's the

01:23:38 ◼   ► correct balance for most people because these antivirus programs they really they make the

01:23:44 ◼   ► experience of using a mac worse they're complicated they're buggy i used to get kernel panics from one

01:23:49 ◼   ► of them that i had to run at work they slow your computer down they kill your battery and in

01:23:53 ◼   ► practice thus far being a mac user since 1984 i have never needed one well i hope you knock on

01:23:59 ◼   ► some wood chris wright writes marco you said you have you that you apply voice boost here on

01:24:04 ◼   ► recordings and posts which will typically be processed once again within overcast at playback

01:24:09 ◼   ► time have you done anything to mitigate recursive processing resulting in exaggerated or undesirable

01:24:13 ◼   ► audio artifacts yeah so i and actually and i believe chris wrote this before i released

01:24:19 ◼   ► voice boost 2 and i went through this very slightly in the blog post i think mostly in a

01:24:22 ◼   ► footnote but basically voice boost 2 is a whole effect set it can apply lots of different effects

01:24:30 ◼   ► in lots of different configurations what ships an overcast is basically a preset that's like here's

01:24:36 ◼   ► one configuration of this engine it is applying the loudness the compressor and the eq what i

01:24:43 ◼   ► have been processing my files through all these months that i've been testing this is a command

01:24:48 ◼   ► line utility that i've been you know that basically is like a test harness for the voice boost 2

01:24:53 ◼   ► engine and i can specify as arguments to that command line utility which are the filters to

01:24:58 ◼   ► engage and with which settings so i'm not actually engaging all of voice boost 2 i'm engaging parts

01:25:04 ◼   ► of it specifically what i'm processing our files through is i'm processing each individual track

01:25:09 ◼   ► each of our three voice tracks through the loudness normalizer to a certain loudness

01:25:15 ◼   ► and applying a custom eq to each of our tracks based on each of our voices and microphones to

01:25:21 ◼   ► make us sound good and i do all that just with an automated shell script that runs this command

01:25:26 ◼   ► line utility and you know every time i process the files and so out you know out of that i get

01:25:31 ◼   ► three tracks that have been all normalized to the same volume and have had our personal eqs applied

01:25:36 ◼   ► what the overcast app is doing is applying a it's applying the loudness matching thing

01:25:42 ◼   ► and then also a little bit of compression a little bit of eq and the eq it's applying is a very gentle

01:25:48 ◼   ► eq that is kind of like a an all-purpose you know broad appeal eq that's going to do a small tweak

01:25:55 ◼   ► to make most voices sound a little bit better but is not especially severe and not especially

01:26:00 ◼   ► targeted to any particular voice so if if that's basically if it's double applied like you know by

01:26:06 ◼   ► me having done loudness matching first and then applying a q in my pre-process and then having

01:26:12 ◼   ► the overcast app play back those files and possibly apply voice boost if the user has

01:26:16 ◼   ► it enabled the loudness matching part of it is actually not going to be changed much at all

01:26:21 ◼   ► because voice boost 2 reads loudness first and then decides how much to adjust it and so if it's

01:26:26 ◼   ► already at the target loudness voice boost 2 doesn't really do any adjustment there so there

01:26:32 ◼   ► there's not much of an effect in double applying loudness normalization the only thing that's

01:26:37 ◼   ► really being double applied here is the eq but because the eq settings in voice boost it for for

01:26:44 ◼   ► the you know in the overcast default configuration because those are such subtle eq tweaks the fact

01:26:51 ◼   ► that they're being applied to you know a podcast like mine that i believe is already well eq'd

01:26:57 ◼   ► they're by design configured to be pretty subtle and to not be a massively noticeable change on

01:27:04 ◼   ► already well produced podcasts because the reality is most people listening to you know listening to

01:27:09 ◼   ► podcasts most of the time are listening to professionally made shows that probably don't

01:27:14 ◼   ► need a lot of eq and probably don't need a lot of volume leveling so part of the design of voice

01:27:19 ◼   ► boost 2 was to be like a gentler touch and especially to be dynamic with the volume leveling

01:27:25 ◼   ► and to not apply more correction than is necessary from the input so double applying it doesn't really

01:27:31 ◼   ► do that much with the sole exception of the eq which is pretty subtle simo isto writes how do

01:27:38 ◼   ► you guys use show notes as a listener before or after listening to the episode scared of a spoiler

01:27:42 ◼   ► what makes for good show notes personally i almost never read them but you seem to actually put quite

01:27:46 ◼   ► a lot of effort into it so maybe i'm missing something here well thank you for noticing

01:27:50 ◼   ► because the show notes are done by me with marco tweaking and john occasionally adding some missing

01:27:56 ◼   ► stuff from time to time so thank you how do i use them as a listener uh generally speaking i i will

01:28:02 ◼   ► at least glance at some point but i usually only take a deep dive if i'm looking for a particular

01:28:09 ◼   ► link of something that's mentioned on the show i also feel like uh thanks to forecast and some

01:28:14 ◼   ► of the work that marco has done i miss out on a little bit because i don't often pay attention to

01:28:20 ◼   ► show art which can change during an episode and i think it's mostly like us and some of the relay

01:28:26 ◼   ► folks that do that i don't know marco if you know some other good examples but yeah well marco is

01:28:30 ◼   ► very good about putting in relevant chapter art for each of our chapters and sometimes there's

01:28:35 ◼   ► some really good gags there that that i don't see because i am not typically looking at a screen

01:28:41 ◼   ► when i'm in the midst of listening to a podcast if anything i'm or if i'm looking at a screen i'm

01:28:46 ◼   ► looking like code or something so uh i i don't typically pore over them but i almost always

01:28:52 ◼   ► glance at them marco you're just talking a lot so let's go to john john how do you use show notes as

01:28:56 ◼   ► a listener i'm mostly i mean so in the podcast i listen to people will refer to them we do it all

01:29:02 ◼   ► the time the link will be in the show notes right if i'm interested in that thing i will then go to

01:29:07 ◼   ► the show notes and seek out that link uh in terms of spoilers that's a possibility like especially

01:29:12 ◼   ► if they chapterize it and i can see the chapter titles but i'm not listening to narrative podcasts

01:29:16 ◼   ► that have spoilers of that kind of the thing it's not really a spoiler to know that later they're

01:29:20 ◼   ► going to talk about cars like whatever you know i can live with that so i will seek out the links

01:29:24 ◼   ► for that purpose the second time i do it is when something is being discussed on a show

01:29:30 ◼   ► and it's visual and even if they don't mention it if i know if i listen to the show oh when they

01:29:35 ◼   ► talk about this someone got a new car and they're talking about uh you know the new car and the new

01:29:40 ◼   ► something in the new car if i know this is the kind of show where that there's going to be

01:29:45 ◼   ► pictures in the show notes of that car i will then pick up my phone and go to the show notes and see

01:29:49 ◼   ► so i can look at the picture that they're talking about right now they're talking about the car i

01:29:53 ◼   ► want to see this car i want to see the the color of the seats or whatever right and when i know

01:29:57 ◼   ► that's going to be there like shows basically train you like you look for it one time and

01:30:01 ◼   ► it's not there and there's no show notes like oh i guess this isn't a show where they do that right

01:30:04 ◼   ► and by the way i think more shows should do this it seems to me the higher the production values

01:30:09 ◼   ► of the show like multi-million dollar shows with celebrities that have millions and millions of

01:30:14 ◼   ► listeners no show notes nothing no they'll be talking for an hour about oh i you know my dog

01:30:22 ◼   ► made this mess in the kitchen and they're all looking at a picture of it and they're sharing

01:30:24 ◼   ► a picture and like oh look at this picture oh we're talking about they talk about the picture

01:30:27 ◼   ► for a half an hour of the mess their dog made in the kitchen no way to see that picture no show

01:30:32 ◼   ► notes no link no nothing it boggles my mind but anyway that's what makes good show notes is when

01:30:37 ◼   ► you want to know more or want to learn more or want to share in the experience in a way that you

01:30:41 ◼   ► can't when it's just audio go to the show notes and there should be something there for you and

01:30:46 ◼   ► that's what makes them good like i don't see people like looking at the show notes ahead of

01:30:50 ◼   ► time or even you know like they're there for you when you want to learn more and i think that

01:30:54 ◼   ► the two reasonable ways to do it are in real time while you're listening go to them so you can share

01:30:58 ◼   ► an experience and then at the end oh what was that app they talked about uh you know that did

01:31:03 ◼   ► the thing i don't remember and they go to the show notes and find it and you know occasionally we

01:31:07 ◼   ► don't put it there and if we don't someone sends us a tweet and says hey i was looking for the

01:31:10 ◼   ► app you talked about and we'll add it to the show notes later that's another thing by the way that

01:31:13 ◼   ► i'm assuming no multi-bazillion dollar podcast ever does but that we do all the time if we forget

01:31:18 ◼   ► a link in the show notes oh we talked about this app but we didn't put a link in there and yeah

01:31:22 ◼   ► three people ask us how if one person asks what was that app we'll add it to the show notes and

01:31:28 ◼   ► good podcast players will notice that we change the show notes and load new versions of them

01:31:32 ◼   ► and back podcast players will never reload the show notes and people will say i still don't see

01:31:36 ◼   ► it in the show notes and we'll have to send them to atp.fm because the shots on the web will

01:31:39 ◼   ► actually update because web browsers know how caching works so yeah like i think i think good

01:31:46 ◼   ► show notes add to the program i'm angry when they're not there and i think any way you want

01:31:50 ◼   ► to use them is fine like they're there for you to use them same thing with chapters but the way i

01:31:53 ◼   ► use them is in real time to enjoy the show more and then afterwards when i remember something they

01:31:58 ◼   ► talked about and i want to actually see what it is and follow the link marco most people never look

01:32:04 ◼   ► at show notes most podcasts don't have show notes or don't have meaningful show notes you know for

01:32:11 ◼   ► those that do i i think the role of show notes is mostly what john said is like to provide links and

01:32:18 ◼   ► context now some producers go way into it and put like entire like topic outlines and summaries and

01:32:26 ◼   ► timestamps that link directly to certain topics and everything kind of like a like a

01:32:30 ◼   ► lightweight chapter marker kind of thing that's done occasionally but it's not common the the by

01:32:34 ◼   ► far the more common use of them is either not having them at all or making them like a handful

01:32:39 ◼   ► a very small handful usually of links that were mentioned and i think that's totally fine as a

01:32:44 ◼   ► listener that's how i use them i use them as you know they're talking about something and i want

01:32:49 ◼   ► to i want to see it i'll check the show notes to see if there's a link to it and about half the

01:32:55 ◼   ► time there is but half the time there isn't because people are so bad at it um and yeah and you're

01:33:00 ◼   ► right like generally the more popular the podcast the less likely it is to have even basic show notes

01:33:07 ◼   ► like usually and you know the these podcasts that have staffs of 30 people working on them they

01:33:14 ◼   ► won't have show notes they won't do anything like they'll have the weakest stuff you wouldn't believe

01:33:19 ◼   ► how many proposals for new standards i get i hear and and get pitched on from major podcast

01:33:28 ◼   ► companies that can be solved already by either show notes or chapter markers with links which

01:33:35 ◼   ► it literally like almost every month some big podcaster tries to start a new standard and it's

01:33:42 ◼   ► like you know you can you can do this already today in every single podcast app by using chapter

01:33:49 ◼   ► markers to show a link and or an image at a certain time imagine that and you would not believe how

01:33:58 ◼   ► many standards people have tried to make to do this and then do any of them actually ever try

01:34:03 ◼   ► that no do like zero major podcasts from like you know the big like you know public radio style

01:34:10 ◼   ► producers zero of them ever use chapter markers i don't know why but they just don't like it they

01:34:15 ◼   ► they pretend like that doesn't exist and they do the exact same thing with show notes pretty much

01:34:20 ◼   ► zero of them have meaningful show notes and you know i guess their loss but the the general

01:34:28 ◼   ► inconsistency of use of show notes means that as as podcast listeners we can't ever really rely

01:34:34 ◼   ► on them for much so there it's just kind of like a you know a nice little reference to look at

01:34:38 ◼   ► and sometimes be helped by do you think that the reason that the big producers aren't interested

01:34:45 ◼   ► is because of dynamic ad insertion i mean i would assume that there's no reason why they couldn't

01:34:50 ◼   ► just reprocess the chapter markers based on new times based on the ads that are inserted but is

01:34:55 ◼   ► that something to do with it do you reckon i mean i think marco nailed it nailed it before the reason

01:35:01 ◼   ► people don't do it is because no one looks at the show notes like it's a cost benefit like they make

01:35:04 ◼   ► that calculation in their head they say okay 0.01 percent of our listeners ever look at show notes

01:35:09 ◼   ► should we invest even a single person's two hours of a single person's time in making them answer no

01:35:14 ◼   ► that's my theory yeah but if they're coming to marco and saying here's the spec that we think

01:35:19 ◼   ► you should implement then obviously they want it they're just doing that because they want better

01:35:22 ◼   ► tracking that's all about ad like they want to know like where you're located when you're

01:35:27 ◼   ► listening and cookie you and do all sorts of stuff like that that's what i assume those proposals are

01:35:31 ◼   ► about or not marco what do you think they're actually asking for when they make those proposals

01:35:35 ◼   ► i mean certainly they ask about that as well but like but a lot of times like i like oh man i

01:35:40 ◼   ► i was approached by uh by some kind of large you know podcast thing uh a couple years back about

01:35:48 ◼   ► possibly wanting to invest in overcast and what they mainly wanted to do was be able to pop up

01:35:55 ◼   ► at certain time ranges like a listener survey or a link to something they're talking about

01:36:01 ◼   ► and i was like you know you can do that already like literally you like they they they wanted

01:36:07 ◼   ► to spend large amounts of money to just do that and i i told them i'm like you shouldn't be

01:36:15 ◼   ► buying anything for this because you can literally do this today you can get like 90 of what you want

01:36:20 ◼   ► chapter markers can already today in every podcast app display images or links within certain time

01:36:30 ◼   ► ranges that is literally what they do and it's supported by every major player including apple

01:36:36 ◼   ► podcasts which if you go around trying to get individual podcast apps to add some kind of

01:36:40 ◼   ► functionality you'll never get that many of them especially on apple to add any kind of new standard

01:36:45 ◼   ► but like literally the standard already exists and has existed for like 15 years that like it's

01:36:50 ◼   ► already supported everywhere just use it do you think they use it today no they don't use it at

01:36:56 ◼   ► all like it's like and this was at this meeting was like two years ago no one knows about these

01:37:01 ◼   ► no one uses them and i think part of it is like a cultural thing and i think a big part of it is

01:37:06 ◼   ► also like a tooling and workflow thing like many of these large podcast producers are using like

01:37:10 ◼   ► their own custom-built cms's from forever ago and their cms probably doesn't even support show notes

01:37:16 ◼   ► their workflow doesn't support any of this they don't have anybody even on staff who would think

01:37:19 ◼   ► it would be their job to write show notes or to put in chapter markers and casey as for dynamic

01:37:24 ◼   ► ad insertion i mean so far my experience has been the people who write dynamic ad insertion software

01:37:30 ◼   ► are you know possibly not good programmers but it is totally totally fine for you know for you to

01:37:38 ◼   ► just adjust the chapter markers by timestamp as you're writing the file out like the chapter

01:37:43 ◼   ► markers it's just it's just a you know a binary blob of data at the beginning of the file like

01:37:47 ◼   ► all the other id3 info and the same little blob that says this file is 19 minutes long it's very

01:37:53 ◼   ► easy to say all right i'm inserting an ad at 10 minutes into the file that's one minute long so

01:37:58 ◼   ► this chapter marker that's at 11 minutes i got to move it forward one minute like that it's very

01:38:03 ◼   ► that's simple logic to do forecast like forecast has a feature where you can export what they call

01:38:09 ◼   ► air checks which is like basically copies of your sponsor reads so if you have chapters prefixed

01:38:14 ◼   ► like we do with sponsor colon or whatever you set the prefix to in the settings you can automatically

01:38:19 ◼   ► and quickly export little segments of the file that have been trimmed out that include that

01:38:24 ◼   ► chapter and i do the math for that so that that so that that little segment that you trim out that

01:38:29 ◼   ► has a certain amount of like i think it's like 15 seconds on either side of it or whatever it is

01:38:33 ◼   ► it includes the chapter markers that apply to that segment reset to zero or you know whatever

01:38:40 ◼   ► the time is that that you have there that took me like 10 minutes to write like it's not this is not

01:38:45 ◼   ► a big deal like this is not hard stuff it's very very easy stuff and if you're writing code that

01:38:50 ◼   ► chops and dices mp3 files already like da i stuff does it is trivial to also do this i just think

01:38:58 ◼   ► fundamentally nobody who makes podcasts that are big enough to use da i has ever asked anybody

01:39:05 ◼   ► about this because they don't even know it exists i think that's the real problem and there is a

01:39:10 ◼   ► difference in the audience too like when if you're doing a tech podcast with a bunch of nerdy people

01:39:14 ◼   ► a lot of which you think are probably using the podcast player written by one of the hosts of the

01:39:19 ◼   ► show like this is the ideal audience for people who would look for understand how to use and

01:39:24 ◼   ► appreciate chapters uh you know good show notes all the other stuff whereas if you are a mass

01:39:31 ◼   ► market true crime podcast maybe you don't even have that many links you're certainly

01:39:36 ◼   ► not going to be you know linking to a bunch of apps that you discussed and stuff like that like

01:39:41 ◼   ► obviously everything exists on the web and maybe if you're talking about crime scene photos you

01:39:44 ◼   ► might have a link to that crime scene photo or something but in general i think people

01:39:48 ◼   ► it's like i was saying i don't think people go to the show so that can change like if suddenly

01:39:52 ◼   ► a very popular mass market podcast uses show notes well and people appreciate it then they'll

01:39:57 ◼   ► stop expecting it of other shows that's what our listeners say a lot they'll say oh i'm an atp

01:40:02 ◼   ► listener and when we listen to popular podcast x i'm disappointed that they don't have good show

01:40:05 ◼   ► notes because i'm used to that from atp which is great but there's not that many of those people

01:40:11 ◼   ► right so uh as with many of these things lots of stuff starts in the technical world and only like

01:40:17 ◼   ► the weird hardcore enthusiasts are into it and eventually spreads to the mass market but so far

01:40:23 ◼   ► that has not happened with uh you know good show notes and chapters and what do we call the images

01:40:30 ◼   ► chapter art chapter images uh yeah just chapter images yeah yeah and like we use them like i i'm

01:40:37 ◼   ► like hazy i feel like sometimes i miss out on gags because i know marco does a ton of them but i'm not

01:40:42 ◼   ► always looking at my phone and a lot of the relay shows do them when i catch them i appreciate them

01:40:46 ◼   ► but podcasts are inherently an audio medium so you can't like don't spend too much time on clever

01:40:52 ◼   ► uh chapter art because if you thought a lot of people don't see the show notes even fewer are

01:40:56 ◼   ► going to see the chapter art thanks to our sponsors this week linode bluevine and bombus and we will

01:41:03 ◼   ► see you next week now the show is over they didn't even mean to begin because it was accidental

01:41:14 ◼   ► oh it was accidental john didn't do any research marco and casey wouldn't let him

01:41:22 ◼   ► because it was accidental it was accidental and you can find the show notes at atp.fm

01:41:32 ◼   ► and if you're into twitter you can follow them at c a s e y l i s s so that's casey list m a r c

01:41:44 ◼   ► o a r m anti-marco armen s i r a c u s a syracuse it's accidental

01:41:55 ◼   ► they didn't mean to accidental

01:42:00 ◼   ► tech so long so john you wrote an app did you have any adventures in programming

01:42:13 ◼   ► i sure did uh so front and center such a simple application no real ui to speak of just as a

01:42:20 ◼   ► simple thing uh fairly straightforward as my first app so there's complications there and and all the

01:42:25 ◼   ► overhead of making an app this app like i said earlier is a little bit more complicated but not

01:42:31 ◼   ► much it does have some form of ui but i learned some things from dealing with front and center

01:42:37 ◼   ► and i have a bunch of war stories from the development of this very simple application that

01:42:43 ◼   ► you know they're not novel like everyone who writes any app of any sophistication is going

01:42:47 ◼   ► to run into tons more of these things and be even weirder or whatever but for someone who's not a

01:42:51 ◼   ► programmer it may surprise you that such a simple application can have all these complications so

01:42:56 ◼   ► take this as like a microcosm of what programming is actually like um and i'll preface this by

01:43:01 ◼   ► saying both of the applications that i made uh inherently deal with a bunch of apis on macos

01:43:09 ◼   ► that are buggy and have been buggy for years and it's it's painful for me to say that but it's like

01:43:14 ◼   ► you know blaming the compiler or blaming the operating system but the mac operating system

01:43:20 ◼   ► does indeed have bugs and both of my applications sit square in the center of one particular set of

01:43:26 ◼   ► bugs which is and i even put this in the fact when uh you know the mac operating system has apis that

01:43:32 ◼   ► you can call that are supposed to do a thing to an application they're supposed to say bring all

01:43:37 ◼   ► the windows from that application to the front apple horizon's apis they're part of the operating

01:43:42 ◼   ► system there's a couple different ways to do it most of them are deprecated except for one or two

01:43:46 ◼   ► but that's what they're supposed to do either activate this application and just bring it to

01:43:50 ◼   ► the front or activate the application and bring all of its windows to the front that's and i have

01:43:55 ◼   ► to call those apis to make my programs work because i don't have any other way to do that

01:44:00 ◼   ► i just have the apis that macos provides the bug is that sometimes you call those apis

01:44:07 ◼   ► and nothing happens and that's and that's like there's no failure code like literally just it

01:44:13 ◼   ► doesn't work nope it just doesn't happen can you at least like do you have any way to detect like

01:44:18 ◼   ► can you like can you call the api like bring this up to front and then can you check is the app in

01:44:22 ◼   ► front like a half second later or something you can do stuff like that but here's here's the

01:44:26 ◼   ► question what's your recourse then you're going to call it again i guess i can tell you from

01:44:30 ◼   ► from experience that calling it again will not help you like this is the thing are you going to

01:44:35 ◼   ► call it a hundred times like at a certain point you can't you you know if it works the the seven

01:44:40 ◼   ► thousandth time that's going to be surprising to the user who's moved on to other things and

01:44:43 ◼   ► something that app that you asked for right like in my experience calling any of these apis a second

01:44:49 ◼   ► or third or fourth time does not help when it stops working and by the way you can see this

01:44:55 ◼   ► in action by not running any third-party applications whatsoever and occasionally what

01:45:00 ◼   ► will happen is you'll for example click on the dock icon for safari in the in the dock

01:45:06 ◼   ► you know it's already running and you're clicking on it because what you want to happen is what's

01:45:09 ◼   ► supposed to happen when you click on an icon in the dock and it's supposed to bring all the safari

01:45:12 ◼   ► windows forward and you'll click on the safari dock icon and maybe one safari window will come

01:45:17 ◼   ► forward another one is you'll be in an application and you'll do you'll select hide others to hide

01:45:25 ◼   ► all the other applications that's a that's a menu command in a lot of mac applications hide others

01:45:29 ◼   ► hide all the other windows that are on my screen i just want to see the safari windows and you'll

01:45:32 ◼   ► select hide others and a couple applications will hide but a couple won't and you can pick it again

01:45:38 ◼   ► hide others nope you can pick it again hide others nope there's xcode still in the back there why is

01:45:43 ◼   ► it why am i still seeing my giant xcode window i said hide others and i'm in safari it's not

01:45:47 ◼   ► going to work anything having to do with hiding showing hide all show all hide this application

01:45:54 ◼   ► show this other one there are bugs and i have yet to find any kind of workaround for them and

01:46:01 ◼   ► unfortunately these two applications i made lean heavily on the apis for hiding and showing

01:46:07 ◼   ► applications when though i call those apis and they don't work and i don't have a workaround

01:46:12 ◼   ► i get bug reports so that's that's just like background noise for all of this there's nothing

01:46:18 ◼   ► i can really do about that right now this but it's just it's just adding to the general malaise

01:46:22 ◼   ► of these two applications i chose to make now i knew this going in because i do things like that

01:46:27 ◼   ► all the time i do try to hide others i do try to click on an application and bring it all to the

01:46:30 ◼   ► front and sometimes it doesn't work and it's been this way for years like nothing to do with third

01:46:35 ◼   ► party applications just in the mac os i don't remember when it started but it's just a years

01:46:39 ◼   ► long thing so i knew going into this was going to be a struggle i thought there might be workarounds

01:46:43 ◼   ► so far i haven't found any i haven't found any heroics that i can do to make it work when it

01:46:47 ◼   ► when it stops working it doesn't stop for all applications most of the time usually it stops

01:46:50 ◼   ► for one or two of them finder and safari are big culprits but that may also just be because they're

01:46:54 ◼   ► commonly used i don't have a rhyme or reason for this so anyway that's not my adventure all that

01:47:00 ◼   ► is to say that these two applications that i made that look super simple inherently what they do is

01:47:06 ◼   ► already challenging because it's not always going to work i think the one war story i will bring out

01:47:12 ◼   ► today is an interaction between them that is a complexity that i added that i didn't think of

01:47:19 ◼   ► until about midway through development and then just had a very sad face when i did so

01:47:23 ◼   ► um you know getting to another set of i'm not gonna talk about it today you guys but anyway

01:47:29 ◼   ► front and center you know it does like when you click on a window it does stuff you know brings

01:47:34 ◼   ► all the windows forward or if you shift click it just brings one of them does all that stuff or

01:47:37 ◼   ► whatever right how front and center works is it's able to listen through an api for an event which

01:47:46 ◼   ► is new activation a new app has been activated right so anytime a new app has been activated

01:47:51 ◼   ► the operating system lets front and center know and says hey by the way uh i know you've just been

01:47:55 ◼   ► hanging out there front and center but here's what happened a new application has been activated

01:47:59 ◼   ► at that point front and center gets to choose what to do you can say oh if i'm configured in there

01:48:04 ◼   ► it's supposed to bring that application to the front uh i'll do that now i'll call that api that

01:48:09 ◼   ► says bring all the windows that application to the front right that's that's basically what it does

01:48:14 ◼   ► like it waits for activations it doesn't know how that app got activated it can tell which app is

01:48:20 ◼   ► activated but it doesn't know why and so there's a bunch of weird heuristics that front and center

01:48:24 ◼   ► has to do to figure out should i do anything about this or should i just just hang back and not do

01:48:28 ◼   ► anything and it doesn't get active it get notified about every activation just certain ones because

01:48:33 ◼   ► like for example if you use like expose or mission control to activate uh an application it gets a it

01:48:39 ◼   ► looks different to front and center anyway there's front and center doing that thing over there here

01:48:42 ◼   ► i am right in switch glass and i decide when i'm you know making it that it should have the same

01:48:48 ◼   ► kind of options as front and center does where it's like oh you can put it in one mode when you

01:48:53 ◼   ► click and it will bring all the windows to the front and then shift click to just bring one right

01:48:57 ◼   ► and i did that and i said well front center has that opposite mode where you can do a modern mode

01:49:01 ◼   ► and it is the opposite behavior where shift click works if i clicked it and vice versa so i should do

01:49:06 ◼   ► that in switch glass too so that because if you like using it in modern mode if you if you want

01:49:11 ◼   ► your default to be just a single window comes forward wouldn't it be nice to have the default

01:49:15 ◼   ► be a single window come forward in switch glass as well and that would make it different than the doc

01:49:19 ◼   ► because you can't control that in the doc when you click on a doc icon it always brings all the

01:49:22 ◼   ► windows forward in theory if it's not if it's not bugging out at that particular moment right

01:49:26 ◼   ► so i did that so i added the options easy enough to go two different ways in switch glass and then

01:49:33 ◼   ► it occurred to me that if you have front and center and switch glass installed and you have

01:49:38 ◼   ► their preferences set the opposite way so if you have front and center setting classic mode

01:49:43 ◼   ► but switch glass set so that when you click a single icon it's supposed to bring a single

01:49:47 ◼   ► window forward this will happen you'll go to switch glass you'll click on an app icon it will

01:49:52 ◼   ► say ah i'm in the mode where i'm supposed to bring a single window forward so it will go and say you

01:49:56 ◼   ► i'm activating chrome and i'm bringing a single chrome window to the front and then front and

01:50:01 ◼   ► center will get notified hey front and center a new application was just activated you think you

01:50:06 ◼   ► should do something and front and center will say oh there was a mouse click and an app was

01:50:11 ◼   ► activated and i'm in the mode where if you click them if you click activates an application i'm

01:50:15 ◼   ► supposed to bring all those windows forward so it will so front and center will undo the action that

01:50:21 ◼   ► was supposed to happen in switch class switch class said bring one window forward then front

01:50:24 ◼   ► and center said oh i know you want all the windows forward and it will bring them all forward

01:50:27 ◼   ► and what this looks like if you're using switch glasses i configured switch glass to just bring

01:50:32 ◼   ► one window forward but every time i click on it it brings them all forward and it's not switch

01:50:36 ◼   ► class is doing it's front and center that's doing it right so you see like i could say well this is

01:50:42 ◼   ► an invalid use case don't set your preferences that way but they're two different applications and

01:50:47 ◼   ► it seems like a reasonable thing to want to do when i click on switch glass i just want one

01:50:51 ◼   ► window to come forward but the other times i click i want all of them to go forward because that's how

01:50:57 ◼   ► i have front and center configured so this this is a complication entirely of my own making but once

01:51:03 ◼   ► i realized that it existed i'm like oh this will like people will end up sending it this way and

01:51:07 ◼   ► they will think it's buggy and they'll be like your your app doesn't work i said one window and

01:51:11 ◼   ► every time i click that they all come forward right and i don't want to have to explain to them

01:51:15 ◼   ► that you know well don't set your preferences that way or whatever and i don't have enough

01:51:22 ◼   ► information to sort that out on either end because like when front and center gets notified that

01:51:26 ◼   ► something was was clicked i don't even know like what event caused that to happen like front and

01:51:32 ◼   ► center itself has some very scary weird code to do heuristics to like uh you know keep track of the

01:51:39 ◼   ► last time a mouse was clicked but i don't know where or why it was clicked i just know that it

01:51:44 ◼   ► was clicked and i do this time windowing around activations to figure out if that clicks belongs

01:51:48 ◼   ► to a thing like it's it's scary and everything but it mostly works and that's not where the bugs come

01:51:53 ◼   ► from the bugs are all like nothing happened because you know the i call the api and the windows didn't

01:52:00 ◼   ► come to the front or whatever anyway that there's front and center doing that over there i but in

01:52:05 ◼   ► from front and center i was like i have no idea if you just clicked on switch glass like i have no

01:52:09 ◼   ► way of knowing that i can know that you clicked but i don't know if you like legit clicked on a

01:52:13 ◼   ► single chrome window or if you clicked on the chrome icon in switch glass i have no idea that

01:52:18 ◼   ► that happened and so i need to figure out a way to deal with this and then the simple application

01:52:25 ◼   ► used to be like i'll make a little palette and there'll be icons and you click on them and i'll

01:52:29 ◼   ► call a single api that all went out the window as soon as i realized this was an issue i maybe i

01:52:35 ◼   ► made the wrong choice maybe i should have said you know what this is again an invalid use case or

01:52:40 ◼   ► i'll take away that preference in switch class and you can't run it in that mode but i'm going to run

01:52:44 ◼   ► both applications at once and i would know that there was this problem i just i decided i wanted

01:52:49 ◼   ► to tackle it so i had to figure out a way to get these two apps to talk to each other uh and they're

01:52:57 ◼   ► both sandboxed so a lot of things are out of the question uh and i had some ideas about i mean i

01:53:06 ◼   ► don't know you you two are ios programmers but i think you know enough about the apis that are

01:53:10 ◼   ► similar enough how would you handle this what can you come up with some uh spur-of-the-moment

01:53:15 ◼   ► technical solutions to the problem that i have here an automatic kicking machine yeah i just i've

01:53:21 ◼   ► been doing a lot of clips that i've seen your kicking machine in action yeah like yeah i'm

01:53:24 ◼   ► i'm not going to reject anything for grossness but literally how can i make this happen again what i

01:53:28 ◼   ► want to happen is i click on switch glass and it brings a single window forward and even though

01:53:33 ◼   ► front and center is configured that it's supposed to bring all windows forward when a new app is

01:53:36 ◼   ► activated it has to somehow know that you know this time lay off because it was switch glass

01:53:42 ◼   ► that brought that window to the front and it's configured to say don't bring them all to the

01:53:46 ◼   ► front so front and center lay off how do i make that happen uh can you do darwin notifications

01:53:51 ◼   ► between the two apps what would i say between them hmm i guess you would you would post notification

01:53:59 ◼   ► from the one that wasn't or from the one that is activating basically saying like hey i'm about to

01:54:06 ◼   ► activate this behavior and then post another one saying i'm done activating this behavior and have

01:54:11 ◼   ► like a slight delay between those things so that that way i don't know i mean as you're thinking

01:54:17 ◼   ► about it you're realizing i'm creating a race condition so this is my first inclination too

01:54:21 ◼   ► is like i want switch glass to tell front and center i'm doing a thing lay off right right but

01:54:28 ◼   ► uh all the things all these apis that i'm using so switch glass that's like synchronous like

01:54:33 ◼   ► someone clicks and i get to run code in response to that click but on the front and center side

01:54:38 ◼   ► i'm just there like listening for notifications that the operating system gives to me the

01:54:43 ◼   ► operating system tells me by the way a new app became active and i have no control over when

01:54:48 ◼   ► the operating system tells me that also i'm watching for mouse clicks in front and center

01:54:53 ◼   ► just so i can know hey they clicked the mouse can't tell you anything else about it but they

01:54:57 ◼   ► click the mouse i also have no control over when those notifications come which is part of the

01:55:02 ◼   ► complexity inside front and center which is sometimes i get the mouse click before the

01:55:06 ◼   ► activation and sometimes i get it after so to make a decision i need both pieces of information

01:55:11 ◼   ► but there's a time windowing thing there and i don't want it to be laggy or slow right so if

01:55:17 ◼   ► i'm going to have switch glass say hey front and center uh i'm about to activate an application

01:55:22 ◼   ► leave it alone just don't touch it i know you're going to get at some point in the future you're

01:55:25 ◼   ► going to get an activation notification but do not react to it i can send that with darwin

01:55:30 ◼   ► notifications which is just this kernel mediated messaging mechanism that's in theory very fast

01:55:35 ◼   ► between two applications that are on the same operating system it's not a socket connection

01:55:38 ◼   ► it's not networking it is just uh a way through the kernel for you to pass simple messages to

01:55:44 ◼   ► each other first hurdle that is sandbox applications can't send darwin notifications to other sandbox

01:55:49 ◼   ► applications unless they're inside the same app group the app groups exist on ios and on mac

01:55:55 ◼   ► and you have to make an app group and it gives them a shared container but it also lets them

01:55:58 ◼   ► send messages to each other so that was the first hurdle so i had to get them both into an app group

01:56:02 ◼   ► and the rules for that on the mac are totally different than ios and all the tutorials talk

01:56:05 ◼   ► about ios but eventually i figured it out despite that there's some weird bugs in xcode's gooey for

01:56:11 ◼   ► doing this um shocking yeah but then of course i knew when i was implementing this i'm like this

01:56:16 ◼   ► is not going to actually solve the problem because the race condition is i'm going to send that

01:56:20 ◼   ► notification but i have no idea in what order front and center will see things front and center

01:56:25 ◼   ► could see a mouse click and then an activation and then have to make a decision and then three

01:56:31 ◼   ► milliseconds later get a notification that says oh by the way i'm switch glass i just did that

01:56:35 ◼   ► and front and i was like oh too late i already activated all the i already pulled all the windows

01:56:38 ◼   ► to the front i didn't know you like there is it's a race condition i have no idea when those things

01:56:43 ◼   ► will come in practice the timing is you know it's a pretty good race condition most of the time it

01:56:50 ◼   ► comes in time but sometimes it doesn't goodness right and you can mess with the windows or

01:56:54 ◼   ► whatever like like the window of time of like how long you're gonna wait but i don't want it to be

01:56:59 ◼   ► slow i don't want it to be like i'm gonna wait three seconds to see whether i should bring all

01:57:02 ◼   ► the windows for because that's a terrible experience like i want it to be fast so i did the notifications

01:57:07 ◼   ► and it worked most of the time but that's not a solution now that's just a race condition so i

01:57:12 ◼   ► had to come up with another solution and this is where i had to get creative and or even more

01:57:18 ◼   ► disgusting but already this is by the way way too complicated because now i have you know these

01:57:23 ◼   ► things they're already listening for different events and they have these darwin notification

01:57:25 ◼   ► centers and then i have them sending messages and they're in an app group and all this other stuff

01:57:28 ◼   ► like for for a very rare use case and it doesn't even cover 100 of the cases because especially

01:57:34 ◼   ► with race conditions i'm using whatever my 12 core mac pro i have no idea what these timings are like

01:57:40 ◼   ► on someone's on casey's gravity 12 inch macbook like right number of cores and what else is going

01:57:46 ◼   ► on and how much memory like do not trust how things behave timing wise on your computer you

01:57:51 ◼   ► know and then half the ones i'm running in like xcode debug builds what is it like with release

01:57:55 ◼   ► builds so i'm making release builds or whatever so my belt and suspenders approach was yeah do that

01:58:02 ◼   ► and when that works great but you know sometimes it's not going to work because you're going to

01:58:06 ◼   ► lose the race and things are going to come in a different order how do you handle that so the way

01:58:11 ◼   ► i handled that was since these things are in the same app group and i have a shared container where

01:58:16 ◼   ► they can both write files and since one of the things that is the nature of switch class is that

01:58:22 ◼   ► the switch glass window doesn't move around or change size too much it only moves when either

01:58:30 ◼   ► an application is quit or launched or if someone if you use the preferences to move it around

01:58:34 ◼   ► what i can do is anytime the switch glass window moves or changes size oh no i i can record the the

01:58:45 ◼   ► the coordinates the frame of every switch glass switcher that's on because it supports multiple

01:58:52 ◼   ► displays and i can write that to a file in the shared container and then front and center

01:59:00 ◼   ► can read that file and always know the coordinates of the switch glass things so when a mouse click

01:59:07 ◼   ► comes along there's no more race because front and center will have read those coordinates ages ago

01:59:14 ◼   ► as long as the window hasn't moved since then even though it doesn't know where the click happened

01:59:18 ◼   ► like in terms of what application or event it doesn't know the x and y coordinates on each

01:59:22 ◼   ► screen and i can see based on your you know coordinates of all the switch glass app switcher

01:59:29 ◼   ► frames did that clicks xy coordinates land in in a switch glass thing in which case you should ignore

01:59:37 ◼   ► it because switch glass is the thing that made that app activate wow that's that still doesn't

01:59:43 ◼   ► cover a hundred percent of the cases because you can imagine a scenario where you very quickly quit

01:59:48 ◼   ► an application and move the palette and click on it like you can do some video game gymnastics to

01:59:54 ◼   ► outrun this thing right because it is writing a file to disk and it's being read and by the way

01:59:58 ◼   ► use a darwin notification to tell immediately to read the file right like the file is changed

02:00:02 ◼   ► here's yeah but it it does work and i have not been able to induce any kind of buggy behavior

02:00:09 ◼   ► in all of my testing with both of these approaches occasionally one will miss but there's always the

02:00:14 ◼   ► other one there underneath and a surprising amount of time the synchronous one with the

02:00:18 ◼   ► notification like 90 percent of the time that one works and wins and doesn't rely on this fallback

02:00:22 ◼   ► the fallback is just there for the scenarios where i lose the race and then that one works

02:00:27 ◼   ► and then of course the complication is but do you really want to be sending all these notifications

02:00:31 ◼   ► writing these two appealist files so i need them to not both applications to not do this crap if

02:00:36 ◼   ► the other one isn't there if you just have switch glass i don't want any of this stuff running if you

02:00:40 ◼   ► just have front and center i don't want any of this stuff running luckily both of them are

02:00:44 ◼   ► constantly watching applications be launched and quit so they always know when the when their

02:00:50 ◼   ► companion appears and when it disappears right they both do that already so there's no polling

02:00:57 ◼   ► there is no you know there are no spin locks no loops and both of them will just shut up and be

02:01:02 ◼   ► and be quiet and be themselves when they're just there in isolation but as soon as their companion

02:01:06 ◼   ► appears they'll start communicating and cooperating with their frames behind the scenes and if one of

02:01:10 ◼   ► them quits they'll stop doing that and they will stop listening and stop sending notifications

02:01:14 ◼   ► it's way too complicated for what looks like a stupid application switch of a thing but i have

02:01:19 ◼   ► to say it was one of the most fun things that i did in this development because it is completely

02:01:24 ◼   ► not needless complexity but like surprising complexity for what looks like a very simple

02:01:30 ◼   ► application again of my own making because i made two of these stupid apps that both do weird things

02:01:34 ◼   ► and i made both of them have way too many options and be way too flexible instead of being like

02:01:38 ◼   ► opinionated and saying it just should be classic mode everywhere that would have avoided all this

02:01:42 ◼   ► problem but it was a fun programming challenge and this was the i guess the uh the most interesting

02:01:50 ◼   ► technical the most interesting thing that didn't have to do with working around bugs it was just

02:01:55 ◼   ► entirely it's just me and my own bad decisions about my own applications i had to solve a problem

02:01:59 ◼   ► and it was it was fun doing it and it was fun like essentially doing server-like programming

02:02:07 ◼   ► without any servers because you know sending requests and responses and notifications and

02:02:11 ◼   ► all that other stuff is a lot like server-side programming but there's no servers running there's

02:02:14 ◼   ► no networking it's all through the kernel and uh it's pretty neat may i propose an alternate

02:02:20 ◼   ► solution sure why don't you just build in the front and center functionality as an option

02:02:28 ◼   ► in sight glass i absolutely thought of that i absolutely thought of that that before i did

02:02:33 ◼   ► this stupid frame thing i'm like i should just combine these two apps because then you don't

02:02:36 ◼   ► have this problem they're both the same application there's no coordination things they are literally

02:02:40 ◼   ► the same app uh i thought about it seriously for a long time the reason i decided against it well

02:02:47 ◼   ► two reasons one not everyone wants both these apps i know there's not really what i'm proposing

02:02:54 ◼   ► is not that you combine the apps what i'm proposing is that cycle s becomes you know the the both app

02:02:59 ◼   ► and that front and center becomes the smaller baby version if you don't want the site class

02:03:05 ◼   ► mini doc thing switch glass not cyclists ah switch i know it's a bad name i have had naming

02:03:10 ◼   ► problems sorry i was thinking expensive coffee places yeah um no i didn't want i didn't well

02:03:15 ◼   ► the first thing was some people don't want both right so if you make switch glass the one that

02:03:18 ◼   ► has both still same issue what if people don't want that other functionality like well if they

02:03:23 ◼   ► don't want it they don't have to use that functionality switch glass like make an optional

02:03:26 ◼   ► then we get to the second problem the second problem is it is so hard to just explain what

02:03:31 ◼   ► front front and center does you can't even keep the name straight yeah right there i know what

02:03:36 ◼   ► can i tell you i only made up one of these names and it's the one i like less anyway uh front and

02:03:41 ◼   ► center is hard enough to explain as it is right and it's it's like preferences ui and its settings

02:03:48 ◼   ► are themselves weird and hard to explain switch glass is also surprisingly strange to explain and

02:03:56 ◼   ► has a ton of options because that's probably the way i wanted to like if listeners this is the time

02:04:01 ◼   ► when you should go to the show notes go and look at my website like you don't have to buy the app

02:04:05 ◼   ► just look at the website and look at the stupid preferences window for switch glass and get an

02:04:09 ◼   ► idea of exactly how far down the rabbit hole i went with customization it's a little bit silly

02:04:14 ◼   ► but it's what i wanted to do right if i combine both these applications just trying to find a way

02:04:21 ◼   ► to communicate all the functionality would have been incredibly hard especially because this is

02:04:26 ◼   ► a complication maybe we'll get to in another war story switch glass is configurable per monitor

02:04:32 ◼   ► so on each display you can choose whether or not you want the palette to appear in every single

02:04:37 ◼   ► setting about how like where it appears and everything right and so when you bring up the

02:04:41 ◼   ► preferences it brings up a window in every single monitor kind of like display preferences you know

02:04:45 ◼   ► ecosystem preferences and you do displays and it brings up a separate window in every display

02:04:48 ◼   ► that's how you configure displays separately that's how this works that's not how front and center

02:04:53 ◼   ► works like just dealing with the ui issues and the explanation of how this stuff works alone

02:04:58 ◼   ► it was just it would it would have been a much bigger task like at that point i'm basically

02:05:02 ◼   ► signing up to start making drag thing and i'm not ready to sign up for that yet so i'm gonna make

02:05:06 ◼   ► you another two weeks i'm gonna make two purpose-built applications that do specific things

02:05:13 ◼   ► if you want one or you want the other or you want both like they'll it'll work in all scenarios but

02:05:18 ◼   ► they're like single purpose things and within those single purpose things it's hard enough to

02:05:23 ◼   ► explain and get working right but but you're right that is a technically better solution obviously the

02:05:27 ◼   ► real solution is why don't you just make a new drag thing like you're you're two percent of the

02:05:32 ◼   ► way there already why not just do the other 98 percent and i am thus far very capably resisting

02:05:38 ◼   ► the urge to do that because that is way more work than what i've been doing and i just want these

02:05:42 ◼   ► two little things and i just want them to work together so yes that that did occur to me and

02:05:47 ◼   ► would be more straightforward technically but i i would still be working on that and i would

02:05:53 ◼   ► probably get to a point where i regretted it terribly because just trying to figure out how to

02:05:58 ◼   ► to massage the preferences of ui into something sensible would just be you know and not not from

02:06:03 ◼   ► a technical perspective just like user interface design how do i convey to the user how all these

02:06:08 ◼   ► different things work it's hard enough like if you look at the switch glass preferences this section

02:06:12 ◼   ► of it that applies globally and there's another section that applies just to the display and i

02:06:16 ◼   ► try to label that and try to explain that but even that it's not it's not a great interface like it's

02:06:20 ◼   ► a difficult problem if you want to have per display settings but also have global settings

02:06:25 ◼   ► but not have two different preferences things you end up having to make like you know like a quote

02:06:29 ◼   ► unquote real preferences dialogue with like the toolbar at the top and the different images and

02:06:34 ◼   ► it's just it's complicated so anyway that's that's enough war stories for for this week i can

02:06:42 ◼   ► revisit it in future weeks because there are plenty more uh interesting and fun things about

02:06:46 ◼   ► developing what looks like a very simple application but just to give you an idea of the

02:06:50 ◼   ► ridiculousness that's lurking under the covers of this thing that lets you click on an icon and

02:06:54 ◼   ► bring an app to the front awesome it's so true i mean i had the bare bones of peek of you done

02:07:04 ◼   ► really really quickly but it it was trying to get it to work the way i wanted to and do the things i

02:07:10 ◼   ► wanted to do and be more polished and like golly i spent probably a couple of days on the zoom in

02:07:18 ◼   ► animation and i already already done almost the exact same thing on vignette but i was doing it

02:07:22 ◼   ► differently and i wanted it to work a little differently and that alone took me days which

02:07:27 ◼   ► is probably an indictment of my own skill in ui programming more than anything else but that's

02:07:32 ◼   ► just not the sort of thing that comes naturally for me and oh god it there's so much there's so

02:07:38 ◼   ► much to even the simplest app and and i don't think i have it as bad as you john but i run into

02:07:45 ◼   ► apple apis that are not really as robust as i would like them to be and not really as bug-free

02:07:50 ◼   ► as i would like them to be and like you if something happens in an apple api like a lot of

02:07:56 ◼   ► times vignette would just stop writing updates because apple's apis have decided no you're done

02:08:03 ◼   ► now okay like they don't really tell me i'm done it's just it doesn't work and and i don't know why

02:08:11 ◼   ► and you know the best theory i've had and i wrote some code to try to slow everything down because

02:08:16 ◼   ► maybe i was hammering the context database too quickly and it's just stuff like this is

02:08:19 ◼   ► infuriating because there's no way for any regular outside of apple human to know what the issue is

02:08:25 ◼   ► and or there's just legitimately a bug maybe apple didn't design it that way you know so in my case i

02:08:30 ◼   ► have a theory that they designed it so that you can only write so much the contacts database so

02:08:34 ◼   ► quickly which is fine if you tell me what the limit is but they don't tell you what the limit is welcome

02:08:38 ◼   ► to ios yeah and well in you john i think you have probably you're probably bumping up against

02:08:43 ◼   ► legitimate bugs and so you know apple is made of humans humans write bugs but still just

02:08:49 ◼   ► infuriating because there's nothing you and i can do about it or marco i mean all three of us there's

02:08:53 ◼   ► nothing we can do about it we just have to sit there and go yep if you're if you're lucky the

02:08:57 ◼   ► api that you're running into a problem with will be a commonly used api for normal apps that's

02:09:01 ◼   ► another one of the the consequences of me choosing to make these weird apps like regular apps don't

02:09:06 ◼   ► ever need to call the apis that bring other applications to the front like that is a rare

02:09:11 ◼   ► piece of functionality so who cares if there's some weird minor bugs in it and and i'm saying

02:09:17 ◼   ► that from apple's perspective but but honestly i care as a mac user set aside all my applications

02:09:21 ◼   ► like i'm frustrated when i can't bring all the windows of an app to the front it happens to me

02:09:26 ◼   ► a surprising amount of the time again nothing to do with my apps just literally clicking on the

02:09:30 ◼   ► dock icon for safari and i want all my safari windows to come to the front and they won't

02:09:34 ◼   ► it's been driving me nuts for years but if you're writing a text editor hell if you're writing

02:09:39 ◼   ► photoshop if you're writing final cut you will never call those apis they are not relevant to

02:09:43 ◼   ► app development so it doesn't surprise me that they haven't gotten fixes whereas if you're using

02:09:48 ◼   ► the contacts api that is widely used on ios and there's a slim chance that if you file that bug

02:09:53 ◼   ► maybe they'll add in the subsequent release oh yeah there's a limit and we'll notify you if you

02:09:57 ◼   ► call it too many times or we'll document it or something like that but i don't think anything's

02:10:01 ◼   ► going to happen for these like what i think would happen is more likely to happen is apple will be

02:10:06 ◼   ► like why do we even have that api third-party application shouldn't be asking for other

02:10:11 ◼   ► applications to come to the front deprecated you can't use it anymore it's going to go away in two

02:10:14 ◼   ► versions like you almost don't want to call attention to those type of apis because they're

02:10:19 ◼   ► you know they're like system extension stuff it's not you never need to to make microsoft

02:10:24 ◼   ► word you never need to call those apis so you know it's it is what it is