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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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