338: Double Chunking08 Aug 2019
Two of us fail to adhere to the very simple show format that we’ve been doing for a long time.
- Overcast beta and sync changes
- Vignette duplicate-image-detection update
- WWDC 2019 #222
- Casey's current algorithm as suggested by Craig Hockenberry
- A quick aside about SwiftUI
- Mimeo Photos and watermarking
- Sony cameras
- Geographic location of Intel's modem business
- Apple suspends contractors listening to Siri voice recordings
- Google ordered to halt human review due to GDPR
- Apple Card
- FaceApp and tin-foil hats (via Brad Siefert)
- How does one play RTS games on a Mac without a gaming PC? (via Nathan)
- How does one deal with impostor syndrome (via Ryan Monaghan)
- Post-show: 🧀-grater updates
- Linode: Instantly deploy and manage an SSD server in the Linode Cloud. Get a $20 credit with code atp2019.
- Fracture: Photos printed in vivid color directly on glass. Get a special discount on your first order.
- Clearbanc: The fastest and most affordable way to raise money for your business. Get your 20-minute term sheet.
- Not Follow-Up: Overcast sync
- Not Follow-Up: Photo hashing
- Not Follow-Up: SwiftUI
- Sponsor: Clearbanc
- Follow-Up: Mimeo photo book
- Follow-Up: Sony cameras
- Follow-Up: 🇩🇪 modem people
- Follow-Up: ☁️/Dropbox
- Follow-Up: Siri “grading”
- Sponsor: Fracture
- Apple Card soft-launch
- Sponsor: Linode (code atp2019)
- #askatp: FaceApp
- #askatp: Gaming PC & Mac?
- #askatp: Impostor syndrome
- Ending theme
- Cheese-grater updates 🖼️
Not Follow-Up: Overcast sync
⏹️ ▶️ John I need to find that episode where we talked about self-driving so I can send it to people because
⏹️ ▶️ John I feel like my warnings are not being heeded. Heed past John’s warnings.
⏹️ ▶️ John Drive your cars, people.
⏹️ ▶️ Casey You’ve been ripping some TestFlight builds like it’s your job. Imagine that.
⏹️ ▶️ Marco I am yet again procrastinating by making iOS 12
⏹️ ▶️ Casey Yeah, I’ve been doing the same thing, except you’ve been doing a much better job of it than me.
⏹️ ▶️ Marco who aren’t on the test site. First of all, if you want to join the beta, please join the beta. What happens with betas, this happens with
⏹️ ▶️ Marco every app, every beta, is no matter how many testers you get, you get a couple of good
⏹️ ▶️ Marco installations out of each one and then they start fading and they don’t install the betas anymore. And I understand, I’m
⏹️ ▶️ Marco the same way when I’m on betas. I’ll install the first couple, I’ll give some feedback, and then I’ll kind of just forget to do the updates
⏹️ ▶️ Marco after that and I’ll never do it again. Anyway, so however big your beta group is, it’ll start
⏹️ ▶️ Marco tapering off with every build you ship will have fewer installations than
⏹️ ▶️ Marco the one before it did. So my beta group is like, I think about 3800
⏹️ ▶️ Marco people. Now apple has up to 10,000, but I was only getting like 800 installs
⏹️ ▶️ Marco on the latest builds. By the way, this is also why I occasionally reset my entire beta group. I
⏹️ ▶️ Marco just like delete everybody and make everybody resign if they want to because you know most of the time that
⏹️ ▶️ Marco you got to like cycle through people because they you know they they could they fall off. Anyway,
⏹️ ▶️ Marco in this build, I am changing the sync protocol to the servers in a pretty substantial way.
⏹️ ▶️ Marco So I wanted to get as many people testing it as possible. So when most of my beta group has fallen off, I
⏹️ ▶️ Marco had to add new ones anyway. So if you want to join my beta, please feel free. The link will be in the show notes.
⏹️ ▶️ Casey don’t don’t don’t just don’t just skim past that. So what’s the reasoning behind the grandiose
⏹️ ▶️ Casey sync server protocol changes and, and to the best you’re willing to share what is the executive summary of what
⏹️ ▶️ Marco Sure, so I mean none of this is really secret. There’s been a couple of challenges I’ve faced. So the
⏹️ ▶️ Marco previous sync system, you figure like a podcast has a feed, the feed has episodes
⏹️ ▶️ Marco in it. Every time you would sync before, before I had these two different methods of sync. There was
⏹️ ▶️ Marco the complete like full sync and the sum objects sync.
⏹️ ▶️ Marco The sum objects sync was a small method pause or seek or delete or recommend it,
⏹️ ▶️ Marco any kind of small change to a podcast, the client could
⏹️ ▶️ Marco send just that to the server. So it was a lightweight operation and that was fine. There was a whole bunch of complex logic
⏹️ ▶️ Marco in the app though about how many times do you send those before you send a full sync? How often do you send
⏹️ ▶️ Marco a full sync? Do you wait for certain delays or whatever else? Because without a full sync, you can’t get
⏹️ ▶️ Marco entirely new things and everything. The full sync operation was very heavyweight on
⏹️ ▶️ Marco both the app and the server side. the full sync, the app
⏹️ ▶️ Marco would basically send a record to the server of every episode it knew about
⏹️ ▶️ Marco in all of your podcasts, and every detail about all your podcasts too. So it would send like, you know, E tags for
⏹️ ▶️ Marco each one, and then all the parameter values for like, what you’ve, like the user settable parts, so deleted,
⏹️ ▶️ Marco progress, et cetera. It would send all of that to the server. Then the server
⏹️ ▶️ Marco would load every podcast you subscribe to, every episode in every podcast
⏹️ ▶️ Marco you subscribe to, and would filter through and try to see, all right, do you have anything you shouldn’t have?
⏹️ ▶️ Marco And do I have anything you don’t have that you need to have? So it was this very heavy operation. You can imagine,
⏹️ ▶️ Marco you know, on the client side, you’re going through, at that point, possibly, you know, tens or
⏹️ ▶️ Marco hundreds of episodes if you had a big backlog. And on the server side, you were going through
⏹️ ▶️ Marco all episodes of all your feeds. So you could have, it could be going through thousands of records easily.
⏹️ ▶️ Marco And so it was a very, very heavy operation on both sides. And
⏹️ ▶️ Marco there were two problems I wanted to solve. Number one is I wanted to get to a point where the app
⏹️ ▶️ Marco could have locally downloaded records of all episodes of all
⏹️ ▶️ Marco your podcasts, not just the current ones, but their entire back catalogs. And this is for a few reasons.
⏹️ ▶️ Marco It helps enable certain features down the road, like having a list of all your start episodes, things like that that people
⏹️ ▶️ Marco have wanted for a while. It also helps enable much better search because the
⏹️ ▶️ Marco local search index on the device can index all back catalog content
⏹️ ▶️ Marco of all your podcasts, not just the current unlistened to episodes. So there were a bunch of reasons why I wanted to have everything
⏹️ ▶️ Marco stored locally. It makes a lot of things easier and enables some cool features. But to do that with the
⏹️ ▶️ Marco old sync system would just explode in memory and CPU usage on both sides
⏹️ ▶️ Marco for people who had a lot of subscriptions. And a lot could be like 50 or more. And
⏹️ ▶️ Marco you think that’s weird, but I have 90 and I don’t think I have too many. It just, you know, they accumulate. So a
⏹️ ▶️ Marco lot of them are old shows that no longer update, but I still have them in my list, et cetera. Anyway, so problem number one
⏹️ ▶️ Marco was I wanted to be able to store everything on the device about all your podcasts for lots of various reasons.
⏹️ ▶️ Marco Problem number two is that this heaviness on both sides made it so that the servers
⏹️ ▶️ Marco were doing way more work than they should have. They were using way more memory for some of these
⏹️ ▶️ Marco requests. People were hitting the PHP memory limit all the time, like whenever I’d set it up, Like I currently have it set
⏹️ ▶️ Marco at 256 megs per request, which is a very high memory limit for a web
⏹️ ▶️ Marco request. That’s no web app in 2019 should need that much RAM to do most requests.
⏹️ ▶️ Marco But I just had it set that high because I had to for people who had big subscription lists. And you know, just
⏹️ ▶️ Marco to have enough memory to do that sync operation where it loads all of their episodes of all their podcasts into memory
⏹️ ▶️ Marco and parses through them and everything. And you know, I did some things in the server side to help alleviate that a little bit,
⏹️ ▶️ Marco but it wasn’t as good as it could be. like I would like stream out the JSON response and everything
⏹️ ▶️ Marco like object by object and so I wasn’t storing at all memory at once but it was still doing a very
⏹️ ▶️ Marco a bunch of very heavy operations. The other problem is that this would explode memory usage on the
⏹️ ▶️ Marco client side too and so I want to have a locally synced version that can run
⏹️ ▶️ Marco on the Apple Watch. I want to make like a full-blown first-class overcast sync client
⏹️ ▶️ Marco that runs on the Apple Watch and syncs directly to my servers instead of having to go through the phone because that’s unreliable.
⏹️ ▶️ Marco The only way to do that is to fit the entire sync engine in the Apple Watch’s resource constraints. And that was never going to happen
⏹️ ▶️ Marco with the old system. I decided to solve this problem with a new system that instead
⏹️ ▶️ Marco of making one giant request to do everything, it basically makes individual requests
⏹️ ▶️ Marco per podcast. And so it does a main sync request at the beginning. I totally got rid of the some object
⏹️ ▶️ Marco sync. The like the two different kinds of sync requests to the app, like depending on severity, got rid of that completely.
⏹️ ▶️ Marco greatly simplified the app code. And now it just makes one request at first that is like list of
⏹️ ▶️ Marco podcasts. That list request tells the app which podcasts it needs to update.
⏹️ ▶️ Marco Then the app can fetch those podcasts individually and so it turns out
⏹️ ▶️ Marco the sync ends up taking a little bit longer on the client side but
⏹️ ▶️ Marco no one notices. I can do it way more often. I can do it with way less throttling,
⏹️ ▶️ Marco way less delay because it’s such a simple operation on both sides. sides. The memory usage
⏹️ ▶️ Marco on the server dropped from like something like 90 megs for my account to eight.
⏹️ ▶️ Marco I’m a little scared that I am generating more requests. I’m a little scared like how this will scale on
⏹️ ▶️ Marco launch day and in fact I will probably phase this release out with the Apple the App
⏹️ ▶️ Marco Store phase release feature which I’ve never used before. My expectation is that it’s going to be actually way less load on the servers
⏹️ ▶️ Marco than the current version and this enables you know I haven’t done the the
⏹️ ▶️ Marco start episodes section yet, because that’s just more UI work that I’m deferring for now. But this did
⏹️ ▶️ Marco enable me to hopefully fix syncing of large libraries, and also
⏹️ ▶️ Marco I did the local search feature where now you can search everything and it’s fine. So
⏹️ ▶️ Marco anyway, once you get this version, everybody, the initial sync might be a little slow while it downloads all those
⏹️ ▶️ Marco back catalog data blobs for the first time ever, but once it has that, it’s fine. thing
⏹️ ▶️ Marco I did I kind of defined my own data format which is usually not
⏹️ ▶️ Marco a good idea but in this case I mentioned I use JSON for most
⏹️ ▶️ Marco of the server communication. Yes I know about protocol buffers I’m very aware of things like that
⏹️ ▶️ Marco and there’s a couple other like data formats that I that I’m theoretically supposed to use instead of JSON
⏹️ ▶️ Marco but the fact is they all have requirements that I don’t want to meet and they
⏹️ ▶️ Marco don’t achieve enough of a gain for me to want to tackle their complexity and requirements.
⏹️ ▶️ Marco So I use JSON because it’s everywhere, it’s easy to read and write
⏹️ ▶️ Marco on both ends from both Apple’s frameworks and from the built-in PHP stuff and I don’t need anybody’s weirdo
⏹️ ▶️ Marco libraries and I don’t need to define anybody’s weirdo schema or anything like that, it’s just super easy. So I use JSON.
⏹️ ▶️ Marco It compresses really well, it performs really well. The main problem though is that when you are parsing
⏹️ ▶️ Marco on the client side, when you’re parsing a big list such as,
⏹️ ▶️ Marco say a podcast has a thousand episodes, and you’re posting a thousand entries of that, like in the response from my
⏹️ ▶️ Marco server request of like, hey, what episode do I need? The client has to,
⏹️ ▶️ Marco when it’s decoding that big blob of JSON, has to decode the entire thing in memory at once. Most
⏹️ ▶️ Marco JSON libraries, including Apple’s built-in one, don’t have what in the XML world was called
⏹️ ▶️ Marco a SACS parser. Basically, they don’t have a streaming JSON parser. You can’t stream out
⏹️ ▶️ Marco one object at a time from a giant response or a file. You have to
⏹️ ▶️ Marco load the whole thing into one giant dictionary in memory and then access it. And this again
⏹️ ▶️ Marco would go against my memory requirements for having things be very small and sparse so that
⏹️ ▶️ Marco they could fit on the Apple Watch. So I just defined a very slight modification
⏹️ ▶️ Marco where my servers are still sending JSON, but they’re sending it in a streamed format.
⏹️ ▶️ Marco So they basically send a little tiny header to identify it as this format, and then they send
⏹️ ▶️ Marco blobs that they first send the size of the following JSON blob
⏹️ ▶️ Marco and then they send the JSON blob and then the next is another one of those integers that’s the size of the next one and they send the
⏹️ ▶️ Marco next one and so it allows on the client side very very easy stream parsing
⏹️ ▶️ Marco of JSON data so I read I read if I see this header I know it’s a stream and
⏹️ ▶️ Marco so I read that size read that chunk parse it deal with it throw it away
⏹️ ▶️ Marco read the next size read the next
⏹️ ▶️ John chunk. It’d be great if these responses are being sent with transferring coding chunked.
⏹️ ▶️ John Because that’s what you basically have.
⏹️ ▶️ Marco just reinvent something there?
⏹️ ▶️ John Yeah, but HTTP has a protocol where it does exactly that. Size
⏹️ ▶️ John of the next chunk, then a chunk of the size of the next. It may be happening right now. It depends on what your client and service
⏹️ ▶️ John port. But I don’t think that would help you because you’d have to interact. First of all, you wouldn’t get to choose where the chunks are,
⏹️ ▶️ Marco Right, which for JSON parsing would ruin the entire thing. Right, but you
⏹️ ▶️ John should check. you should check what’s going over the wire. You may actually be double chunking this, which would be fun.
⏹️ ▶️ Marco Yeah, I’ve seen the chunked encoding thing go by in headers here and there in my career.
⏹️ ▶️ Marco I never knew the details of what that was. Now I know, thank you.
⏹️ ▶️ Marco So anyway, though I may be double chunking, it does actually work. I’m
⏹️ ▶️ Marco keeping it very, very simple. I thought, oh, should I be fancier and like, you know, maybe serialize
⏹️ ▶️ Marco some more of the, of the common fields that are my JSON objects into like binary fields. And I thought, no, stop right there.
⏹️ ▶️ Marco That’s crazy town. I don’t want to reinvent protocol buffers. Like I just, I just want to
⏹️ ▶️ Marco have a very simple streamable JSON format. And that’s what I have. It took minimal modifications to either
⏹️ ▶️ Marco side. And here we go. So that’s what I’ve been doing. It’s, it’s almost done.
⏹️ ▶️ Marco I will probably submit to the app store in the next week or so. And that’s it.
⏹️ ▶️ Casey Busy bee. Yep. Make me feel bad. That’s a good thing.
Not Follow-Up: Photo hashing
⏹️ ▶️ Marco So, I’m curious, how is your photo hashing problem coming? I
⏹️ ▶️ Casey haven’t had much time to look at it since we last spoke. I did, however, I wasn’t actually
⏹️ ▶️ Casey planning on bringing this up, but I did get some very useful feedback from a couple of people who had
⏹️ ▶️ Casey said, hey, and well, and they were both very polite, which is very nice, because this is totally the sort
⏹️ ▶️ Casey of thing that your typical, you know, internet jerk would be like, didn’t you know
⏹️ ▶️ Casey that? But that was not the emails I got, which I very much appreciated. emails I got were, hey man, did you
⏹️ ▶️ Casey know that, I think it was session 222, I’ll put a link in the show notes, of this
⏹️ ▶️ Casey past WWDC, Apple actually had a very brief part of
⏹️ ▶️ Casey a vision framework presentation wherein they said, hey, here’s how you can figure out duplicate images.
⏹️ ▶️ Casey And I watched, which was at first very frustrating, I watched that. It
⏹️ ▶️ Casey seemed way more complex and maybe not as
⏹️ ▶️ Casey useful as it was painted to be. In a perfect world, it will be useful
⏹️ ▶️ Casey and it will replace my kind of homegrown hashing algorithm thing.
⏹️ ▶️ Casey But I’m unconvinced it is an exact fit for what I want. And this was
⏹️ ▶️ Casey in the context, this session was largely about classifying things within images so if you have a picture of a cat,
⏹️ ▶️ Casey you know that there’s a cat in a bowl of something. I was going to say bowl of milk, but I guess all you would know is that there’s a bowl there
⏹️ ▶️ Casey and a kitty cat and a person or whatever the case may be. And so they obviously with
⏹️ ▶️ Casey duplicate detection, they talk about more than just classification.
⏹️ ▶️ Casey So yeah, two cat images are by no means necessarily the same. But
⏹️ ▶️ Casey anyway, I got to look at this again and see if it’s useful. But I was just thinking to myself earlier
⏹️ ▶️ Casey tonight that I really need to stop procrastinating about iOS 12 stuff and
⏹️ ▶️ Casey really got to get into like dark mode and a couple of the kind of low-hanging fruit pieces of iOS 13.
⏹️ ▶️ Casey And I’ve been trying to convince myself to really try Swift
⏹️ ▶️ Casey UI again, which I tried briefly earlier in the summer and wanted
⏹️ ▶️ Casey to go bald and rip all my hair out because it was so frustrating. And I really, the siren call
⏹️ ▶️ Casey is strong gentlemen, but I know the adult in me knows it’s just too early for that. You know this is like jumping in Swift
⏹️ ▶️ Casey and I love Swift, and I am a Swift apologist, but this is like jumping onto Swift when it was Swift 1 timeframe. You can
⏹️ ▶️ Casey do it. I wouldn’t recommend it, but you can do it.
⏹️ ▶️ Casey In some way, some time, somehow, I might get into a deeper rant about Swift UI, but I think Syracuse
⏹️ ▶️ Casey is gonna give me the Apollo hook if we don’t get to follow up soon. But in summary, I
⏹️ ▶️ Casey got some stuff to look at, and I very genuinely, I very much appreciate the emails that came in, not only just pointing me in that direction,
⏹️ ▶️ Casey like it would have been useful even if these people were jerks, and said, you dummy,
⏹️ ▶️ Casey look at this. But I doubly appreciate that they were nice and said, hey man, check this out. So I need to
⏹️ ▶️ Marco And there were also, there were a bunch of recommendations for like simple algorithms. And I didn’t mention during it, but I think I’ve
⏹️ ▶️ Marco talked about it before, but I actually wrote a similar algorithm for an overcast feature.
⏹️ ▶️ Marco I think it’s still there, where sometimes a podcast would embed
⏹️ ▶️ Marco in its MP3 the same image as its cover art
⏹️ ▶️ Marco but in worse quality. And so I wanted to detect whether the embedded
⏹️ ▶️ Marco image was the cover art and then if it was, I would pick whichever
⏹️ ▶️ Marco had like the bigger pixel size to be the one that I actually showed. And so a
⏹️ ▶️ Marco number of people wrote in to basically suggest what I ended up doing five years ago, which was
⏹️ ▶️ Marco I would resize the image down to some very small size. I think it was like 16 by 16 or something like that. resize
⏹️ ▶️ Marco both images down to a very small size, and then go through pixel by pixel, and just track like,
⏹️ ▶️ Marco and I think I did it in the HSB space, so in hue, saturation, brightness, instead of RGB,
⏹️ ▶️ Marco because it was easier to detect certain differences, and just say like, what percentage
⏹️ ▶️ Marco different are these pixels in these two images? And is this pixel a 50% difference in saturation
⏹️ ▶️ Marco from the other one, et cetera? And then you take the average of how different these values are across
⏹️ ▶️ Marco these two very small scaled down versions. And you can do all this very, very quickly on modern hardware.
⏹️ ▶️ Marco Like even five years ago, that was nothing to do. It isn’t incredibly sophisticated. Like it wouldn’t detect
⏹️ ▶️ Marco things like 90 degree rotations or like, you know, having an image have like a different crop
⏹️ ▶️ Marco on it, but be like two parts of the same image. Like it wouldn’t detect a major difference like that. But if it’s just
⏹️ ▶️ Marco like two different versions of the same picture, just like with different services,
⏹️ ▶️ Marco sizes and crappy JPEG compressions, it detected those flawlessly. I assume,
⏹️ ▶️ Marco like when you said, you were talking about like an image hashing thing, I assume that was the kind of thing you were talking
⏹️ ▶️ Casey Well, so it’s similar. So I can go into slightly more detail about this. And this was based on algorithm.
⏹️ ▶️ Casey I’ll put a link in the show notes to the source, not as in source code, but sources in the webpage that
⏹️ ▶️ Casey had instruction about this algorithm that a dear friend of the show, Craig Hockenberry had pointed me to.
⏹️ ▶️ Casey The general gist of the algorithm, it’s similar, but not the same. So the first thing I do is I shrink them to
⏹️ ▶️ Casey the images to 16 by 16. Then I convert to grayscale. Then I take an average
⏹️ ▶️ Casey of what those, like the float values of those colors, and I average it out. And I’m making this
⏹️ ▶️ Casey up. Let’s say, you know, the average is five, and I’m dramatically oversimplifying. Let’s just say the
⏹️ ▶️ Casey average is five. Well, any of the colors on each of those pixels,
⏹️ ▶️ Casey any of the colors that are above or equal to five gets treated as a one. Any of
⏹️ ▶️ Casey the colors that are below or less than five, that’s the same thing, below 5 gets treated as
⏹️ ▶️ Casey a 0. And suddenly, I now have a 64-bit numeral,
⏹️ ▶️ Casey because I’ve got a 16 by 16. I did that math right. A 16 by 16 image that I’ve now gotten 1 bit per pixel.
⏹️ ▶️ Casey So now I have a 256-bit integer, and that
⏹️ ▶️ Casey is the hash. And then once I have two of those integers, I compute what’s called the Hamming distance,
⏹️ ▶️ Casey which to say how many of these ones or zeros match each other. So if you look
⏹️ ▶️ Casey at the zeroth position of both integers, are they both one or are they both zero?
⏹️ ▶️ Casey If you look at the first position, are they both one or are they both zero? And the amount of non-matching
⏹️ ▶️ Casey positions is the distance. So if you have five non-matching positions, which is I think the threshold I’m using
⏹️ ▶️ Casey right now, which I probably have to tweak as we spoke about last time. If you have five as the distance, those are
⏹️ ▶️ Casey probably pretty damn similar images. If you have 50 out of 64, you know,
⏹️ ▶️ Casey as your distance, they’re probably not the same. And again, I’m oversimplifying a little bit because it’s kind of hard
⏹️ ▶️ Casey to paint a word picture here, but I’ll put a link in the show notes so you can dig a little deeper into it. I do like
⏹️ ▶️ Casey what I’ve done. I think, I’m not saying it’s flawless, but I think it’s a pretty solid way of approaching the problem. To
⏹️ ▶️ Casey your point earlier, Mark, it wouldn’t handle like rotation or things like that. And it’s not flawless as John has pointed
⏹️ ▶️ Casey out with things as simple as JPEG compression. Now, I think some of that I could tweak with, you know, by
⏹️ ▶️ Casey tweaking the threshold between what I consider to be the same and what I consider to be different. It seems to be going okay
⏹️ ▶️ Casey so far, but I definitely need to do more tweaking. As a quick side note, before I let you guys comment on
⏹️ ▶️ Casey this algorithm, I had written this so that, you know, when I had these two 64-bit
⏹️ ▶️ Casey integers, I needed to, you know, figure out, well, what of these,
⏹️ ▶️ Casey what bits match and what bits don’t? And I wanted to know when
⏹️ ▶️ Casey one or the other was, was… when they were not matching, basically. So, I have one…
⏹️ ▶️ Casey if I have two bits, one is one, and one is zero, or one is zero and one is one. And I wrote
⏹️ ▶️ Casey this, like, super ridiculous, like… I think it was a nested loop to
⏹️ ▶️ Casey figure this out. And then it occurred to me… Wait, wait, wait, wait,
⏹️ ▶️ John You forgot that XOR exists?
⏹️ ▶️ Casey Then, as I was telling my father about this, because he happened to be there right as I’d finished this up,
⏹️ ▶️ Casey I was like, wait a second, this sound… Oh, God. I can definitely use an XOR here, can’t I?”
⏹️ ▶️ Casey So I felt like such a damn fool when I realized they’re in my ways. Thankfully,
⏹️ ▶️ Casey I realized it before I shipped to
⏹️ ▶️ John You’re reinventing it from first principles.
⏹️ ▶️ John, Marco Yeah, yeah. I mean, to be fair,
⏹️ ▶️ Marco I bet the majority of working programmers don’t know what XOR is. Second of all, even
⏹️ ▶️ Marco those who know what it is, I’m pretty sure I’ve had zero times when I actually
⏹️ ▶️ Marco had to use it in my career. Exactly, exactly.
⏹️ ▶️ Marco, Jonathan Mann I’ve totally
⏹️ ▶️ Marco, Jonathan Mann it.
⏹️ ▶️ John, Jonathan Mann course you have. Of course you have. we’re looking
⏹️ ▶️ John for an excuse to you to do bitwise operations and see is like what clever you know is
⏹️ ▶️ John it was like your first
⏹️ ▶️ Marco option i do bitwise operations all the time i just have never had a use for x or i
⏹️ ▶️ Marco even do them in php
⏹️ ▶️ Casey it’s funny to me that both of you picked it out as i was starting down this path i’ve used it in
⏹️ ▶️ John conditional expressions as in and you know like you know you do like
⏹️ ▶️ John double ampersand and double pipe for the or like in a big
⏹️ ▶️ John, Jonathan Mann if or whatever
⏹️ ▶️ John well pearl as no no surprise has XR operations, so to speak for that matter, but Pearl has logical
⏹️ ▶️ John XR, not just bitwise. And I’ve
⏹️ ▶️ John, Casey used logical XR. Oh,
⏹️ ▶️ John Yep. And then you have a big comment at the top that says, look how clever I am. Did you know this?
⏹️ ▶️ Casey So anyway, so I was both humiliated and then ultimately proud of myself for
⏹️ ▶️ Casey having realized as I was just kind of walking dad through the general gist of the algorithm, because dad has never written
⏹️ ▶️ Casey code, but he’s a reasonably tech savvy guy. And so if I give him the book, the broad strokes
⏹️ ▶️ Casey of something, he can usually follow along. And yeah, as I was describing it, I was like, wait, holy crap, I think that’s an XOR.
⏹️ ▶️ Casey I got to double check that and look that up. Turns out that made that code a lot quicker and a lot smaller.
⏹️ ▶️ Casey Who’d have thunk it?
⏹️ ▶️ John I’m glad none of us say XOR. Does anybody say that? Let’s just celebrate that.
⏹️ ▶️ Casey That sounds like something I would do, be it deliberately or otherwise. But no, it’s
⏹️ ▶️ Casey an XOR. Thank you very much.
⏹️ ▶️ John Yeah, your description of that algorithm just makes me think of all the ways it can fail. Setting that aside,
⏹️ ▶️ John it’s a perfect opportunity for you to make unit tests. Every time someone
⏹️ ▶️ John sends you a pair of images that fail, you add it to the test data and you tweak the thing. And then, you
⏹️ ▶️ John know, if you end up chasing your tail and you can’t get it to pass on all the images, then maybe it is actually time
⏹️ ▶️ John to dive in and try to get some kind of a machine learning thing.
⏹️ ▶️ John, Jonathan Mann Because then
⏹️ ▶️ John, Jonathan Mann then you’ll
⏹️ ▶️ John have a good data set of images that you think are the same. And then you could train the thing to also think they’re the same.
⏹️ ▶️ Casey I know that you are correct. I don’t think I am smart enough to handle
⏹️ ▶️ Casey anything related to machine learning. I’m sure that it’s not as complex as I’m painting it.
⏹️ ▶️ John Matzkoff Really? You could use that GUI app that Mike Mattis makes or whatever. You just connect a bunch of boxes together
⏹️ ▶️ John and throw a bunch of images at it, click on things and correct it, and then it out pops a model that you just jam into Core
⏹️ ▶️ John ML and you just run it. Jim Collins Just like that.
⏹️ ▶️ Casey Small matter of programming.
⏹️ ▶️ John Paul Matzkoff And then it gets bizarre results that you can’t explain. It’s like you’re already there.
Not Follow-Up: SwiftUI
⏹️ ▶️ Marco I do want to also echo your thoughts before we leave this entire
⏹️ ▶️ Marco genre of topics on Swift UI. It is very similar to what you said of
⏹️ ▶️ Marco like, it’s just like the first year of Swift, where it obviously is changing
⏹️ ▶️ Marco constantly. And there’s a lot of people having a lot of fun and
⏹️ ▶️ Marco getting a lot of stuff done, like writing tutorials and playing with it and
⏹️ ▶️ Marco making test apps or making real apps. But it is so not
⏹️ ▶️ Marco for me because it is still so much in flux that
⏹️ ▶️ Marco like you have to like the things that are changing between betas are like pretty
⏹️ ▶️ Marco significant things still. I am very tempted to rewrite my entire watch app in SwiftUI.
⏹️ ▶️ Marco I haven’t started that yet. I’m very, very tempted, but there’s so much churn in
⏹️ ▶️ Marco using SwiftUI right now and the tools are so early and the frame are just so early and all of this is going to be
⏹️ ▶️ Marco so much better next year when next year’s betas come out and they fix all the
⏹️ ▶️ Marco old they fix many of the problems with this version of SwiftUI. I’m probably not going to write any SwiftUI
⏹️ ▶️ Marco until next year because it’ll just be so much easier then.
⏹️ ▶️ Casey Yeah, that’s the thing is so I I don’t remember if it was Swift 2 or Swift 1 where I
⏹️ ▶️ Casey really start it was 2016 so I might have even been three what was the awful you would I can’t ask you to, but
⏹️ ▶️ Casey whatever the awful transition was, I think that was three to four, maybe? Maybe it was two to three, I forget
⏹️ ▶️ Casey now. But I was writing Swift professionally when there was that god
⏹️ ▶️ Casey awful transition where everything under the sun changed names. And that’s where Swift I think really got a bad
⏹️ ▶️ Casey reputation. The chat room is saying it was two to three, because everyone had to rewrite like half their
⏹️ ▶️ Casey darn code base. And it was very frustrating. Nevertheless, I’d been writing Swift, so
⏹️ ▶️ Casey starting maybe Swift 2. And early on, like the tooling wasn’t bad. I’m not trying to say it wasn’t bad,
⏹️ ▶️ Casey but the thing that drove me most nuts about it was even if we did get an error message,
⏹️ ▶️ Casey the error messages were completely and utterly inscrutable. There was no
⏹️ ▶️ Casey way to look at these error messages and figure out what in the name of Zeus’s butthole they
⏹️ ▶️ Casey were talking about. And that was
⏹️ ▶️ Casey, Marco frustrating. Is that much better
⏹️ ▶️ Casey now? Well, so that was very frustrating, but I actually feel, and I mean, granted, maybe this has
⏹️ ▶️ Casey to do with me getting to be a much more, I was gonna say senior, but I don’t know if that’s really what I mean, but a more experienced
⏹️ ▶️ Casey Swift developer. And now I feel like with normal, like vanilla Swift, I can look at a Swift error message,
⏹️ ▶️ Casey and not always, not always, but I’d say 60 to 80% of the time, which is not great, but 60
⏹️ ▶️ Casey to 80% of the time, I can put together what the actual issue is. And
⏹️ ▶️ Casey when I can’t, you just add type annotations all over the place, and usually it figures it out. But
⏹️ ▶️ Casey nevertheless, with SwiftUI, all this is to say with SwiftUI, I look
⏹️ ▶️ Casey at these error messages and I don’t have a clue what is happening. What?
⏹️ ▶️ Casey Huh? What? Where? What are you talking about?
⏹️ ▶️ Casey So often, the error is many lines away from where the error is being
⏹️ ▶️ Casey reported, which also happens in regular Vanilla Swift from time to time, but it is bad
⏹️ ▶️ Casey with SwiftUI. That’s really frustrating because it feels in so many ways,
⏹️ ▶️ Casey as a Swift person, it feels like a regression. You know, I’m like, I’m getting all of these,
⏹️ ▶️ Casey I’m getting all of these bad feelings from early days of Swift coming back and they’re not welcome
⏹️ ▶️ Casey here and I don’t want them. So that’s the tough thing, right? Because when SwiftUI is going well, and this is, I mean,
⏹️ ▶️ Casey like so many things in both computing and in life, when it’s going well, it is incredibly
⏹️ ▶️ Casey fun. And I mean that, I mean that word deliberately. I’m using that word deliberately. It is incredibly
⏹️ ▶️ Casey fun to be writing these UIs and watching them refresh instantly, and it’s so
⏹️ ▶️ Casey fast and so enjoyable and declarative and great. Then you put one
⏹️ ▶️ Casey thing in the wrong spot and everything falls apart. It falls apart in ways
⏹️ ▶️ Casey that are, I would argue, impossible to understand. That’s the thing
⏹️ ▶️ Casey that just sucks all the fun out of it. It sucks all the air out of the room and makes me agree with you, Marco, that
⏹️ ▶️ Casey yeah, you could, one, could write very good user interfaces with Swift
⏹️ ▶️ Casey UI today. But if you want to do that without ripping all your hair out and causing yourself
⏹️ ▶️ Casey to go bald, maybe wait a year.
⏹️ ▶️ Marco Even if you’re already bald, I can highly recommend waiting a year. Because everything
⏹️ ▶️ Marco you just mentioned is going to be better next year. Like to some degree, just because
⏹️ ▶️ Marco of the nature of Swift and because of the nature of compilers, there’s always going to be some degree
⏹️ ▶️ Marco of obtuseness and weird error messages possible if you put a character in the wrong spot or miss
⏹️ ▶️ Marco one thing in the language. Right now, I think it’s probably as bad as it’s ever going to be
⏹️ ▶️ Marco because it’s brand new. The tooling still hasn’t really caught up very much yet to it. Everything is very early.
⏹️ ▶️ Marco And so over time, the tooling is gonna get a lot better, which means the error reporting is gonna get a lot better.
⏹️ ▶️ Marco You’ll have more of those little fix it kind of buttons that you could just click a button to have to fix a typo or something like that, hopefully.
⏹️ ▶️ Marco but also like this is an incredibly complex pile
⏹️ ▶️ Marco of hacks on top of an incredibly complex language and so there’s there’s only
⏹️ ▶️ Marco there’s I think there’s only ever going to be like a certain amount of niceness that is possible
⏹️ ▶️ Marco to give in things like error messages in SwiftUI because SwiftUI
⏹️ ▶️ Marco is not just it isn’t some native thing that came easily to the language it’s very
⏹️ ▶️ Marco much like a very complicated pile of complexity.
⏹️ ▶️ Casey I both agree and disagree there. SwiftUI is built out of
⏹️ ▶️ Casey Swift, and that sounds stupid, but just there’s no, there’s magic-ish
⏹️ ▶️ Casey there, but if you follow, like you can see how the magic is held together, you know, and that’s not just because Swift is
⏹️ ▶️ Casey open source. I’m not talking about digging into like the Swift C++ compiler, God help me, no.
⏹️ ▶️ Casey But, you know, a lot of SwiftUI and like the DSL, it is, it
⏹️ ▶️ Casey is scrutable if you’re willing to put in the work. But I agree with you, Marco, that no regular
⏹️ ▶️ Casey human being, myself very much included, is going to put in the work to really and truly understand
⏹️ ▶️ Casey how like the SwiftUI DSL works. And so in that sense, What
⏹️ ▶️ John do you mean no regular human being? Anybody who knows? I think, I don’t
⏹️ ▶️ John want to talk about SwiftUI yet, because I still have some more research and session viewing that I’m watching.
⏹️ ▶️ John But the features that the Swift UI, that make the Swift UI
⏹️ ▶️ John DSL possible are language features. And anybody who knows
⏹️ ▶️ John Swift and is interested in writing Swifty code, if making your own DSLs becomes
⏹️ ▶️ John a Swifty thing, which I think it might, will know how it works. And will be able to write their own DSLs
⏹️ ▶️ John that look just like Swift UI, but do their own cool things. And so I don’t think, I mean, it may not
⏹️ ▶️ John be common. Most people won’t know, but anybody sort of skilled in the art will not be afraid,
⏹️ ▶️ John in the same way that people know how React works. Like, not most of them don’t, most of them are
⏹️ ▶️ John just futzing around, but if you start actually working with React in a serious way, you learn all
⏹️ ▶️ John it’s going to remain magical for very long. Once the… The normal people who know all the different corners
⏹️ ▶️ John of languages will also know this corner, because it’s part of the language, it’s not some one-off thing that was just done for SwiftUI.
⏹️ ▶️ Marco Well, I do think that there’s a certain amount of obsession with minimalism
⏹️ ▶️ Marco that we’ve had across the entire industry in the last decade or two
⏹️ ▶️ Marco that has crept into programming languages in a way that it seems
⏹️ ▶️ Marco at first like a good thing, but what actually has happened, there’s this huge
⏹️ ▶️ Marco downside of when there’s so much complexity beneath the surface,
⏹️ ▶️ Marco it makes it harder to understand what the system is doing and it makes it harder for new
⏹️ ▶️ Marco programmers to get up to speed with the language and to be productive in the face of problems. Now granted,
⏹️ ▶️ Marco I’m not saying the languages of yesteryear were easy in those ways all the time. I mean, I still remember, you know, we
⏹️ ▶️ Marco all probably remember when the first time we were programming something in C and CompSci, you know, 200 whatever,
⏹️ ▶️ Marco and you built something and run it and you see segmentation fault. And like, well that could
⏹️ ▶️ Marco be anything. And like, you know, There’s lots of
⏹️ ▶️ Marco hard learning in becoming an expert in programming. But I
⏹️ ▶️ Marco feel like a lot of our modern languages, and I think this even started with Rails,
⏹️ ▶️ Marco so not even that modern, but especially when you look at things like modern frameworks,
⏹️ ▶️ Marco minimal amount of code possible in the ideal case. And in some ways
⏹️ ▶️ Marco that’s good because minimal amount of user facing code shoving all the complexity to frameworks and stuff
⏹️ ▶️ Marco means you have less code to maintain. So in some ways that’s great, but
⏹️ ▶️ Marco when you need to like break outside of the bounds slightly or when you need to know how something works under
⏹️ ▶️ Marco the hood or when you hit an error or a bug that is because
⏹️ ▶️ Marco of something happening under the hood, it seems like these days we have more complexity
⏹️ ▶️ Marco than ever under that hood in this effort to make what’s above it seem so minimal.
⏹️ ▶️ Marco And I feel like we’ve raised the bar so much for what new programmers
⏹️ ▶️ Marco have to understand in order to understand everything their app is doing and be able to diagnose tricky problems.
⏹️ ▶️ Casey Yeah, I completely agree with you. And I was thinking about this a few days ago when I was also trying to work in the car when we were traveling
⏹️ ▶️ Casey somewhere else. And it occurred to me after having fought, and
⏹️ ▶️ Casey some of this was my own fault. But I had spent a trip to and from
⏹️ ▶️ Casey an hour each direction from home. So we drove an hour and I was working on this and then I put it away for a while. And then when
⏹️ ▶️ Casey we came back home, I was working on this for another hour. So that was like 130 miles or 200 kilometers
⏹️ ▶️ Casey of me just fighting with Carthage and Git and GitHub issues,
⏹️ ▶️ Casey, John which happens
⏹️ ▶️ Casey very rarely. But it happens to me like once or twice a year where everything just decides to crap the
⏹️ ▶️ Casey bed and I just have to like rebuild everything from scratch. And it is incredibly
⏹️ ▶️ Casey frustrating. And again, like, okay, you shouldn’t use third party libraries. Okay, whatever.
⏹️ ▶️ Casey I use third party libraries. I don’t use a lot. I only use a few. They’re extremely well tested. They work for me.
⏹️ ▶️ Casey May not work for you. Works for me. And yeah, okay. CocoaPods is the thing. I understand that. I’ve had even worse
⏹️ ▶️ Casey experiences with CocoaPods. I prefer
⏹️ ▶️ Marco Carthage. Coca Pods is the worst. The only thing worse than Coca Pods is homebrew.
⏹️ ▶️ Casey Oh homebrew has gotten so aggressive lately, but that’s let’s leave that for another time. But anyway, so yeah,
⏹️ ▶️ Casey I spent 130 miles, 200 kilometers, and as a passenger, just fighting bulls,
⏹️ ▶️ Casey fighting bull crap. And it’s so, so frustrating because
⏹️ ▶️ Casey it shouldn’t be this hard. Now on the flip side of the coin, I can suck in thousands of lines
⏹️ ▶️ Casey of code that hundreds of other people have toiled over for thousands upon thousands
⏹️ ▶️ Casey of hours in no time. So there are benefits that come from this. But yeah, I agree with you, Marco.
⏹️ ▶️ Casey The whole way up and down the stack has gotten, even in my career, which has only been what, like 15
⏹️ ▶️ Casey years or however long, Marco, you and I have been working at this, it’s only been 10, 15, 20 years that
⏹️ ▶️ Casey we’ve been doing this and it has gotten just way harder than it used to be. And
⏹️ ▶️ Casey before I give John a chance to teach us youngsters what’s going on, I wanted to call out,
⏹️ ▶️ Casey I think John had said a minute ago, well, people will be creating their own DSLs. I’ve been fascinated
⏹️ ▶️ Casey by watching John Sundell talk about rebuilding his own website
⏹️ ▶️ Casey by using Server-Side Swift and writing his own custom DSL to do it. And he has said
⏹️ ▶️ Casey numerous times that he’s going to open source this eventually. And when I say eventually, it sounds like
⏹️ ▶️ Casey it’s going to be soon, just not yet. And I’ll put a tweet in the show notes of an example of this that to me
⏹️ ▶️ Casey is just extremely, extremely cool. And I don’t know if I have
⏹️ ▶️ Casey the wherewithal to understand what, how, I understand what’s happening, but the how I’m unconvinced
⏹️ ▶️ Casey I would be able to figure out. But I feel like if I can look through John’s code when he
⏹️ ▶️ Casey open sources it, that’ll really help me understand how this is all held together. Anyway, John, tell us why we’re young and stupid.
⏹️ ▶️ John So the general point about abstraction and the
⏹️ ▶️ John more stuff than ever beneath you, That’s been true at every point of computers, obviously. Now, the sum
⏹️ ▶️ John total is still larger. So that point stands. Like, as time marches on, the
⏹️ ▶️ John amount of stuff that you’re building on top of increases, and we get to higher level stuff.
⏹️ ▶️ John That’s just always going to be true. And it’s just a question of, as we were discussing before, how mature are those
⏹️ ▶️ John abstractions? How mature is the tooling surrounding them? Because back in the day, it was like, how the hell am I going
⏹️ ▶️ John to deal with this C compiler, whatever? I can’t even tell what the CPU is doing. I have no access to the registers. garbage
⏹️ ▶️ John when something really goes wrong, I really need to get down to them anyway and I have to hang out. But you know, so it’s the same exact complaints, you just
⏹️ ▶️ John change around all the nouns and everything. And right, but the stack does get bigger, right? And at various
⏹️ ▶️ John times, like, oh, now C is mature and people forget about the lower abstraction. It’s so good, you don’t really need
⏹️ ▶️ John to worry about that stuff, except for in a few weird cases, and then we march up the stack. And as you guys both pointed out, SwiftUI
⏹️ ▶️ John is super young. So of course, it’s going to be the most painful time to be doing anything with it. The flip side of that, which I think I mentioned
⏹️ ▶️ John with with Swift as well is if you’re into this type of thing, this is the time to be able to influence Swift UI.
⏹️ ▶️ John Give your input on how you think it should work. Introduce your ideas into the community, you know, contribute your code
⏹️ ▶️ John to it, whatever you want it to be. Swift is open, the evolution process is open. If that’s
⏹️ ▶️ John something you’re interested in, language for language sake, you know, frameworks for framework sake, if you’re one of those
⏹️ ▶️ John type of people who likes to develop those, you would definitely get in early. And yes, it’ll be super painful and everything, but this is the time where you can
⏹️ ▶️ John have the most influence just as you could have back in Swift 1 and 2 or whatever. But if you just want to use it as
⏹️ ▶️ John a tool, then wait for it to mature. And Marco’s other point about the sort of
⏹️ ▶️ John fashion and culture of minimalism and the whole phrase of DSL, which I should really put
⏹️ ▶️ John scare quotes around because I’ve never liked that phrase and it is tied up with a bunch of specific fads
⏹️ ▶️ John or whatever. That is also a thing. And those kind of fashion trends in the tech world
⏹️ ▶️ John come and go. I think SwiftUI is, it’s a little bit in the
⏹️ ▶️ John vein of that kind of minimalism, but it’s, I think it’s more in the vein of adopting
⏹️ ▶️ John some of the fads from the web world and bringing them over. But you know, like I said, I’m still
⏹️ ▶️ John digging into SwiftUI and I want to sort of get my brain around it in a more significant way before I have
⏹️ ▶️ John anything more particularly intelligent to say about it. There was, speaking
⏹️ ▶️ John of Sundell, Sundell, Brent Simmons was on, oh, it’s Swift by Sundell,
⏹️ ▶️ John the same one you were on, Casey. What’s the name of that podcast?
⏹️ ▶️ Casey Yeah, it’s Swift by Sundell.
⏹️ ▶️ John Yeah. And they were talking about SwiftUI a little bit. And they were mentioning, like,
⏹️ ▶️ John thinking off into the future, how, what a great fit it will be. I don’t think it’s going to be next year. They were a little
⏹️ ▶️ John optimistic thinking it would be next year. But I think, like, in two years, when the sort of Swiftified
⏹️ ▶️ John equivalent of core data comes and ties into SwiftUI, so you can sort of define your models
⏹️ ▶️ John with a domain specific language, quote unquote, and tie that to your SwiftUI views
⏹️ ▶️ John in a cool way. You know what I mean? You can see how it might come together if you buy into this way of programming
⏹️ ▶️ John and assume the tooling will get better and assume all the blah, blah, blah. You can see how a Swifty,
⏹️ ▶️ John SwiftUI data layer would fit together with the UI layer in a really cool
⏹️ ▶️ John way. And again, I don’t think that’s coming next year. Next year, they should just work on SwiftUI and get the tools and everything better. And maybe
⏹️ ▶️ John the year after that there’s a data layer, but I’m already looking forward to that.
⏹️ ▶️ Marco For me, I have a hard time getting excited about that kind of stuff usually because it’s actually kind of similar
⏹️ ▶️ Marco to SwiftUI, although a little bit worse in this way. Usually you can only
⏹️ ▶️ Marco really take advantage of it if you’re starting an app from scratch. There’s usually not a lot of
⏹️ ▶️ Marco easy ways to take an existing code base and migrate it to a whole new data layer.
⏹️ ▶️ John That’s the beauty of this approach, though. Just like with SwiftUI, you can just use it in one place. It’s not, it’s not, you
⏹️ ▶️ John have to recommit your entire app to it. Right. So if done in the, in the, in the right way, you don’t have to say, Oh, I’ve
⏹️ ▶️ John got to just throw away all my model code and replace it all with this. You might be able to take your existing model code
⏹️ ▶️ John and like have a shim or a series of protocols that allow it to conform so you can just chuck it over the wall
⏹️ ▶️ John to something that understands how to bind it to a Swift UI view. But really it’s your model underneath, you know what I mean? Like there’s,
⏹️ ▶️ John there are ways to do it. That won’t be as painful. And I don’t, they’re not easy. Right. But
⏹️ ▶️ John the job they’ve been able to do with Swift UI, making it so you can adopt it in small
⏹️ ▶️ John chunks, makes me hope that that philosophy will imbue whatever hypothetical
⏹️ ▶️ John Swifty data layer that we’re speculating about.
⏹️ ▶️ Casey I just want to reiterate what you said. The episode with Brent Simmons of the Swift by Sundell podcast,
⏹️ ▶️ Casey I thought was very good. I really enjoy listening to Brent’s take on things because
⏹️ ▶️ Casey he has the experienced and learned opinion that
⏹️ ▶️ Casey I long to get better at having, but am too young and stupid to have yet.
⏹️ ▶️ Casey, Marco So. Yeah, I mean, he has wisdom. Like what you need. Wisdom
⏹️ ▶️ Marco is a better word for it, yep. So much of, you know, success or failure in this business
⏹️ ▶️ Marco is not about like specific, you know, language or technical achievements. It’s about
⏹️ ▶️ Marco like bigger picture strategies, figuring out what to do, what not to do, what’s important,
⏹️ ▶️ Marco what’s not important. And listening to Brent and reading his blog posts and everything,
⏹️ ▶️ Marco I learn a lot about that kind of stuff. So
⏹️ ▶️ Marco we’ll put it into his blog as well. It’s always a good read.
⏹️ ▶️ Marco We are sponsored this week by ClearBank. ClearBank is changing the way entrepreneurs
⏹️ ▶️ Marco raise money with equity-free capital. Co-founder Michelle Romano, star of Canada’s
⏹️ ▶️ Marco Dragon’s Den, which is the Canadian version of Shark Tank, co-founded ClearBank with her partner Andrew D’Souza
⏹️ ▶️ Marco after seeing how many companies were willing to part with precious equity in exchange for a bigger marketing
⏹️ ▶️ Marco budget. ClearBank believes that founders shouldn’t give up a piece of their company to fund marketing and
⏹️ ▶️ Marco inventory expenses. ClearBank makes equity-free investments from $10,000 to $10 million
⏹️ ▶️ Marco and can get you a term sheet in less than 20 minutes. They charge a small, flat fee for the
⏹️ ▶️ Marco capital, and you pay them back using a win-win rev share. This is not a loan, there’s
⏹️ ▶️ Marco no interest rate, no fixed maturation date, no personal guarantees, no credit checks, and no
⏹️ ▶️ Marco financial covenants. ClearBank has relationships with marketing agencies, e-commerce professionals,
⏹️ ▶️ Marco venture capitalists, accountants, and more, giving you a true unfair their advantage in the market.
⏹️ ▶️ Marco ClearBank invested over $150 million in 2018 and is on track to invest over $1
⏹️ ▶️ Marco billion this year. Some notable portfolio companies include Public Goods, Lease Asleep,
⏹️ ▶️ Marco Le Tote, Buffy, just to name a few. So if you’re doing over $10,000 a month in revenue, you’re on track to invest in a company that’s a little bit more than
Follow-Up: Mimeo photo book
⏹️ ▶️ Marco Find out how you can receive ClearBank Capital by getting your 20-minute term sheet at clearbank.com
⏹️ ▶️ Marco Atp that’s bank at the end with a C instead of a K. So clear B a n c
⏹️ ▶️ Marco dot com slash ATP Clear bank stop pitching and get back to doing
⏹️ ▶️ Marco what you love growing your business
⏹️ ▶️ Casey All right now that we’re roughly 45 minutes in you want to start some follow-up
⏹️ ▶️ John sure You two have such problems with a very simple show format that we’ve been doing for
⏹️ ▶️ John, Jonathan Mann Like,
⏹️ ▶️ John oh, Marko’s going to talk about his app a little bit, then we’ll talk about this, then Casey’s going to talk about his image-jacking algorithm, let’s talk about
⏹️ ▶️ John SwiftUI. It’s not a complicated format. I don’t understand.
⏹️ ▶️ John Like, usually you get like one, one and a half of those, but now you’re just like jamming three of them. And soon it’s going to be the whole show.
⏹️ ▶️ John And then it’s going to be like, well, no time for follow-up. We’ve gone for two hours to talk about SwiftUI.
⏹️ ▶️ Casey All right, which one of you wants to talk about Mimeo fonts and watermarking? Can you guess?
⏹️ ▶️ Casey I’m assuming it’s you.
⏹️ ▶️ John Yeah. Do you remember Mimeo? Our friends at Mimeo? No. That’s, so I’m
⏹️ ▶️ John back from my vacation. I’m making photo books and Mimeo is the company that I tried.
⏹️ ▶️ John It used to be the, do the printing for Apple’s photo book. So I printed one of my existing photo books
⏹️ ▶️ John with Mimeo and compared it to the Apple one and it was nearly identical, save one extra Mimeo logo on the back.
⏹️ ▶️ John And so I said, all right, great. Now, this was like last year. Now, next year when I go to Long Island,
⏹️ ▶️ John I’ll use Mimeo for my book. So I did that. I’m making the book. Wait, you got a
⏹️ ▶️ Marco test book of a book you already had just to try it out?
⏹️ ▶️ John That’s so John. That’s incredible. So anyway, I’m making the book. I’m using their UI,
⏹️ ▶️ John which in some ways is better than Apple’s, but in many ways is worse. But it is less buggy, that’s for sure, which
⏹️ ▶️ John is nice. I just questioned some of the UI features. But anyway, I’m placing images, I’m making pages.
⏹️ ▶️ John Downsides I saw when I was making it is like, I think the page limit might be lower, but whatever,
⏹️ ▶️ John I’ll make it work. So I’m all done with the book, except for the title page, usually
⏹️ ▶️ John for last. I go to title page, I’m gonna type the imaginatively titled Long Island 2019 title to
⏹️ ▶️ John match all my other Long Island books. And I go to type it there and there’s a text box and I type Long Island 2019
⏹️ ▶️ John and I select all when I go to the font menu to pick my normal font, which is like Helvetica
⏹️ ▶️ John something, whatever. And Helvetica is not in the font list.
⏹️ ▶️ John Oh no. You know what’s in the font list? None of the fonts on my system, that’s for sure. Just this
⏹️ ▶️ John weird set of fonts that are like part of the Photos plugin, right? It
⏹️ ▶️ John doesn’t look at your system fonts at all. It comes with its own fonts, most of which are fine and look nice, but
⏹️ ▶️ John Helvetica is not on the list. This is bad. This is bad for that
⏹️ ▶️ John book matching all my other books. It was when I printed my, my reprinted my other book, I was printing it from a PDF because you
⏹️ ▶️ John could export the old things to PDF. And then I just chucked the PDF to Mimeo and they, you know, imported and make
⏹️ ▶️ John the book out of it. So this was bad. So, you know, I, I looked for
⏹️ ▶️ John lookalike fonts and I just couldn’t bring myself to use any lookalike fonts. So I had to bite the bullet and
⏹️ ▶️ John export the cover image as a ping,
⏹️ ▶️ John, Jonathan Mann bring
⏹️ ▶️ John it into Photoshop, put the title in Helvetica, like in the right
⏹️ ▶️ John place, which was really hard because the image I had for the cover wasn’t exactly centered on the cover. So
⏹️ ▶️ John it took me like eight tries to get it lined up and sized correctly
⏹️ ▶️ John and then just delete the text box and have the sort of, I did baked in subtitles, Casey,
⏹️ ▶️ John just for you, burned in subtitles. What a burn.
⏹️ ▶️ Casey Yeah, yeah, yeah, yeah, yeah.
⏹️ ▶️ John Hard-coded, what is it, hard-coded Norwegian subs? That works more, I’m rolling when I need them.
⏹️ ▶️ John So that was a painful process. and the text on the spine, same font
⏹️ ▶️ John problem, but I don’t have a way to influence that, it’s not a photo. So the spine font is going to be incorrect,
⏹️ ▶️ John which is a shame. Mimeo, please, please use the system fonts. I know it’s probably some weird licensing
⏹️ ▶️ John thing that I don’t understand, please, please use the system fonts because I don’t want to go through what I went through with
⏹️ ▶️ John the cover next year. Second thing is, I’m like, okay, before I order this book, let me just do
⏹️ ▶️ John a PDF export because I always keep PDFs of all this stuff just in case the books
⏹️ ▶️ John get water damage or the house burns down, at least I’ll have the PDFs so I can interior reprint them. Or
⏹️ ▶️ John just basically preserving all the work I’ve done to select and size and crop and arrange all the photos because that’s
⏹️ ▶️ John a lot of work too. And I exported the PDF and instead of it making the PDF
⏹️ ▶️ John on my computer, it’s like, enter your email address and we’ll email you a download link. I’m like, all right, well, this is weird, whatever, I don’t know why you don’t
⏹️ ▶️ John just make the PDF on my computer. Like, you’re right here, you’re a native app,
⏹️ ▶️ John, Jonathan Mann you’re running on my computer.
⏹️ ▶️ John So I give the email address, it emails me, like I downloaded a PDF downloads, I open it up, every single
⏹️ ▶️ John page is covered with a Mimeo watermark across like repeated on an angle across the entire thing. Nice.
⏹️ ▶️ John That is not good, because that doesn’t serve as a good backup really. I would have to redo, I couldn’t print
⏹️ ▶️ John a book from the watermark thing. So good news, bad news. Good news is the watermarking
⏹️ ▶️ John is going away. There was some weird reason why they had to do it
⏹️ ▶️ John and that reason is over and everyone hates it. So the watermarking, by the time you listen to this, In fact, Mimeo
⏹️ ▶️ John may have removed the watermark from the PDF. Even better news is someone at Mimeo was kind enough to send me a non-watermarked PDF
⏹️ ▶️ John of my thing. So I have a nice backup of it. Bad news is the font situation stands. So
⏹️ ▶️ John I have ordered my book. I’ll let you know when it arrives, how it looks with its hard.
⏹️ ▶️ John God, Merlin, where are you? You say you listen to the show. Jump in the chat, hard-coded Norwegian subs.
⏹️ ▶️ John I don’t know this. You two don’t even know what I’m talking about. I don’t know why I bother. Well, anyway, Casey
⏹️ ▶️ John knows about burned in subtitles.
⏹️ ▶️ Casey Mm-hmm. Oh goodness.
Follow-Up: Sony cameras
⏹️ ▶️ Casey Now, sorry, tell me about your cameras, John. The Sony, I don’t even, these names are so terrible.
⏹️ ▶️ Casey What happened to Sony having good names? Where were they just whining about this?
⏹️ ▶️ John was just getting- The names aren’t bad. They make some kind of sense. This was on Cortex.
⏹️ ▶️ Marco That’s what it was. And yeah, and it’s like, I think like we all think back
⏹️ ▶️ Marco like Walkman and Trinitron. Those were two products over the last like 40 years.
⏹️ ▶️ Marco, John Well, but the
⏹️ ▶️ John Sony name, the Sony camera equivalent to that is Alpha, because Trinitron was not the name a TV
⏹️ ▶️ John is you can say what’s what TV do you have? I have a Trinitron. There was a million Sony models. It was Sony Trinitron and then
⏹️ ▶️ John an alphabet soup. So these are all Sony Alpha alphabet soup. These names aren’t actually that
⏹️ ▶️ John bad. They are about the same as modern car names. In fact, they actually are similar
⏹️ ▶️ John to car names. And I blame Canon for a little bit of the Roman numeral crap because
⏹️ ▶️ John they were there first. Anyway, camera fall from last week. Suggestions for other cameras, one
⏹️ ▶️ John suggestion is actually related to naming. Someone suggested to me the Sony
⏹️ ▶️ John a6400 and I said to them, do you mean the 6500? Because we talked about it on the show and they said,
⏹️ ▶️ John no, I don’t mean the 6500. I mean the 6400 Sony and it’s infinite wisdom. So they
⏹️ ▶️ John had like the the alpha 6000, which is like the predecessor of my computer sort of size and shape
⏹️ ▶️ John many years ago. And that was followed up by the 6300, which is what I have. And it was eventually which
⏹️ ▶️ John is like what I have, but it has in body stabilization. After the 6500, they released the 6400. Cool.
⏹️ ▶️ John And you’re like, OK, well, maybe, you know, the number doesn’t always go up. Maybe it’s the model that slots in right between the 63 and 65. Right,
⏹️ ▶️ John it’s like a lower end model? No, it’s not. It’s better than the 6500 in all ways, except
⏹️ ▶️ John it doesn’t have the shooting buffer is a little bit smaller. It doesn’t have in body stabilization,
⏹️ ▶️ John but has other advantages. And it has the smaller grip of the 6300. Like, it is kind of in-betweeny,
⏹️ ▶️ John but the bottom line is, if you had to pick one of these models to get, unless you really, really
⏹️ ▶️ John need in-body stabilization or the bigger buffer so you can shoot, like, literally 700 pictures before the buffer fills
⏹️ ▶️ John up or something, get the 6400. Because it has the better processor, better motion tracking,
⏹️ ▶️ John the same sensor, better battery life, it just doesn’t have in-body stabilization.
⏹️ ▶️ John So I’m not doing any camera purchase
⏹️ ▶️ John stuff, but if I had known this before the vacation, if I had known this model even existed, like I probably
⏹️ ▶️ John saw the news fly by, but I’m like, 6,400, we’re on 6,500 now. I don’t need to be interested in that model. Anyway, the big thing it has going for
⏹️ ▶️ John it is the big beefy process from like the A9 or whatever that does
⏹️ ▶️ John this amazing object motion tracking autofocus and a
⏹️ ▶️ John slightly better color reproduction. It’s that inside this little dinky camera plus a bunch of other tweaks.
⏹️ ▶️ John So if I needed to get another one of these little cameras, that’s the one I’m still hoping they’ll, you know,
⏹️ ▶️ John do a major upgrade to the sensor, but it doesn’t look like that’s in the cards because 6400 is actually a pretty recent model. Second thing I discovered
⏹️ ▶️ John about the a seven R four whose name I kept getting wrong. And that’s the one with the Roman numerals at the end.
⏹️ ▶️ John A seven R I V. Uh, yeah. Looking at reviews of that camera, the problem
⏹️ ▶️ John is that it just has too many damn pixels
⏹️ ▶️ John, Jonathan Mann in the sensor.
⏹️ ▶️ John Like I don’t think I’m ever gonna buy that camera unless I have a major change in disk space
⏹️ ▶️ John Like as someone humorously pointed out in their YouTube video The JPEGs of that camera
⏹️ ▶️ John are bigger than the raws from most other
⏹️ ▶️ John, Casey cameras Like the
⏹️ ▶️ John JPEGs are 30 megs each.
⏹️ ▶️ Casey, John god That’s double
⏹️ ▶️ Casey the size of raws on my camera.
⏹️ ▶️ John That’s what I’m saying So I so I mean I shot with raw a little bit with my camera and the images were just too big and I
⏹️ ▶️ John wasn’t getting any of the benefits that to account for that. So I quickly switch back to JPEG,
⏹️ ▶️ John right? But the JPEG, it’s a 61 megapixels. It’s
⏹️ ▶️ John tremendous, right? Aside from the camera itself being large and all those other things,
⏹️ ▶️ John it’s I think that’s I think that’s too much for me. Now,
⏹️ ▶️ John what the alternative that a lot of people talking about is is the like,
⏹️ ▶️ John there is no alternative to that right now. But there is is last year’s or last model’s alternative, which is the A7
⏹️ ▶️ John III without the R. So there used to be the A7R III and the A7 III.
⏹️ ▶️ John The A7 III is like the A7, but the sensor has what, like a quarter
⏹️ ▶️ John as many pixels? Like it’s like 20 megapixel, 21 megapixel instead of 42?
⏹️ ▶️ Marco Yeah, it’s less megapixels, but otherwise everything else is pretty much the same. So you get
⏹️ ▶️ Marco better battery life and faster processing and a lot of advantages over the bigger model, actually.
⏹️ ▶️ John Yeah, and bigger pixels, right? I mean, I would assume, like it’s the same sensor size and there are fewer pixels. So it stands
⏹️ ▶️ John to reason those pixels are bigger. So yeah, so that’s, there is no
⏹️ ▶️ John A7 IV without the R. But in theory, if they follow their
⏹️ ▶️ John naming pattern, there should eventually be an A7 IV, which is like the A7R IV, but with a sensor
⏹️ ▶️ John with, you know, 20 or not, maybe I guess 30 megapixels or something like that. I don’t know if that’s in the cards.
⏹️ ▶️ John I don’t follow the camera industry to know if that’s coming, but that sounds like a much more attractive,
⏹️ ▶️ John way too expensive camera for my needs. So I’m keeping my eye out for that.
⏹️ ▶️ Marco Yeah, based on past Sony actions, it is very likely that that will come out after, like
⏹️ ▶️ Marco some deal of time, maybe six months after the A7R IV. When did the R
⏹️ ▶️ Marco IV come out? Pretty recently,
⏹️ ▶️ John like a month ago or a couple weeks ago.
⏹️ ▶️ Marco okay. Yeah, well, because the R III came out somewhere around late 2017. Um, so
⏹️ ▶️ Marco yeah, so yeah, they’re on roughly like a year and a half cycle on these
⏹️ ▶️ Marco usually. So uh, and then, and then the a seven three I think came out maybe like three to six months later or something like that.
⏹️ ▶️ Marco So sorry if I’m getting all this wrong, this is all from memory. But uh, yeah, it stands to reason that, you know,
⏹️ ▶️ Marco maybe later this winter or in the spring they would probably do an a seven four and
⏹️ ▶️ Marco for your priorities, that’s probably the better buy.
⏹️ ▶️ John Yeah. And finally, lots of people are pointing out the rx 10. There’s an RX 10 for
⏹️ ▶️ John otherwise known as the RX 10 IP. Yeah. That’s their super zoom, right? Yes. So they have a super
⏹️ ▶️ John zoom and I’ve known about the super zoom, I knew about it, you know, before I bought this camera, like it’s huge.
⏹️ ▶️ John Like it’s gigantic. Yes. It’s like, it is the superest of super zooms, but it’s like bigger than
⏹️ ▶️ John the, the, the A7. It’s just tremendous. It’s not an interchangeable lens camera, right? But
⏹️ ▶️ John it is a huge lens and the camera itself is huge and the body is huge and everything about it is giant.
⏹️ ▶️ John is just like I suppose I should look at some image comparisons. I suppose like for the
⏹️ ▶️ John price of that camera, it may be less than the price of a high quality of a zoom
⏹️ ▶️ John lens of equivalent. Well, certainly is less than than the price of a zoom lens with that kind of range, because the range is
⏹️ ▶️ John crazy. I think it goes to like 600 millimeters or something like that. But that’s
⏹️ ▶️ John it’s it’s like a single purpose camera like you never you can never slap on a good
⏹️ ▶️ John prime lens on there to take like portrait photos. They’re like it is what it is, it’s a super zoom, but it’s just so
⏹️ ▶️ John darn big. Like it’s too. I don’t you know, I’m not even sure I can go up to an
⏹️ ▶️ John A7 level size and this thing just it’s huge. So that’s
⏹️ ▶️ John I know about that model. I know about that whole line and I just feel like it’s not for me. It’s not the right set of trade
⏹️ ▶️ John offs. And then finally I didn’t put the notes but someone was nice enough to send me a list of all
⏹️ ▶️ John my alternative options for better zooms. Cause I mentioned, I’m not sure what I would get if I tried to get a better zoom. They just
⏹️ ▶️ John listed them out, conveniently putting what percentage larger each one is than my
⏹️ ▶️ John, Jonathan Mann current zoom. And it gets
⏹️ ▶️ John ridiculous. Like the top end one is literally three times the length of my current zoom.
⏹️ ▶️ John So yeah, there is like, there’s one option that is like 30% longer, that is better
⏹️ ▶️ John that I may consider. but, and it’s 30% longer and also
⏹️ ▶️ John thicker as well. God, there’s no way to get out of this conversation. Anyway, moving on, there are many options
⏹️ ▶️ John for me to spend money on cameras and I’m not doing either one. We’re gonna, I’m still getting
⏹️ ▶️ John myself psyched up for the Mac Pro configurator, if that ever appears on
⏹️ ▶️ John, Marco Apple’s website.
⏹️ ▶️ Marco Oh goodness. And by the way, and I do think like, you know, for your zoom range needs, I think you’ve had two very good ideas.
⏹️ ▶️ Marco Number one is you should avoid, you know, individual like fixed lens cameras
⏹️ ▶️ Marco like the RX 10 Super Zoom series. Number two, your idea that you kind of brushed by last
⏹️ ▶️ Marco week of like maybe you just have two camera bodies and one of them has a telephoto and one of them has a closer lens. That’s a really
⏹️ ▶️ Marco good idea actually
⏹️ ▶️ Marco, John for your needs.
⏹️ ▶️ John I’m still thinking about that. That’s why I mentioned the 6400 because I wouldn’t get rid of my 63, I would get the 64 and
⏹️ ▶️ John then I don’t have to. But then I started thinking about, but which one gets the prime lens on it? You’re like, oh, well you put the zoom
⏹️ ▶️ John on the 64 because that has the motion tracking like, oh, well the 64 also has better color processing slightly. So you wouldn’t
⏹️ ▶️ John want that with your prime lens?
⏹️ ▶️ Marco Easy, you put the prime lens on the one that has more resolution because- They’re
⏹️ ▶️ Marco the same. Oh, well then get a camera with higher resolution and put the prime lens on that one. Because the zoom
⏹️ ▶️ Marco lenses have such terrible like actual effective optical resolution compared
⏹️ ▶️ Marco to primes. Like most zoom lenses I think are lucky to get like 20 megapixels of actual
⏹️ ▶️ Marco resolution out of them. Usually it’s far less than that. Like the good ones can get in that range, but only like
⏹️ ▶️ Marco the only the very best ones. You know, so you’re, you’re kind of wasting your megapixels.
⏹️ ▶️ Marco If you have like a really high megapixel sensor with a zoom lens on it usually, or at least you’re not getting anywhere near its
⏹️ ▶️ Marco full capacity. Um, so that, that would actually be a fairly easy distinction for me at least. But,
⏹️ ▶️ Marco um, also I would say that the, the category of zoom lenses that you’re currently in
⏹️ ▶️ Marco is the like base model, but like slightly power user model of like,
⏹️ ▶️ Marco I want a big range, but I’m not willing to, you know, carry or pay for some kind of giant thing. Then
⏹️ ▶️ Marco on the other end, you have like the pro 70 to 200 F 2.8 zooms that most
⏹️ ▶️ Marco pro photographers use. The white
⏹️ ▶️ Marco, Jonathan Mann one. Don’t
⏹️ ▶️ Marco, Jonathan Mann Yeah, don’t get the white. Don’t get the white line. Don’t get well, maybe too
⏹️ ▶️ Marco much. What you want I think is the F four version of those. Almost every
⏹️ ▶️ Marco line of lenses has the big F 2.8 70 to 200 zoom and they’re big and they’re heavy and they’re very
⏹️ ▶️ Marco expensive. but usually there’s an F4 version and there is one here, I’m pretty sure.
⏹️ ▶️ Marco And that is usually optically very similar in quality.
⏹️ ▶️ Marco It just only goes to F4 instead of F2.8. And for your purposes, where you’re shooting, most of the time using this, you’re shooting
⏹️ ▶️ Marco in the sunlight by the ocean. Like you don’t need F2.8 for most things. And
⏹️ ▶️ Marco so much, it usually ends up being like half the weight and usually about half the cost. And
⏹️ ▶️ Marco that’s usually the better bet.
⏹️ ▶️ John Yeah, that option is 62% longer than my current lens, by the way, and it’s 1500 bucks.
⏹️ ▶️ Marco Right, well, but compared to probably a lot bigger and heavier for the 2.8 version.
⏹️ ▶️ John Well, the other option before that is only 33% longer and it’s $1200. That’s the 70 to 300, and
⏹️ ▶️ John it has more reach. Oh, and that’s like F4 to 5.6, something like that,
⏹️ ▶️ Marco right? That might not be bad, I haven’t looked at
⏹️ ▶️ Marco the reviews, but usually the optics, usually the F4 version better achieves
⏹️ ▶️ Marco what you want. Yeah.
Follow-Up: 🇩🇪 modem people
⏹️ ▶️ Casey Rene Schneider wrote in to tell us, since we were wondering where
⏹️ ▶️ Casey all these new Apple employees due to the Intel modem acquisition would be sitting, pretty far away from San Diego.
⏹️ ▶️ Casey The biggest part of them is probably in some German town near Munich. Intel’s
⏹️ ▶️ Casey mobile communication division was originally part of a German semiconductor manufacturer Infineon, which was sold to Intel
⏹️ ▶️ Casey in 2011. So these individuals have now been sold for the second time in this
⏹️ ▶️ Casey decade. I did not see that coming.
⏹️ ▶️ John I think there are a bunch of them in San Diego, but maybe I’m misremembering the city name. No one came in to tell us the actual city
⏹️ ▶️ John name. But yeah, apparently most of them are in Germany, so there’s that.
⏹️ ▶️ Casey Indeed. Marco, why don’t you tell me about your Dropbox in iCloud Drive hack
⏹️ ▶️ Marco thing? Yeah, so I had mentioned last week how I had this theory and I wanted to
⏹️ ▶️ Marco know if anything weird might happen of why don’t I just create a folder named Dropbox
⏹️ ▶️ Marco in my iCloud Drive and hard link it to home slash Dropbox and that way I would have
⏹️ ▶️ Marco Dropbox still existing, like I would have like the file paths all the same. So I wouldn’t have to change
⏹️ ▶️ Marco all my muscle memory or any kind of any kind of shell scripts that I have that refer to home
⏹️ ▶️ Marco slash Dropbox slash something but I could have iCloud Drive doing the actual syncing I can uninstall Dropbox
⏹️ ▶️ Marco and a few people wrote in and there was this article on Michael size website
⏹️ ▶️ Marco that kind of collect all the links but basically this won’t work for
⏹️ ▶️ Marco a pretty hilarious reason it turns out that you can’t have a folder
⏹️ ▶️ Marco named Dropbox in iCloud Drive, it won’t sync. iCloud
⏹️ ▶️ Marco Drive has a has a list of like blacklisted file names and file name patterns that
⏹️ ▶️ Marco it just won’t sync files or folders that contain these words in their names. And I’ll
⏹️ ▶️ Marco link to a list of the full name in the show notes. But Dropbox is one of these names. iCloud Drive
⏹️ ▶️ Marco will not sync a folder named Dropbox, no matter what you do with it.
⏹️ ▶️ John Yeah, the other exceptions are what you would think is exact match case insensitive Dropbox OneDrive.
⏹️ ▶️ John I photo library, which is funny. I drive sync dot
⏹️ ▶️ John Dropbox dot Dropbox dot Adder. There’s like contains
⏹️ ▶️ John dot no sync anywhere is that you BD, which is ubiquity demon, of course, is
⏹️ ▶️ John the DS store. If the document if the file name begins with open parents, a document
⏹️ ▶️ John being saved, It begins with that string and then there’s a whole list of extensions mostly having to do with photos.
⏹️ ▶️ John So this is one of those things where
⏹️ ▶️ John Like you talk about the drop the old drawbox from a folder that syncs right there are
⏹️ ▶️ John always weird exceptions like this but you would hope the exceptions are Obscure
⏹️ ▶️ John and not likely to be run across so for example dot UBD Whatever like it fine your your
⏹️ ▶️ John work at Apple you work on the ubiquity demon you want to make a special file or.nosync.
⏹️ ▶️ John You want to make some special file name extensions that no one’s ever actually going to use, but for the purposes of the system itself, it excludes.
⏹️ ▶️ John Once you start including names of competitors’ products or things that people
⏹️ ▶️ John might actually want to call their own folders, like even if the Dropbox, the company
⏹️ ▶️ John didn’t exist, I can imagine making a folder called Dropbox. If you didn’t know the company existed, you can make a folder.
⏹️ ▶️ John It’s just, it’s a word that someone might type for a folder name. If there’s gonna be this long a list of
⏹️ ▶️ John exclusions, it needs to be surfaced somewhere in the UI. Like, for example, if you
⏹️ ▶️ John make a folder called Dropbox, I would hope the thing would pop up, maybe it does this, I don’t know. I would hope it would pop up dialogue and
⏹️ ▶️ John say, just so you know, for weird political reasons, we’re not gonna sync
⏹️ ▶️ John, Jonathan Mann that folder, so you might
⏹️ ▶️ John wanna give it a different name. Like maybe that’s why there isn’t, if there is no UI, maybe that’s why, because how do
⏹️ ▶️ John you explain this? Well, this list is long, and it contains things that I feel like are legit. Like temp,
⏹️ ▶️ John you know,.tmp. people make files with.tmp extensions. Like, I suppose
⏹️ ▶️ John vaguely nerdy people do, whatever. But anyway, that is weird. We will put the link in the show notes. So
⏹️ ▶️ John beware iCloud Drive is stranger than you imagine. Oh,
⏹️ ▶️ John and related to that, Marco tab completing his symlink and not having a tab complete
⏹️ ▶️ John to the slash. And I mentioned, I thought there was bash surely has a feature to change the setting. Apparently it does. If
⏹️ ▶️ John you put this particular incantation in your.inputrc file, set marked symlink
⏹️ ▶️ John directories with hyphens between the last three words, and set it to on.
⏹️ ▶️ John That apparently will do it. We’ll put a link in the show notes if you’re interested in changing how Bash works when you have completing symlinks.
⏹️ ▶️ Marco It’s always good to read out shell commands in a podcast.
⏹️ ▶️ John Yeah, well, you know, pretty soon Siri will be executing them for us, so. Oh god.
Follow-Up: Siri “grading”
⏹️ ▶️ Casey Apple has stopped letting contractors listen to Siri voice recordings and will offer
⏹️ ▶️ Casey opt-out later because Apple doesn’t believe in web services and so it has to go in an iOS release,
⏹️ ▶️ Casey I guess. But this is with regard to the contractors apparently listening in to some of our conversations, sort
⏹️ ▶️ Casey of, kind of, and everyone understandably getting their tinfoil hats
⏹️ ▶️ Casey on, as did I, but I guess that’s not happening anymore, as per Apple.
⏹️ ▶️ John Well, I mean, temporarily suspended. Like it’s a reasonable reaction, which is, uh, everyone
⏹️ ▶️ John hates this thing we’re doing. Let’s just stop doing it and then regroup and figure out a better thing. Because
⏹️ ▶️ John as you noted, Casey, they’re not exactly nimble on their feet when it comes to rolling out features like this.
⏹️ ▶️ John And they probably shouldn’t be because you could mess things up. So the best thing to do is just stop it, stop doing it, tell everyone you stopped doing
⏹️ ▶️ John it, actually stop doing it, and then probably roll out some improved
⏹️ ▶️ John way to, you know, communicate this and a way to opt out of it and so on and so forth. Someone did point out there
⏹️ ▶️ John actually is a way to opt out of this for enterprises for big companies because big companies
⏹️ ▶️ John don’t want like audio leaking out of their company’s phones and going to apple or whatever so there’s this
⏹️ ▶️ John very convoluted way using like enterprise profiles or something to convince all
⏹️ ▶️ John of the iPhones that are used by employees of a particular corporation not to send any audio
⏹️ ▶️ John to apple blah blah blah but it’s a process that no regular person would ever go through and is obviously
⏹️ ▶️ John not a solution to this problem. So the solution for now is Apple, stop doing that.
⏹️ ▶️ Casey And similarly, apparently Google, because GDPR, if I understand this right, has been ordered to halt human review
⏹️ ▶️ Casey of voice AI recordings over privacy risks. And this happened specifically because of a German privacy
⏹️ ▶️ John Yeah, I remember reading about this story, like someone had a big leak of like a thousand different
⏹️ ▶️ John recordings and dumped it out. Like, that’s the problem with this. If you collect this information, And you know, even
⏹️ ▶️ John if what you’re doing with is just trying to improve your program, once you have this information, it is a danger.
⏹️ ▶️ John Some contractor who’s supposed to be just reviewing the stuff could copy it and take it
⏹️ ▶️ John out of the company illegally and distribute it on the Internet. That’s bad. Like, that’s why you don’t want
⏹️ ▶️ John any of this information, because even if you don’t ever intend to do anything bad with it, merely having it
⏹️ ▶️ John means you are now a target for people to take that information and just, you know, spread all over the Internet.
⏹️ ▶️ John So glad to see that some part of this world has some kind
⏹️ ▶️ John of laws that actually tried to protect consumers in some vague way, even if they’re themselves
⏹️ ▶️ Casey Definitely not here that I’m confident in. Yeah.
⏹️ ▶️ Marco We are sponsored this week by Fracture, who prints your photos in vivid color directly
⏹️ ▶️ Marco on glass. Almost all of us take photos and usually we maybe share them
⏹️ ▶️ Marco to a feed somewhere online and then that’s it, you don’t see them again after that. Very few of
⏹️ ▶️ Marco those photos end up getting printed, even fewer end up being seen by anybody past those
⏹️ ▶️ Marco first couple days. Let Fracture help you focus on the moments that mean the most in your life
⏹️ ▶️ Marco by turning your favorite digital memories into actual printed photos that make your
⏹️ ▶️ Marco house look great or make wonderful gifts for someone else. So these fracture prints look
⏹️ ▶️ Marco amazing. They go edge to edge. They’re printed directly on glass. So there’s this nice thin
⏹️ ▶️ Marco glass layer. They’re printed kind of on the back of it shining through the front and then behind that is a thin layer of like a foam
⏹️ ▶️ Marco core kind of material and that’s how you can hook it onto like a screw or something to hold it up. They even include
⏹️ ▶️ Marco the screw and the wall anchor in the box for you. So you get everything you need and they’re super nice,
⏹️ ▶️ Marco modern, edge to edge, and also lightweight pieces of glass. You don’t have to worry about them falling off the
⏹️ ▶️ Marco wall and shattering into a thousand pieces. I’ve never seen that happen. They’re super light, so even the big ones,
⏹️ ▶️ Marco they’re not going to pull the anchor out of the wall or anything. And they’re just amazing gifts for people. Maybe send
⏹️ ▶️ Marco your parents pictures of your kids or your pets or whatever else. People love photos as gifts and Fracture Prints
⏹️ ▶️ Marco make amazing gifts. We have them all over our house. We’ve given them as tons of gifts.
⏹️ ▶️ Marco has positive things to say about them. And you can feel good about Fractures too because they are handmade
⏹️ ▶️ Marco from US source materials in Gainesville, Florida by real nice people. And they’re a green company
⏹️ ▶️ Marco operating a carbon neutral factory. So see for yourself at fractureme.com
⏹️ ▶️ Marco slash ATP. That’ll get you a special discount on your first fracture order. After checkout,
⏹️ ▶️ Marco they will ask you where’d you hear about them. Make sure to tell them you heard about them from ATP.
Apple Card soft-launch
⏹️ ▶️ Marco Once again, fractureme.com slash ATP for a special discount on your first order
⏹️ ▶️ Marco and tell them you came from here. Thank you so much to Fracture for sponsoring our show.
⏹️ ▶️ Casey Do we have time for topics? We can talk briefly about Apple Card.
⏹️ ▶️ Casey I tried yesterday, I had signed up for whatever early access thing, you know, way back when,
⏹️ ▶️ Casey and I got my email yesterday saying, hey, you can sign up for Apple Card. I tried to do it knowing full well it would probably not work, and I’ll explain
⏹️ ▶️ Casey why in a moment. And it did not work, but it’s my fault. Mad Fientist Are you on the betas? Jim Collins No, I’m not
⏹️ ▶️ Casey on the betas. It’s my fault because I had frozen my credit a
⏹️ ▶️ Casey, John couple of years ago. Mad Fientist Oh
⏹️ ▶️ John yeah, I did that too. We all did when
⏹️ ▶️ Casey whatever. Jim Collins I think I had done it even quite a while before then. Wow, look at me getting hipster about freezing my
⏹️ ▶️ Casey credit. This is a new low.
⏹️ ▶️ Casey I had done it a couple of years ago because we haven’t really made any large purchases and hadn’t planned on making any large
⏹️ ▶️ Casey purchases wherein a credit check would be involved. So, whenever it was I did it, I’d frozen it with all three bureaus
⏹️ ▶️ Casey in the United States. And I honestly don’t have the faintest idea how this works in other countries. But speaking for
⏹️ ▶️ Casey America, there are like I think three major credit bureaus that
⏹️ ▶️ Casey companies can use to figure out if you’re likely to pay back money owed in a reasonable fashion.
⏹️ ▶️ Casey And so, if you freeze your credit, that means they will refuse to answer the question. So Apple,
⏹️ ▶️ Casey understandably, when they were – I guess strictly seeing it was Goldman Sachs, whatever it’s called, understandably
⏹️ ▶️ Casey wanted to know, hey, is this guy a total putz or is he actually going to pay back the money that he accrues
⏹️ ▶️ Casey on this credit card? When they went to – and I guess TransUnion happens to be the one that
⏹️ ▶️ Casey they use. They went to TransUnion and TransUnion said, I can’t answer that question because dude’s frozen his credit.
⏹️ ▶️ Casey So the process was I verified my contact information. I verified the last four of
⏹️ ▶️ Casey my social security number, which is our government identification number. I then verified my
⏹️ ▶️ Casey full social for some reason or another, and then it actually said to me, hey, you’ve got a
⏹️ ▶️ Casey credit freeze. There’s nothing we can do. And by the way, we typically use TransUnion
⏹️ ▶️ Casey to figure this out, which I thought was extremely helpful and actionable. And I mean that genuinely.
⏹️ ▶️ Casey Rather than just being like, oh, we couldn’t figure out what the story is, so sorry. They actually
⏹️ ▶️ Casey said, not only we recognize the fact that you have frozen your credit, but furthermore,
⏹️ ▶️ Casey this is the particular of the three bureaus that we tend to use. Go ahead
⏹️ ▶️ Casey and talk to them. And so in the heat of the moment, I was like, okay, fine, I should probably try this for the show.
⏹️ ▶️ Casey And so I went to TransUnion’s website and I had a record for it in one password from whenever it was I’d frozen
⏹️ ▶️ Casey my credit. And I logged in with that username and password and TransUnion said, we can’t verify
⏹️ ▶️ Casey your identity. And guess what you need to do in order to verify your identity? You have to call
⏹️ ▶️ Casey them. And I said, nope, not happening. And then I gave up.
⏹️ ▶️ Marco Yeah, that’s actually, um, I mean, that actually is going to hit me too.
⏹️ ▶️ Marco Uh, if I decided to apply for this card, which I have thoughts on the card, but it’s boring. Um,
⏹️ ▶️ Marco but I will say that I, I also keep my credit frozen as of a few years ago because of the Equifax thing.
⏹️ ▶️ Marco And, uh, and I, I, I recently applied for, it was, I think it was the Amazon Prime
⏹️ ▶️ Marco Rewards card, because it gives you like five percent back on Whole Foods and Amazon, which is pretty significant,
⏹️ ▶️ Marco and I spent a lot of money in both of those places. So I did that and it rejected it at first,
⏹️ ▶️ Marco but it told me the same thing, like we use Equifax for our thing,
⏹️ ▶️ Marco and I was able to go to Equifax and not unfreeze my thing, just get a
⏹️ ▶️ Marco one-time passcode that I could give them
⏹️ ▶️ Marco, Jonathan Mann and
⏹️ ▶️ Marco say… and I was like it was backed by Chase and so I called up like the help number and I gave them this code
⏹️ ▶️ Marco and it worked and they verified it over the phone and then I got approved over the phone and it went through just fine.
⏹️ ▶️ Marco So that I think is great. I’m kind of, I don’t know what Apple’s options
⏹️ ▶️ Marco are with TransUnion but it would be a lot easier if they support that kind of one-time
⏹️ ▶️ Marco passcode thing. I don’t know whether they do or not because this is going to be a problem that anybody will face who has a
⏹️ ▶️ Casey John, did you try this in any way, shape or form? I assume not.
⏹️ ▶️ John I would have liked to but I was not blessed enough to get the invite. I’m pretty sure I signed up for it back when they
⏹️ ▶️ John said or whatever. I’m going to get this card. I had totally forgotten that my credit was frozen, but yes, it also is frozen.
⏹️ ▶️ John So I’ll try it with whatever my thing is to see, you know what, to see if it gives me any options.
⏹️ ▶️ John But I’m assuming it’ll be another big cluster involving calling banks on phones.
⏹️ ▶️ John, Jonathan Mann Yeah, probably being
⏹️ ▶️ John terrified by their supposed security procedures, realizing how many people could have stole my entire life
⏹️ ▶️ John if they new three facts about me or whatever. Um, yeah, no, I’m, I’m interested in
⏹️ ▶️ John trying this out. I’m kind of sad that I didn’t get a, although this is, I guess this, this works on iOS 12. You’re
⏹️ ▶️ John not on, you know, you just mentioned you’re not on the betas.
⏹️ ▶️ Casey I was on iOS 12, whatever the most recent version is, which just came out in the last few days. That, that’s what I was doing this
⏹️ ▶️ John on. Yeah. The thing that’s going around now, by the way, related to Apple card is, uh, in the contract, like every
⏹️ ▶️ John contract from large corporations, this entire guy for second country, there’s an arbitration clause,
⏹️ ▶️ John but apparently there’s is a way to opt out of it if you scratch a message onto
⏹️ ▶️ John a piece of wood and put it in a bottle and throw it in a ship and whatever.
⏹️ ▶️ John There is a way to opt out, but you only have 90 days after applying for the card to opt out of arbitration. I’ve
⏹️ ▶️ John heard theories that you can do it over iMessage with the business chat thing, but you’re probably just going to have to end up calling
⏹️ ▶️ John somebody and you have to give them a bunch of information and say you want to opt out of arbitration. Really, it only opts you out of some arbitration, so you’re
⏹️ ▶️ John probably screwed either way. But this is another one of those things that people pass around to make
⏹️ ▶️ John them think that they’re doing all that they can to defend themselves against these giant faceless corporations. And it’s probably
⏹️ ▶️ John pointless, but we all do it anyway, because what if it’s not pointless? So there’s that.
⏹️ ▶️ John Sorry for the vague information. I was looking for like instructions like here’s exactly what you need to do. But the instructions
⏹️ ▶️ John in the contract just say you need to contact us. And it says by message, comma, email.
⏹️ ▶️ John I’m doing it from memory. They’re like, they say by message, I’m assuming they mean I message, there’s no message address
⏹️ ▶️ John I message to who to what doesn’t say in the contract you know by mail the
⏹️ ▶️ John address somewhere anyway try to opt out of arbitration you’ve also again whose arbitration is code for you
⏹️ ▶️ Marco also I I would just add you know while it is exciting to have the newest greatest
⏹️ ▶️ Marco Apple thing although I would argue is also decreasingly exciting when the newest
⏹️ ▶️ Marco greatest Apple thing is a credit card 3%
⏹️ ▶️ John back on your Mac Pro that’s exciting to me.
⏹️ ▶️ Marco Right. So I understand people are excited to get it and to start getting that glorious,
⏹️ ▶️ Marco you know, 2% back on Apple pay 3% on Mac pro. That’s wonderful. But
⏹️ ▶️ Marco I would also maybe caution you like, do you want to help Apple beta test
⏹️ ▶️ Marco a financial instrument that is heavily service dependent? I don’t
⏹️ ▶️ Marco like that to me. That’s a big red flag. And I, this is another thing like,
⏹️ ▶️ Marco you know, if If something about Apple’s back end messes this up for you, not only
⏹️ ▶️ Marco is there probably likely to be only very painful to no
⏹️ ▶️ Marco recovery methods available, but they’re messing with your money, they’re messing
⏹️ ▶️ Marco with your credit. I trust Apple’s motives. I trust that they’re not gonna do creepy things
⏹️ ▶️ Marco intentionally, but I don’t trust them to get web services really that right
⏹️ ▶️ Marco on day one. So I would not want to trust my finances
⏹️ ▶️ Marco and my credit and my payment methods on my phone or whatever else. I don’t
⏹️ ▶️ Marco want to trust that to the very first few days of this rollout. Give them a chance
⏹️ ▶️ Marco to work out the kinks. Maybe try it next month if you’re gonna try it.
⏹️ ▶️ John But you can add the card and get it set up and just not actually use it. I think it’s probably just as safe,
⏹️ ▶️ John if not safer than Apple Pay. Because it’s all, both of them are just using actual plain old
⏹️ ▶️ John disgusting ancient credit card system under the covers and there’s just a thin veneer of Apple-ness thrown over the top of it.
⏹️ ▶️ John And I’m hoping that, uh, you know, because that’s how Apple Pay works too. And this, this card
⏹️ ▶️ John is not, it’s not Apple’s card, it’s Goldman Sachs card, which we all feel great about. Um,
⏹️ ▶️ John and, and it’s, and it’s a, what is it a, a
⏹️ ▶️ John, Jonathan Mann master
⏹️ ▶️ John, Casey the covers? I think so. Yeah. Yeah.
⏹️ ▶️ John Whatever. That’s right. Anyway, uh, credit cards are not exciting. The, the only reason I’m getting
⏹️ ▶️ John one is for the, uh, increase cash back on Apple purchases because I have pending Apple purchases.
⏹️ ▶️ Casey Yeah, you can probably get like $1,500 back on your Mac Pro.
⏹️ ▶️ John 3% is a lot when the numbers get big. I’m exploring all options to save money on the Mac Pro,
⏹️ ▶️ John including a billionaire who’s listening to the podcast now just buying me
⏹️ ▶️ Casey one. Well, if you’re going to buy one, why not buy three?
⏹️ ▶️ John Yeah, you hear that, Bill Gates? If you weren’t bored by all the SwiftUI talk, now’s the time to buy me a Mac Pro.
⏹️ ▶️ John I’m sure he’s still listening. He doesn’t even buy his kids college tuition, right? I have no idea. He’s the
⏹️ ▶️ John whole thing of like he doesn’t want his kids to to like they mustn’t like earn uh everything they have in life.
⏹️ ▶️ Marco It’s a valid concern. I don’t know if that’s true or not but that is a respectable position to take.
⏹️ ▶️ John Yeah I remember that from way back when I’m not sure if he’s held firm on that.
⏹️ ▶️ Casey I don’t know. I remember there was a meme before we called it a meme not really a meme but like a thing
⏹️ ▶️ Casey a viral thing going around that this was like when I was in college that
⏹️ ▶️ Casey somebody had computed based on Bill Gates’ earnings that if he saw—and I’m making this up, but it was like
⏹️ ▶️ Casey if he had seen a $1,000 bill on the sidewalk as he was walking to work, and I don’t even think
⏹️ ▶️ Casey a $1,000 bill is a thing, but for the sake of discussion, he sees $1,000 sitting on the sidewalk as he’s walking to work,
⏹️ ▶️ Casey it would actually behoove him to just continue to walk into work because he will make more than $1,000 in the time it would take
⏹️ ▶️ Casey to pick up the $1,000 in cash that were laying on the sidewalk. And I remember as an an 18-year-old. I was
⏹️ ▶️ Casey like, how can that be possible? I just thought it was insane.
⏹️ ▶️ John as a 20-something-year-old thinking this analogy is dumb because he’s not an hourly employee.
⏹️ ▶️ Marco Also, I’m pretty sure this was from email
⏹️ ▶️ Marco, John forwards. No, it’s not an
⏹️ ▶️ John analogy. This meme is dumb. It is a dumb meme, but yes, he has a lot of money.
Sponsor: Linode (code atp2019)
⏹️ ▶️ Marco We are sponsored this week by Linode, my favorite web host for running
⏹️ ▶️ Marco servers. Go to linode.com slash ATP to learn more and get a $20 credit with code ATP 2019.
⏹️ ▶️ Marco Whatever you want to build, you can build it on Linode. You can build distributed applications, hosted services,
⏹️ ▶️ Marco backends for your iOS apps, websites, CI and CD environments, whatever
⏹️ ▶️ Marco you want to build using virtual servers, you can do it on Linode. And these servers are fast in the
⏹️ ▶️ Marco Linode cloud. They have native SSD storage, a 40 gigabit network behind it all, industry
⏹️ ▶️ Marco leading processors, and they have 10 worldwide data centers and they’re always adding more.
⏹️ ▶️ Marco I believe they just added Mumbai, India, they added Toronto, Canada recently. They’re always adding more around the world.
⏹️ ▶️ Marco So you can serve your customers wherever they are with hourly billing across all plans
⏹️ ▶️ Marco and add on services. So if you only need to serve for a couple hours, only pay for it for a couple hours,
⏹️ ▶️ Marco no big deal. And I got to say one thing I love Linode. I’ve been with Linode for I think about eight or nine years now
⏹️ ▶️ Marco and they’ve always been an incredible value. The entire time. It isn’t just like a one-time sale
⏹️ ▶️ Marco and then they kind of coast on that forever. They’re constantly adjusting their plans and pricing so that they are always the
⏹️ ▶️ Marco best value in the business. For the entire eight or nine years I’ve been with them, they’ve been the best value that
⏹️ ▶️ Marco entire time. And I like them for other reasons too. You know, Coffs is very important but they also have a really
⏹️ ▶️ Marco nice control panel. They have amazing capabilities. They have amazing support if you ever need it. You know, occasionally
⏹️ ▶️ Marco you probably need support from your web host. I need it sometimes too. And they’ve been just top of their game every single time I’ve needed anything
⏹️ ▶️ Marco from them. So check it out today at linode.com slash ATP. And
⏹️ ▶️ Marco you can use promo code ATP 2019 to get a $20 credit. Now their plan started just $5 a month.
⏹️ ▶️ Marco So that could get you four months free on their one gig server plan. So check it out today linode.com
⏹️ ▶️ Marco slash ATP. I love them as a web host. They are my favorite web host.
⏹️ ▶️ Marco host. Linode.com slash ATP promo code ATP 2019 for a $20
⏹️ ▶️ Marco credit. Thank you so much to Linode for being so awesome and for sponsoring our show.
⏹️ ▶️ Casey All right, let’s move on to Ask ATP. And let’s start with Brad Seifert who writes, FaceApp has been incredibly popular,
⏹️ ▶️ Casey and this was actually written a few weeks ago, has been incredibly popular in the past week or so with many folks aging or de-aging themselves.
⏹️ ▶️ Casey My Twitter feed was full of people worried that the app was made in Russia and that giving the app permission to view your photos allowed them to upload all
⏹️ ▶️ Casey your photos to their servers. Is this something we should be worried about? Does the iOS photo permission really give the
⏹️ ▶️ Casey app maker copies of everyone’s photos who has used the app? I actually don’t know what the
⏹️ ▶️ Casey granularity is for photos. I know vaguely that there’s a mechanism by which
⏹️ ▶️ Casey you can ask for a single photo. And I think that iOS will only give
⏹️ ▶️ Casey you that one photo. You don’t get rights as an app developer to the entire library. I’ve
⏹️ ▶️ Casey never used FaceApp, so I have no idea if that’s what they did and how it worked. Marco, do you happen
⏹️ ▶️ Casey to know anything about how photo selection works in iOS? Nope. Yeah, OK. John, any
⏹️ ▶️ John I know about what you know is that a well-behaved application will ask for access, throw up a picker,
⏹️ ▶️ John and just get access to the one photo that the person picked. I don’t know if there is a bigger
⏹️ ▶️ John option, which is just give me access to all the photos. There might be. But that’s besides the point. I feel like the FaceApp issue
⏹️ ▶️ John is like anything else on the internet, right? If you’re giving
⏹️ ▶️ John a photo of yourself to an app, however it gets it, or giving any of your photos, giving any of your
⏹️ ▶️ John information, there is an implicit trust relationship between you and the app vendor.
⏹️ ▶️ John Do you care that an app has a picture of your face? It depends. I mean, there’s pictures
⏹️ ▶️ John of my face all over the internet. Giving one to this application and
⏹️ ▶️ John it associating with me is probably worse than it finding one on the internet, but everyone’s mileage may vary.
⏹️ ▶️ John So it happens whenever there’s anything related to faces that comes up on the internet, like you’re just giving your
⏹️ ▶️ John information to a thing that’s feeding machine learning and they’re building a database and robots
⏹️ ▶️ John will come and eat your medicine. And you know, like there is definitely danger here. The danger is exactly
⏹️ ▶️ John what you think it is. If you don’t want to give anyone your photo, don’t give anyone your photo. If you give someone your photo, they have your photo.
⏹️ ▶️ John Like that’s basically what it is. The larger mass thing is like, Oh, I just thought I was giving them my photo, but I didn’t realize that
⏹️ ▶️ John based on my photo, they could predict my future and steal all my money. Like they can do that without your photo.
⏹️ ▶️ John That said, I did not download this app. I do not want to give my I never do any of these face things.
⏹️ ▶️ John I, you know, I never answer any of these questions that, you
⏹️ ▶️ John, Jonathan Mann know,
⏹️ ▶️ John is a meme that tell everyone your last six addresses you lived at and
⏹️ ▶️ John your mother’s maiden name and your, you know, first dog’s name. Like, don’t do any of that
⏹️ ▶️ John stuff. Don’t give out information for fun. Right. Like it’s we give away enough
⏹️ ▶️ John information unintentionally that it’s probably not a good idea to be giving out information intentionally
⏹️ ▶️ John if you want to derive fun from these things look at all the fun that other people are having with it or Another option
⏹️ ▶️ John is to upload pictures of celebrities, which a lot of people did Don’t you probably
⏹️ ▶️ John still have to get face out of access to your photos, so I don’t know the deal there I don’t again. I don’t know if they have access to all your photos
⏹️ ▶️ John or just one That’s why web apps are better go to a web app and upload a picture of your favorite
⏹️ ▶️ John celebrity them see how they look when they’re old and they’re young. That is probably slightly safer
⏹️ ▶️ John than using the iOS app.
#askatp: Gaming PC & Mac?
⏹️ ▶️ Casey All right, moving on. Nathan would like to know, I’d love John’s advice
⏹️ ▶️ Casey on reconciling my love for RTS games with my disdain for the need to have a giant gaming PC in my
⏹️ ▶️ Casey house. So John, do you tolerate having a Mac as your main machine and a PC for gaming? That’s my current setup,
⏹️ ▶️ Casey but I’m growing tired of seeing a giant PC sitting on my floor. In last week’s episode, I don’t know if that is literally
⏹️ ▶️ Casey this past week or several weeks ago, you talked about folks who modify cheese graters into hot rods of sorts. Is
⏹️ ▶️ Casey that an option you’d consider? I have a dream of being able to use an iMac that I can boot into Windows for the sole purpose of playing
⏹️ ▶️ Casey RTS games, but I’m not sure the performance is quite sufficient. If you were in my position, would you bother with trying to modify
⏹️ ▶️ Casey a cheese grater as you mentioned? And also, John, would you start by explaining what the hell an RTS game is, please?
⏹️ ▶️ John Real-time strategy game.
⏹️ ▶️ Casey Even I know this one.
⏹️ ▶️ Jonathan Mann So we’re talking like Starcraft and… Total
⏹️ ▶️ Marco annihilation, man. Okay. Starcraft?
⏹️ ▶️ John Who plays Starcraft? Yeah, um, so I am kind of in Nathan’s
⏹️ ▶️ John position, and my choice is and has always been not to buy an additional gaming PC.
⏹️ ▶️ John Unfortunately, the age when you could have a single glorious computer that could serve as your gaming PC and
⏹️ ▶️ John your Mac and be decent at both is more or less over. The Mac Pro
⏹️ ▶️ John probably can be a reasonable gaming PC, but it costs a lot more money than you would think.
⏹️ ▶️ John Even if you ignore the monitor thing, it’s not a good deal. It’s much cheaper to get a Mac and then buy a gaming
⏹️ ▶️ John PC. That is the best solution even for RTS games. I go RTS games so you could run that at iMac
⏹️ ▶️ John It’s probably fine, right? RTS games can be demanding these days like especially if you want to run them a native resolution on an iMac
⏹️ ▶️ John it might chug a little bit, you know, so I Think still the you know,
⏹️ ▶️ John the the cheapest solution has always been to have a Mac and a gaming PC But now the actual best and most, you
⏹️ ▶️ John know The best solution to get decent gaming performance is still to have a gaming PC
⏹️ ▶️ John You can’t do boot your Mac Pro like you used to back in the day and have a reasonable gaming PC performance alongside
⏹️ ▶️ John a really good Mac you just can’t anymore and I do not recommend the current or
⏹️ ▶️ John the upcoming Mac Pro for that purpose because it’s just too much money.
#askatp: Impostor syndrome
⏹️ ▶️ Casey Finally, Ryan Monaghan writes, I haven’t started with my new job yet, but have any
⏹️ ▶️ Casey of you ever had to deal with imposter syndrome? If so, how did you overcome it or work through it? Do you have any tips for a new developer?
⏹️ ▶️ Casey I’ve definitely been through this a couple of times when I’ve, quote unquote, pivoted my career.
⏹️ ▶️ Casey When I started out, I was doing C++ professionally, and then I eventually switched to doing C-sharp stuff natively
⏹️ ▶️ Casey as in not the web, and then that became web development, and then I eventually changed into iOS development. And every
⏹️ ▶️ Casey single time, I was extremely worried that I didn’t know what the crap it
⏹️ ▶️ Casey was I was talking about, because candidly, I didn’t really know what the crap it was I was talking about. And I think the best
⏹️ ▶️ Casey advice I have is to own up to when you don’t know something. Don’t try to act like you’re
⏹️ ▶️ Casey smarter than you are. Most people that I’ve worked with, most developers I’ve worked with, have
⏹️ ▶️ Casey appreciated when I’ve said to them, look, I’m sorry, but I really don’t understand what you’re talking about. Can you explain it
⏹️ ▶️ Casey deeper, differently, et cetera? And sometimes they’ll get annoyed, but generally speaking, they’ll appreciate the fact
⏹️ ▶️ Casey that I’m being candid with what I do and don’t know. And I guess just believe
⏹️ ▶️ Casey in yourself, which is such a cheesy thing to say, but even problems that I’ve had,
⏹️ ▶️ Casey like issues I had with vignette, like the duplicate image detection, I didn’t have the faintest idea how I was going to
⏹️ ▶️ Casey solve that. As we discussed earlier, maybe it’s not solved yet, but certainly it’s a lot closer than
⏹️ ▶️ Casey it was a month ago, and I didn’t have the faintest clue what I was going to do
⏹️ ▶️ Casey about And I worked through it and I figured it out. So you’d be surprised what you’re capable of. Marco,
⏹️ ▶️ Casey as someone else who doesn’t have a job, why don’t you give us advice about having a job?
⏹️ ▶️ Marco Yeah, I mean, obviously this depends a lot on context. Like it depends on whether you are working with
⏹️ ▶️ Marco other people, whether they are smarter than you or more experienced than you, whether
⏹️ ▶️ Marco you are kind of comparing yourself to the public or being in public. So it’s different
⏹️ ▶️ Marco for all sorts of different contexts. but no one starts out being an expert
⏹️ ▶️ Marco in anything. No one starts out being an expert in their own job. Some people never get there.
⏹️ ▶️ Marco There are idiots in every field at every level. And
⏹️ ▶️ Marco if you simply care and try, you will generally
⏹️ ▶️ Marco put yourself ahead of the pack because most people don’t care and don’t try.
⏹️ ▶️ Casey That’s well put, I agree with that.
⏹️ ▶️ Marco Everyone is putting on an image that they are fully competent. that everyone is,
⏹️ ▶️ Marco at least, and you, like if you feel these kind of feelings, you especially are kind of self-selecting
⏹️ ▶️ Marco what you perceive from other people. You are thinking everyone else has it all together.
⏹️ ▶️ Marco But the reality is, most people are just getting by. We’re just plowing through.
⏹️ ▶️ Marco We are doing the best we can with the knowledge and experience that we have at any given moment.
⏹️ ▶️ Marco And it’s never perfect, and it’s never complete, and we’re never experts. We just are more
⏹️ ▶️ Marco or less clueless as time goes on, or depending on what we’re dealing with at the time. But
⏹️ ▶️ Marco most people are just kind of plowing through and doing their best. And so if you try, and if you
⏹️ ▶️ Marco put in the effort to try to better yourself, if you care about getting things right and about
⏹️ ▶️ Marco learning, you will be literally better than most people out there.
⏹️ ▶️ Casey John, as someone with an actual job, what is the best advice you can give?
⏹️ ▶️ John didn’t have the term and at least I hadn’t heard the term imposter syndrome back when I was starting out. So
⏹️ ▶️ John I don’t think I ever suffered from this mostly because I, as in so many things in life,
⏹️ ▶️ John traveled the sort of expected path which is you go to school for the thing
⏹️ ▶️ John you want to do for your job and then you get a job doing the thing you went to school for. So I always felt like
⏹️ ▶️ John I had the skills and training I needed to do the thing I was doing. I never felt like, oh, all
⏹️ ▶️ John these people know what they’re doing and I don’t. I’m coming out of school and
⏹️ ▶️ John doing a job that I studied for, and yeah, I’m the new person or whatever. The
⏹️ ▶️ John other thing is that it helped that I was coming up in the.com boom days. So my first job, I was literally the only programmer in the
⏹️ ▶️ John entire company. So it’s hard to have imposter syndrome when no one else in the entire company
⏹️ ▶️ John is a programmer. I was, by default, the best
⏹️ ▶️ John, Marco and the worst
⏹️ ▶️ John, Jonathan Mann programmer in the entire
⏹️ ▶️ John company, It’s like Marco. Or Casey, for
⏹️ ▶️ John, Jonathan Mann You’re the only
⏹️ ▶️ John are the best and the worst. So I don’t have a lot of good advice to
⏹️ ▶️ John think about, but I would echo Marco’s point that if you show up and are
⏹️ ▶️ John vaguely competent and care, you are already above average. Yeah.
⏹️ ▶️ Marco And I would also say, too, building on what you said a second ago, if you
⏹️ ▶️ Marco don’t feel any degree of this, if you don’t think that the people who you are working with are
⏹️ ▶️ Marco smarter than you, you might want to get a new job because you’re probably not getting any better.
⏹️ ▶️ Marco And if you never feel any part of this, like I feel this all the time,
⏹️ ▶️ Marco like, you know, not to a large degree anymore because I’ve been doing this for a long time now
⏹️ ▶️ Marco and I don’t work with anybody else, so I am the dumbest person here, but also because
⏹️ ▶️ Marco I feel it in small ways. I feel the imposter syndrome in areas of my
⏹️ ▶️ Marco skill set that I’m either new at or that have not been my forte. So things like design.
⏹️ ▶️ Marco I’ve done an increasing amount of my own design over the years, but I’m not a designer and I’ve
⏹️ ▶️ Marco never been trained as one and I have very little artistic ability and things like that. So in areas
⏹️ ▶️ Marco of my skill set like that that I’m not super strong in, but that I’ve been slowly trying to get better and slowly pushing
⏹️ ▶️ Marco myself out of my comfort zone and I do feel this still and
⏹️ ▶️ Marco anytime I tackle something brand new like that I do feel this or anytime I even
⏹️ ▶️ Marco you know certainly whenever I make a mistake I certainly feel oh god I’m an idiot but also like every time
⏹️ ▶️ Marco I have an app update that I put in the App Store I get nervous every single
⏹️ ▶️ Marco release every time I get the email that says your apps in review I get nervous I’m nervous the the whole
⏹️ ▶️ Marco rest of the day. Every time my app goes for sale, I get nervous for the whole next 12 hours
⏹️ ▶️ Marco to see, did I break something? Did I make some kind of critical mistake? Am I gonna lose everyone’s data?
⏹️ ▶️ Marco Literally, I am afraid of every single release. That’s just part of
⏹️ ▶️ Marco the way I react to these things, I guess, part of my personality. I don’t know if everyone else does this, probably.
⏹️ ▶️ Marco But I’m always, every time I do a push to my servers and
⏹️ ▶️ Marco I sync them all up to the newest code base, I check frantically, error logs, error rates,
⏹️ ▶️ Marco server load, things like that, just to see, like, did I mess everything up? Did I make a mistake?
⏹️ ▶️ Marco Every one of these things makes me nervous every time I do it. And occasionally,
⏹️ ▶️ Marco I have made a mistake, and that nervousness is warranted. But
⏹️ ▶️ Marco most of the time I haven’t, but it’s just part of doing this, I guess. So
⏹️ ▶️ Marco if you have the impression that everyone out there is an expert and they’re confident in their skills,
⏹️ ▶️ Marco and they don’t question themselves, that’s not reality. A lot of people out
⏹️ ▶️ Marco there, most people out there are not as confident as they appear to be. They do question
⏹️ ▶️ Marco their skills more than zero and probably as much as you do. Except
⏹️ ▶️ Marco for all the pompous idiots out there. They don’t question their skills, but they are the ones who should.
⏹️ ▶️ Marco So if you are questioning your skills, you’re not being one of them, so good job. Thanks to our
⏹️ ▶️ Marco sponsors this week, Fracture, Linode, and ClearBank, and we will see you next week.
⏹️ ▶️ Jonathan Mann the show is over. They didn’t even mean to begin cuz it was
⏹️ ▶️ Jonathan Mann accidental. Oh, it was accidental…
⏹️ ▶️ Jonathan Mann John didn’t do any research. Marco and Casey wouldn’t let him cuz
⏹️ ▶️ Jonathan Mann it was accidental. Oh, it was accidental…
⏹️ ▶️ Jonathan Mann and you can find the show notes at a-t-p dot-f-m
⏹️ ▶️ Jonathan Mann And if you’re into Twitter, you can follow them at
⏹️ ▶️ Jonathan Mann C-A-S-E-Y-L-I-S-S So that’s Casey Liss, M-A-R-C-O-A-R-M-E-N-T
⏹️ ▶️ Jonathan Mann Marco Armin, S-I-R-A-C-U-S-A-C-R-A-Q-U-S-E-R
⏹️ ▶️ Jonathan Mann It’s accidental, they didn’t mean to
⏹️ ▶️ Jonathan Mann ♪ Are you accidental? ♪ ♪ Accidental! ♪ Tech Podcasts, so
⏹️ ▶️ John I have some cheese grater updates. Oh, okay. So this was my
⏹️ ▶️ John foray into finding electric cheese graters. Apparently all of Europe has
⏹️ ▶️ John these great electric cheese graters, you know, starting in Italy, but they’re actually everywhere.
⏹️ ▶️ John So I bought one, I think I mentioned this in the show, I bought one from some German, like from Amazon Germany
⏹️ ▶️ John or something. It’s like, but it looks the same as all the Italian cheese graters. It might actually be made by an Italian company,
⏹️ ▶️ John, Jonathan Mann don’t
⏹️ ▶️ John know. It came in the mail, eventually, took a while to get here. And of course it’s got
⏹️ ▶️ John a European plug on it, and I got an adapter to turn it into a US plug, and I put the adapter
⏹️ ▶️ John on it. It’s just a physical adapter, it’s not a voltage or whatever, because I assume a lot of these power supplies, like Apple power supplies, they
⏹️ ▶️ John actually work with all the different voltages and stuff, it’s just a question of physically adapting them.
⏹️ ▶️ John And this one didn’t, so I physically adapted it, I plugged it in, pulled a little trigger to turn the little thing, and it went,
⏹️ ▶️ John like turned like a millimeter but then stopped. So I’m like, all right, well, this doesn’t work. So I said, forget that.
⏹️ ▶️ John Now I’m going to just look at the little, the little, what do you call it? Not transformer,
⏹️ ▶️ John whatever the hell it is, the, the, the AC DC adapter, the power supply. And
⏹️ ▶️ John it was, you know, whatever the rating was like 3.2 volts, 600 milliamps. So I’m going to get one of those
⏹️ ▶️ John little adjustable AC DC adapters lets you adjust the voltage and everything with the little different tips you can put
⏹️ ▶️ John on. You’ve seen those things,
⏹️ ▶️ Casey Yeah, I think so. So you’re talking about it has like one of those, it’s not coax, but it’s like one of those plugs
⏹️ ▶️ Casey that plugs into the cheese grater
⏹️ ▶️ Casey, Jonathan Mann itself. And
⏹️ ▶️ Casey so then those have different like circumferences. And so
⏹️ ▶️ Casey jacks. Is that what it’s called? Okay. And yeah, I know what you’re talking about. So you can just like crank to whatever
⏹️ ▶️ Casey it’s expecting and then put on whatever tip it needs. And then you’re you’re in business, hopefully.
⏹️ ▶️ John Yep. So I did that. And that arrived today. And so I turned it to match the voltage
⏹️ ▶️ John and the amperage was within the range of the thing. And so I plugged it in and
⏹️ ▶️ John did exactly the same thing. Went, like the little cheese grater turned like a couple of millimeters
⏹️ ▶️ John and then it just didn’t go anymore. And if you pull the trigger again, maybe it’ll go a little bit more. And now I’m annoyed, because I’m like,
⏹️ ▶️ John well, what’s your problem? Because this is like, it’s an AC to DC adapter
⏹️ ▶️ John and it’s putting out DC, exactly what you say you’re supposed to. And no, I didn’t get the polarity reversed. It was, you
⏹️ ▶️ John know, positive, internal, negative, external. Like I did all the right things. I’m, I’m, you know, and so that makes me think,
⏹️ ▶️ John you know what, that physical adapter actually probably did work and maybe just this stupid greater doesn’t
⏹️ ▶️ John work. Uh, so then I got angry and cranked up the voltage until we actually started turning and then a
⏹️ ▶️ John little bit of the magic smoke might’ve escaped. Oh God, not all the magic
⏹️ ▶️ John smoke, a little bit of the magic smoke escape. And then I was like, all right, well let’s consider this a failed
⏹️ ▶️ John experiment. So either I got a bad greater or I cannot figure
⏹️ ▶️ John out how to get this thing to work on US power. I think
⏹️ ▶️ John I got a bad grader because honestly, like DC is DC, right? And I met I met the
⏹️ ▶️ John voltage and current and it still just doesn’t turn. I think this is just dead. And
⏹️ ▶️ John if everything wasn’t in German, I would attempt to return and get my money back. But I’m not
⏹️ ▶️ John even going to bother just chalk it up to a learning experience. I having seen one of these things in person, I feel like there’s
⏹️ ▶️ John the potential for it to actually be viable and work. So I’m still interested in
⏹️ ▶️ John if anyone knows of a US product from a store that I speak the language of and can actually return
⏹️ ▶️ John things to if it doesn’t work that electrically grates cheese that looks like these German ones.
⏹️ ▶️ John I shouldn’t even ask for this because you don’t know what the one I’m talking about looks like. Maybe I’ll put it in the show notes, but history as a
⏹️ ▶️ John judge will probably just forget. Anyway, I’m still looking for something to grate the cheese
⏹️ ▶️ John for me. In the meantime, my hand grater is what I’m using still.
⏹️ ▶️ John I’ll probably take this one apart, by the way, to see what the heck is going on inside there, if there’s something obvious wrong or whatever.
⏹️ ▶️ Marco Yeah, it sounds like, based on the symptoms and the smell,
⏹️ ▶️ Marco I’m not an expert in this area, but I would guess that the motor can’t turn. Something is jamming it from
⏹️ ▶️ Marco turning, and that the smell you’re smelling is like the motor basically trying to burn itself
⏹️ ▶️ John turn. Well, it’s not that it can’t turn, because when given the proper, the quote
⏹️ ▶️ John unquote proper voltage and current, it turns in little bits when you pull the
⏹️ ▶️ John trigger, right? When given way too much voltage with the adjustable thing,
⏹️ ▶️ John it spun, like it went ring and actually spun at probably what I assume is the correct maximum speed because
⏹️ ▶️ John it’s not supposed to spin very fast, right? It spun for a little while and then a little bit of the magic smoke came in.
⏹️ ▶️ John So I like this, the smoke was only involved when I was obviously
⏹️ ▶️ John doing bad things to it by putting too much power
⏹️ ▶️ John, Jonathan Mann into
⏹️ ▶️ John it, but it did actually spin. But it makes me wonder like, what is your problem? Like it makes me think that it was exactly
⏹️ ▶️ John the same with the adapter that I bought and the one that I physically adapted. It makes me
⏹️ ▶️ John think that those ought to have worked. Everything, you know, they should have been getting the,
⏹️ ▶️ John the behavior was so identical between them. So I just think, you know, it’s screwed
⏹️ ▶️ John up in some way. I could be totally wrong, I don’t even know. But I do want to take this thing apart. I was looking at how to take it apart and it was like no visible
⏹️ ▶️ John screws. This is gonna be fun for me.
⏹️ ▶️ Marco check like under the rubber feet or like they oftentimes will hide screws or rubber plugs
⏹️ ▶️ John or rubber feet. Yeah, yeah. And I know all the usual places to look. I just didn’t see anything particularly obvious. I really
⏹️ ▶️ John need to go in there and start prying off some trim pieces. But I wasn’t particularly impressed with the quality of the thing. It was cheap.
⏹️ ▶️ John I mean, I didn’t buy an expensive thing. I knew this was going to be an experiment. I think it was like $30 or something like so.
⏹️ ▶️ John Maybe I’m expecting too much from it. But I’m intrigued by the design of the thing. It’s basically,
⏹️ ▶️ John I don’t know. I’ll find a link to it if I can. And we’ll put it in the show notes. And Marco will make a chapter art or something, so people
⏹️ ▶️ John, Jonathan Mann can look at this.
⏹️ ▶️ John and know if there’s anything in the US. And yes,
⏹️ ▶️ John everyone has been telling me I’m supposed to attach the thing to my stand mixer, but I haven’t found a good adapter for that
⏹️ ▶️ John yet. I do have a stand mixer and I can attach things to it, but all the little
⏹️ ▶️ John tiny things I’ve seen have not had the right holes. I don’t wanna go through this again. Don’t send me suggestions. I’m
⏹️ ▶️ John just letting the world know I’m still on the lookout.