118: Original Research
  
   
 
 
	 00:00:00
     ◼
      
     ► 
     Welcome to Under the Radar, a show about independent iOS app development. 
     
     
  
 
 
	 00:00:03
     ◼
      
     ► 
     I'm Marco Arment. 
     
     
  
 
 
	 00:00:04
     ◼
      
     ► 
     >> And I'm David Smith. 
     
     
  
 
 
	 00:00:05
     ◼
      
     ► 
     Under the Radar is never longer than 30 minutes, so let's get started. 
     
     
  
 
 
	 00:00:10
     ◼
      
     ► 
     So this week, as is often the case, I think when topics can come out of current work that 
     
     
  
 
 
	 00:00:16
     ◼
      
     ► 
     we're doing, I feel like we tend to get the best topics. 
     
     
  
 
 
	 00:00:20
     ◼
      
     ► 
     And this week's topic, I think, comes from work I'm doing currently in my app, Sleep 
     
     
  
 
 
	 00:00:25
     ◼
      
     ► 
     Plus Plus, which is a sleep tracker, where I'm working on doing automatic sleep detection 
     
     
  
 
 
	 00:00:31
     ◼
      
     ► 
     and sleep analysis, which is a feature that I've long been asked for by my users, but 
     
     
  
 
 
	 00:00:37
     ◼
      
     ► 
     I've never quite gotten to. 
     
     
  
 
 
	 00:00:39
     ◼
      
     ► 
     And so for the last week or so, this is what I've been working on, and the process so far 
     
     
  
 
 
	 00:00:44
     ◼
      
     ► 
     has been pretty promising that this is something that I'm going to be able to do. 
     
     
  
 
 
	 00:00:49
     ◼
      
     ► 
     But I think it's an interesting topic and a broader thing to talk about in just sort 
     
     
  
 
 
	 00:00:53
     ◼
      
     ► 
     of generally talking about things that kind of feel like original research or primary 
     
     
  
 
 
	 00:00:57
     ◼
      
     ► 
     research you could call it. 
     
     
  
 
 
	 00:01:00
     ◼
      
     ► 
     So often when we're developing something, when we're making an app or a product, there's 
     
     
  
 
 
	 00:01:06
     ◼
      
     ► 
     much of it that is not new or novel in any real sense. 
     
     
  
 
 
	 00:01:10
     ◼
      
     ► 
     If you're -- the process of taking data, putting it in a database, taking that data out, putting 
     
     
  
 
 
	 00:01:16
     ◼
      
     ► 
     it in a table view, there's nothing original and special there. 
     
     
  
 
 
	 00:01:22
     ◼
      
     ► 
     But often if you want to have something, an app that's really compelling or has an interesting 
     
     
  
 
 
	 00:01:27
     ◼
      
     ► 
     hook to it, you're going to have to do things that are beyond that. 
     
     
  
 
 
	 00:01:31
     ◼
      
     ► 
     And so in many ways you end up kind of doing this kind of research. 
     
     
  
 
 
	 00:01:35
     ◼
      
     ► 
     You're kind of inventing something in a real sense of the word invention. 
     
     
  
 
 
	 00:01:41
     ◼
      
     ► 
     And not every app has to have this, certainly, but it is something that I've found that is 
     
     
  
 
 
	 00:01:46
     ◼
      
     ► 
     good to have in your toolbox as something that you're not scared to try, that if you 
     
     
  
 
 
	 00:01:51
     ◼
      
     ► 
     have an idea about I wonder if I could do this kind of -- usually there's some kind 
     
     
  
 
 
	 00:01:55
     ◼
      
     ► 
     of processing involved. 
     
     
  
 
 
	 00:01:57
     ◼
      
     ► 
     Maybe it's image processing. 
     
     
  
 
 
	 00:01:58
     ◼
      
     ► 
     You're working on a camera app and you want to do some kind of image filters or an audio 
     
     
  
 
 
	 00:02:02
     ◼
      
     ► 
     app and maybe you're doing some audio processing. 
     
     
  
 
 
	 00:02:04
     ◼
      
     ► 
     Or in my case I'm doing -- I'm analyzing users' movement and heart rate and that kind of thing. 
     
     
  
 
 
	 00:02:11
     ◼
      
     ► 
     There's usually some kind of processing involved. 
     
     
  
 
 
	 00:02:14
     ◼
      
     ► 
     And doing this kind of research I think gives your app an advantage, both in terms of it 
     
     
  
 
 
	 00:02:21
     ◼
      
     ► 
     being more useful to your customers, which is probably far more important, that my goal 
     
     
  
 
 
	 00:02:25
     ◼
      
     ► 
     with doing automatic sleep detection is that more people will track their sleep more often 
     
     
  
 
 
	 00:02:31
     ◼
      
     ► 
     because they won't have to remember to start and stop the motion tracking like they do 
     
     
  
 
 
 
	 00:02:36
     ◼
      
     ► 
     It'll just happen automatically, which sounds great. 
     
     
  
 
 
	 00:02:40
     ◼
      
     ► 
     But it also creates this nice little sort of competitive advantage that there's now 
     
     
  
 
 
	 00:02:44
     ◼
      
     ► 
     this little moat around your app that anybody who wants to compete feature by feature with 
     
     
  
 
 
	 00:02:50
     ◼
      
     ► 
     you now has to go through and build it themselves. 
     
     
  
 
 
	 00:02:54
     ◼
      
     ► 
     They have to do that research. 
     
     
  
 
 
	 00:02:56
     ◼
      
     ► 
     They have to work out how to do it. 
     
     
  
 
 
	 00:02:59
     ◼
      
     ► 
     And fair enough, it's easier the second time. 
     
     
  
 
 
	 00:03:02
     ◼
      
     ► 
     Somebody looking at what you have done, even if they'd never see your code or understand 
     
     
  
 
 
	 00:03:07
     ◼
      
     ► 
     your methodology, simply knowing that a solution exists with a given set of inputs is a tremendous 
     
     
  
 
 
	 00:03:15
     ◼
      
     ► 
     advantage versus the number of times that I've gone down a road where I'm like, "I 
     
     
  
 
 
	 00:03:18
     ◼
      
     ► 
     wonder if I could," and then I spend a week and I work on something and it doesn't 
     
     
  
 
 
 
	 00:03:22
     ◼
      
     ► 
     And so I give up, and that never seems the light of day. 
     
     
  
 
 
	 00:03:25
     ◼
      
     ► 
     It's easier knowing that a solution does exist. 
     
     
  
 
 
	 00:03:27
     ◼
      
     ► 
     But it's still a competitive advantage. 
     
     
  
 
 
	 00:03:28
     ◼
      
     ► 
     It's still a road that they have to go down and work that they have to do. 
     
     
  
 
 
	 00:03:33
     ◼
      
     ► 
     So it's an advantage in that regard. 
     
     
  
 
 
	 00:03:36
     ◼
      
     ► 
     And as I was working on my stuff, I was thinking about you, Marco, and how voice boost and 
     
     
  
 
 
	 00:03:41
     ◼
      
     ► 
     smart speed are two kind of similar types of things that weren't necessarily like 
     
     
  
 
 
	 00:03:45
     ◼
      
     ► 
     your app was the first one to ever do them. 
     
     
  
 
 
	 00:03:47
     ◼
      
     ► 
     But the way that you've done them and the work that you did to add those to your app 
     
     
  
 
 
	 00:03:53
     ◼
      
     ► 
     is now this competitive advantage that you can sort of hold over your competitors. 
     
     
  
 
 
	 00:03:58
     ◼
      
     ► 
     - Yeah, I mean, I've said before that I think kind of a recipe for a pretty good useful 
     
     
  
 
 
	 00:04:06
     ◼
      
     ► 
     app that is kind of a good balance between diving in and spending a whole bunch of time 
     
     
  
 
 
	 00:04:11
     ◼
      
     ► 
     on hard stuff nobody will ever notice versus being really basic and having no competitive 
     
     
  
 
 
	 00:04:15
     ◼
      
     ► 
     advantage and having no compelling features. 
     
     
  
 
 
	 00:04:17
     ◼
      
     ► 
     I think a really good balance between those two is do like one or two hard things in your 
     
     
  
 
 
 
	 00:04:24
     ◼
      
     ► 
     And everything else doesn't need to be like a hard, impressive, technical thing. 
     
     
  
 
 
	 00:04:28
     ◼
      
     ► 
     But if you have like one or two, that can really make an app. 
     
     
  
 
 
	 00:04:33
     ◼
      
     ► 
     And for Instapaper, originally that was the text parser. 
     
     
  
 
 
	 00:04:36
     ◼
      
     ► 
     And later on I did some Kindle stuff that was a little bit crazy and weird things with 
     
     
  
 
 
	 00:04:42
     ◼
      
     ► 
     pagination on the iPhone. 
     
     
  
 
 
	 00:04:44
     ◼
      
     ► 
     But that was a relatively small number of features. 
     
     
  
 
 
	 00:04:46
     ◼
      
     ► 
     Ultimately the great value of that app was pretty boring stuff. 
     
     
  
 
 
	 00:04:51
     ◼
      
     ► 
     And then the text parser was like the big one. 
     
     
  
 
 
	 00:04:54
     ◼
      
     ► 
     And for Overcast, yeah, I think Smartspeed and Voice Boost are pretty significant features 
     
     
  
 
 
	 00:04:58
     ◼
      
     ► 
     that are hard and require some deep learning, or not deep learning, require like some deep 
     
     
  
 
 
	 00:05:07
     ◼
      
     ► 
     knowledge of low level audio manipulation and audio mastering and stuff like that to 
     
     
  
 
 
	 00:05:13
     ◼
      
     ► 
     really do that well. 
     
     
  
 
 
	 00:05:15
     ◼
      
     ► 
     And I had to learn a lot of that stuff and it was hard. 
     
     
  
 
 
	 00:05:19
     ◼
      
     ► 
     I happen to like that kind of hard work so it was fun for me. 
     
     
  
 
 
	 00:05:22
     ◼
      
     ► 
     And it still is fun whenever I work on it today. 
     
     
  
 
 
	 00:05:25
     ◼
      
     ► 
     But that was really hard stuff. 
     
     
  
 
 
	 00:05:26
     ◼
      
     ► 
     I had to learn mostly by like Google searches and trial and error of things like DSP audio 
     
     
  
 
 
 
	 00:05:36
     ◼
      
     ► 
     Like how to do that and what I'm actually manipulating with the audio signals and how 
     
     
  
 
 
	 00:05:40
     ◼
      
     ► 
     not to do it. 
     
     
  
 
 
	 00:05:41
     ◼
      
     ► 
     And all the different ways to do it that make it sound crappy. 
     
     
  
 
 
	 00:05:44
     ◼
      
     ► 
     So I can avoid those ways and eventually figuring out ways to do it that sound good or that 
     
     
  
 
 
	 00:05:49
     ◼
      
     ► 
     can't be noticed. 
     
     
  
 
 
	 00:05:52
     ◼
      
     ► 
     That is all really hard work but I've always enjoyed that kind of low level data work. 
     
     
  
 
 
	 00:05:59
     ◼
      
     ► 
     Not necessarily in the sense of big data but just working in low level C functions in performance 
     
     
  
 
 
	 00:06:07
     ◼
      
     ► 
     critical like large blocks of numbers and operations using things like the accelerate 
     
     
  
 
 
	 00:06:13
     ◼
      
     ► 
     functions in iOS. 
     
     
  
 
 
	 00:06:14
     ◼
      
     ► 
     I always like that stuff. 
     
     
  
 
 
	 00:06:16
     ◼
      
     ► 
     But if I spend all of my time doing that in Overcast I would be unbalanced. 
     
     
  
 
 
	 00:06:23
     ◼
      
     ► 
     Right now I'm kind of battling with my self discipline. 
     
     
  
 
 
	 00:06:27
     ◼
      
     ► 
     What I really want to be working on a lot of the time is the work I'm doing for Voice 
     
     
  
 
 
	 00:06:31
     ◼
      
     ► 
     Boost 2 which is just rarely Voice Boost but just going to sound better and work better 
     
     
  
 
 
	 00:06:36
     ◼
      
     ► 
     with more stuff. 
     
     
  
 
 
	 00:06:37
     ◼
      
     ► 
     And that's all this wonderful low level stuff making my own audio processing functions and 
     
     
  
 
 
	 00:06:44
     ◼
      
     ► 
     everything and it's exactly this kind of thing. 
     
     
  
 
 
	 00:06:48
     ◼
      
     ► 
     But what my customers actually want is not for me to make Voice Boost 2 for the most 
     
     
  
 
 
 
	 00:06:55
     ◼
      
     ► 
     What my customers really want is boring stuff like everybody wants me to give them a smart 
     
     
  
 
 
	 00:06:59
     ◼
      
     ► 
     playlist that shows all their starred items. 
     
     
  
 
 
	 00:07:02
     ◼
      
     ► 
     That's a really boring thing that I need to do because that's what they actually want. 
     
     
  
 
 
	 00:07:07
     ◼
      
     ► 
     Most of the app is boring stuff like that. 
     
     
  
 
 
	 00:07:10
     ◼
      
     ► 
     Sort of management and basic UI for things. 
     
     
  
 
 
	 00:07:14
     ◼
      
     ► 
     I still don't have a way for people to change their email address on their account. 
     
     
  
 
 
	 00:07:19
     ◼
      
     ► 
     Stuff like that. 
     
     
  
 
 
	 00:07:20
     ◼
      
     ► 
     That's what people actually want. 
     
     
  
 
 
	 00:07:22
     ◼
      
     ► 
     So it's important when you're doing these kind of cool, fun, low level math type features 
     
     
  
 
 
	 00:07:27
     ◼
      
     ► 
     or data analysis type features, it's important to make sure you also keep that balance though 
     
     
  
 
 
	 00:07:31
     ◼
      
     ► 
     of not spending too much of your time on it. 
     
     
  
 
 
	 00:07:37
     ◼
      
     ► 
     This is kind of cynical but not wasting too much time on stuff that's really hard to market 
     
     
  
 
 
 
	 00:07:44
     ◼
      
     ► 
     One of the reasons why a lot of people assume that Overcast invented silent skipping and 
     
     
  
 
 
	 00:07:51
     ◼
      
     ► 
     dynamic processing on podcasts is because I was the first one to figure out how to market 
     
     
  
 
 
	 00:07:55
     ◼
      
     ► 
     those features to people. 
     
     
  
 
 
	 00:07:59
     ◼
      
     ► 
     That isn't just dumping money into ads. 
     
     
  
 
 
	 00:08:03
     ◼
      
     ► 
     I didn't actually ever really do that. 
     
     
  
 
 
	 00:08:06
     ◼
      
     ► 
     Not until very recently have I tried that. 
     
     
  
 
 
	 00:08:09
     ◼
      
     ► 
     Marketing this kind of feature is about making sure people know it's there and telling them 
     
     
  
 
 
	 00:08:16
     ◼
      
     ► 
     why it's so good in some way. 
     
     
  
 
 
	 00:08:19
     ◼
      
     ► 
     And so for these features, I gave them names that were not just plain text descriptions. 
     
     
  
 
 
	 00:08:25
     ◼
      
     ► 
     I didn't say shorten silences and I didn't say boost the volume or use a dynamics compressor. 
     
     
  
 
 
	 00:08:32
     ◼
      
     ► 
     I didn't name those features those things. 
     
     
  
 
 
	 00:08:34
     ◼
      
     ► 
     I gave them branded names. 
     
     
  
 
 
	 00:08:36
     ◼
      
     ► 
     I trademarked those names. 
     
     
  
 
 
	 00:08:38
     ◼
      
     ► 
     I put those names on everything. 
     
     
  
 
 
	 00:08:40
     ◼
      
     ► 
     I added features like it showed you how much time you had saved with the silent skipper 
     
     
  
 
 
	 00:08:45
     ◼
      
     ► 
     feature because I need to show people that this feature that when it's turned on they 
     
     
  
 
 
	 00:08:51
     ◼
      
     ► 
     don't really notice is doing something for them. 
     
     
  
 
 
	 00:08:54
     ◼
      
     ► 
     And all of that was to help market these features that I spent a lot of time on, this low level 
     
     
  
 
 
	 00:09:00
     ◼
      
     ► 
     fun stuff because otherwise nobody would know they were there and the few people who would 
     
     
  
 
 
	 00:09:06
     ◼
      
     ► 
     find them and turn them on wouldn't really understand how good they are because they're 
     
     
  
 
 
	 00:09:11
     ◼
      
     ► 
     both kind of like subtle effects most of the time. 
     
     
  
 
 
	 00:09:15
     ◼
      
     ► 
     And so they both kind of like they help you out in a subtle way. 
     
     
  
 
 
	 00:09:18
     ◼
      
     ► 
     But if you don't know that, if you're not being shown or told that in some compelling 
     
     
  
 
 
	 00:09:22
     ◼
      
     ► 
     way, then a lot of that effort is wasted. 
     
     
  
 
 
	 00:09:26
     ◼
      
     ► 
     And so it's very important when you're planning these kind of features to make sure 
     
     
  
 
 
	 00:09:30
     ◼
      
     ► 
     that, A, you're not spending too much time on them to the exclusion of features that 
     
     
  
 
 
	 00:09:36
     ◼
      
     ► 
     people actually need or want more. 
     
     
  
 
 
	 00:09:39
     ◼
      
     ► 
     And B, that you're not going to invest a ton of time into something like this that is unmarketable 
     
     
  
 
 
	 00:09:43
     ◼
      
     ► 
     in some way. 
     
     
  
 
 
	 00:09:44
     ◼
      
     ► 
     Like you have to include in your planning for features like this how you're going to 
     
     
  
 
 
	 00:09:49
     ◼
      
     ► 
     communicate the existence and the value of these features to your customers. 
     
     
  
 
 
	 00:09:54
     ◼
      
     ► 
     - Yeah, and I think what's cool is that once you've done that, like if you work out a way 
     
     
  
 
 
	 00:09:58
     ◼
      
     ► 
     to communicate to your customer that you do some hard work, you can find a way to communicate 
     
     
  
 
 
	 00:10:05
     ◼
      
     ► 
     that to your customer, you end up with something that is really compelling in a weirdly insidious 
     
     
  
 
 
 
	 00:10:13
     ◼
      
     ► 
     That like I struggle to, I feel bad if I listen to podcast type audio, like long form audio, 
     
     
  
 
 
	 00:10:20
     ◼
      
     ► 
     without the silences removed now. 
     
     
  
 
 
	 00:10:23
     ◼
      
     ► 
     Because in my back of my mind, I feel like I'm wasting time. 
     
     
  
 
 
	 00:10:26
     ◼
      
     ► 
     And so like that is a hook that you now have like placed in me that if I listen to something 
     
     
  
 
 
	 00:10:30
     ◼
      
     ► 
     long form, I will find a way to turn that into something that I can listen to with something 
     
     
  
 
 
	 00:10:36
     ◼
      
     ► 
     like Smart Speed. 
     
     
  
 
 
	 00:10:37
     ◼
      
     ► 
     Just because it's, now that's what I expect. 
     
     
  
 
 
	 00:10:41
     ◼
      
     ► 
     Because you've wrapped it up, you've wrapped up this kind of original, like it's not original 
     
     
  
 
 
	 00:10:45
     ◼
      
     ► 
     in the sense that you were the first person to come up with it, but original in the sense 
     
     
  
 
 
	 00:10:49
     ◼
      
     ► 
     that you had to do a lot of hard low level work to make it happen. 
     
     
  
 
 
	 00:10:53
     ◼
      
     ► 
     You're not just building, it's not just like AV, you're not just doing your AV player dot, 
     
     
  
 
 
	 00:10:59
     ◼
      
     ► 
     you know, remove silences equal true. 
     
     
  
 
 
	 00:11:02
     ◼
      
     ► 
     Like if that was the case, I wish it was that easy. 
     
     
  
 
 
	 00:11:04
     ◼
      
     ► 
     That would be great, right? 
     
     
  
 
 
	 00:11:06
     ◼
      
     ► 
     But that's not the case. 
     
     
  
 
 
	 00:11:07
     ◼
      
     ► 
     You had to do all of this whole cloth development to make it work. 
     
     
  
 
 
	 00:11:11
     ◼
      
     ► 
     Now you have this great little advantage that, you know, one of the things that would keep, 
     
     
  
 
 
	 00:11:16
     ◼
      
     ► 
     it keeps me in overcast rather than another podcast player is that I don't want to lose 
     
     
  
 
 
	 00:11:21
     ◼
      
     ► 
     this thing that I now have. 
     
     
  
 
 
	 00:11:23
     ◼
      
     ► 
     And so it's this little moat that other people could certainly build it. 
     
     
  
 
 
	 00:11:25
     ◼
      
     ► 
     It's not like it's technically crazy to build Smart Speed or to build Voice Boost, but building 
     
     
  
 
 
	 00:11:33
     ◼
      
     ► 
     an app in general is difficult. 
     
     
  
 
 
	 00:11:35
     ◼
      
     ► 
     And then tackling one of these features is also kind of hard. 
     
     
  
 
 
	 00:11:39
     ◼
      
     ► 
     So it's just this nice little, undertaking one of these. 
     
     
  
 
 
	 00:11:43
     ◼
      
     ► 
     I think you're definitely right though. 
     
     
  
 
 
	 00:11:44
     ◼
      
     ► 
     Be careful that you're like taking on something that you can show, you have something to show 
     
     
  
 
 
	 00:11:48
     ◼
      
     ► 
     for at the end. 
     
     
  
 
 
	 00:11:49
     ◼
      
     ► 
     But if you do and it does make sense, it's a wonderful little, it's a wonderful way to 
     
     
  
 
 
	 00:11:55
     ◼
      
     ► 
     create value that is defensible rather than easily copied by somebody else. 
     
     
  
 
 
	 00:12:02
     ◼
      
     ► 
     - But it's also, it's important to also realize that nothing is gonna be yours forever. 
     
     
  
 
 
	 00:12:06
     ◼
      
     ► 
     Like overcast was the only mass market podcast player that had these features for a while. 
     
     
  
 
 
	 00:12:13
     ◼
      
     ► 
     But now it isn't. 
     
     
  
 
 
	 00:12:14
     ◼
      
     ► 
     And it never really was the absolute only one, but it was the only really mass market 
     
     
  
 
 
 
	 00:12:20
     ◼
      
     ► 
     And now it's not. 
     
     
  
 
 
	 00:12:22
     ◼
      
     ► 
     And more of them are gonna keep adding features like this. 
     
     
  
 
 
	 00:12:27
     ◼
      
     ► 
     I had a couple good years there. 
     
     
  
 
 
	 00:12:28
     ◼
      
     ► 
     It bought me some time. 
     
     
  
 
 
	 00:12:30
     ◼
      
     ► 
     Similar to Apple with the iPhone launch, the original iPhone. 
     
     
  
 
 
	 00:12:33
     ◼
      
     ► 
     And Steve famously said that it was five years ahead of the competition. 
     
     
  
 
 
	 00:12:36
     ◼
      
     ► 
     And that basically proved to be true. 
     
     
  
 
 
	 00:12:38
     ◼
      
     ► 
     That was roughly correct. 
     
     
  
 
 
	 00:12:39
     ◼
      
     ► 
     It took Android a long time to reach the minimum quality that the iPhone had years earlier. 
     
     
  
 
 
	 00:12:46
     ◼
      
     ► 
     And so it buys you some time when you have something like this. 
     
     
  
 
 
	 00:12:50
     ◼
      
     ► 
     But not necessarily tons of time. 
     
     
  
 
 
	 00:12:53
     ◼
      
     ► 
     And it's definitely a limited amount. 
     
     
  
 
 
	 00:12:55
     ◼
      
     ► 
     It will end. 
     
     
  
 
 
	 00:12:56
     ◼
      
     ► 
     And so it's important not to rest on your laurels and not to assume that something cool 
     
     
  
 
 
	 00:13:01
     ◼
      
     ► 
     you do is gonna be yours forever. 
     
     
  
 
 
	 00:13:03
     ◼
      
     ► 
     So maybe that's doing cooler things. 
     
     
  
 
 
	 00:13:06
     ◼
      
     ► 
     Maybe that's finding other ways to remain competitive in the future. 
     
     
  
 
 
	 00:13:11
     ◼
      
     ► 
     But keep in mind that when you're deciding what to do, when you're planning on doing 
     
     
  
 
 
	 00:13:16
     ◼
      
     ► 
     out your app, when you are trying to allocate time, keep in mind again the value of these 
     
     
  
 
 
	 00:13:21
     ◼
      
     ► 
     features will not last forever. 
     
     
  
 
 
	 00:13:23
     ◼
      
     ► 
     So let that inform how much time that you allocate to them. 
     
     
  
 
 
	 00:13:27
     ◼
      
     ► 
     Anyway, we are brought to you this week by Squarespace. 
     
     
  
 
 
	 00:13:31
     ◼
      
     ► 
     Enter offer code radar at checkout to get 10% off your first purchase. 
     
     
  
 
 
	 00:13:35
     ◼
      
     ► 
     Make your next move with Squarespace. 
     
     
  
 
 
	 00:13:36
     ◼
      
     ► 
     Squarespace lets you easily create a website for your next idea with a unique domain, warbiting 
     
     
  
 
 
	 00:13:42
     ◼
      
     ► 
     templates and much more. 
     
     
  
 
 
	 00:13:43
     ◼
      
     ► 
     Whether you want to create an online store or a portfolio site or a blog or even a podcast, 
     
     
  
 
 
	 00:13:50
     ◼
      
     ► 
     Squarespace is an all-in-one platform that lets you do any of those things. 
     
     
  
 
 
	 00:13:54
     ◼
      
     ► 
     Or all of those things. 
     
     
  
 
 
	 00:13:55
     ◼
      
     ► 
     There's nothing to install, no patches or updates to worry about, no upgrades to do. 
     
     
  
 
 
	 00:14:00
     ◼
      
     ► 
     You don't have to worry about any of that stuff because Squarespace has it covered. 
     
     
  
 
 
	 00:14:05
     ◼
      
     ► 
     And if there's anything that you need help with or if anything goes wrong, they have 
     
     
  
 
 
	 00:14:08
     ◼
      
     ► 
     award-winning 24/7 customer support if you need any help. 
     
     
  
 
 
	 00:14:12
     ◼
      
     ► 
     They let you quickly and easily grab a unique domain name when you're getting started. 
     
     
  
 
 
	 00:14:15
     ◼
      
     ► 
     And all of these award-winning templates they have are beautifully designed for you to show 
     
     
  
 
 
	 00:14:20
     ◼
      
     ► 
     off your great ideas. 
     
     
  
 
 
	 00:14:21
     ◼
      
     ► 
     And you can customize the template to your heart's content and really make it yours. 
     
     
  
 
 
	 00:14:26
     ◼
      
     ► 
     Squarespace plans start at just $12 a month. 
     
     
  
 
 
	 00:14:29
     ◼
      
     ► 
     And you can start a free trial with no credit card required by going to squarespace.com. 
     
     
  
 
 
	 00:14:34
     ◼
      
     ► 
     When you sign up, make sure to use the offer code radar to get 10% off your first purchase 
     
     
  
 
 
	 00:14:38
     ◼
      
     ► 
     and to show your support for Under the Radar. 
     
     
  
 
 
	 00:14:40
     ◼
      
     ► 
     We thank Squarespace for their support. 
     
     
  
 
 
	 00:14:43
     ◼
      
     ► 
     Squarespace, make your next move, make your next website. 
     
     
  
 
 
	 00:14:47
     ◼
      
     ► 
     So now that you've decided that you're going to go down the road of doing some kind of 
     
     
  
 
 
	 00:14:50
     ◼
      
     ► 
     an original research project to like add a new feature to your app, I was thinking, how 
     
     
  
 
 
	 00:14:55
     ◼
      
     ► 
     do you, A, it's like there's lots of different approaches I think you can take to something 
     
     
  
 
 
 
	 00:15:01
     ◼
      
     ► 
     And one thing that I wanted to start off talking about is how when I do these types of things, 
     
     
  
 
 
	 00:15:05
     ◼
      
     ► 
     I always take a very, I guess you'd call it the empirical approach rather than the theoretical 
     
     
  
 
 
	 00:15:11
     ◼
      
     ► 
     approach that I try and just, you know, I get in there and I just start to build things. 
     
     
  
 
 
	 00:15:18
     ◼
      
     ► 
     I try a lot of things and just experiment. 
     
     
  
 
 
	 00:15:21
     ◼
      
     ► 
     I just try and generate a lot of data as best I can and then run, you know, test cases through 
     
     
  
 
 
	 00:15:31
     ◼
      
     ► 
     my system, whatever it may be, because I find that I'm just not very academic. 
     
     
  
 
 
	 00:15:36
     ◼
      
     ► 
     And I used to, I think earlier in my career, be intimidated by the fact that I just wasn't 
     
     
  
 
 
	 00:15:43
     ◼
      
     ► 
     particularly academic in that way, that I'm not coming at it from a, you know, a theoretical 
     
     
  
 
 
	 00:15:48
     ◼
      
     ► 
     approach that I'm then trying to work out how to implement. 
     
     
  
 
 
	 00:15:53
     ◼
      
     ► 
     In many ways, I start with implementations. 
     
     
  
 
 
	 00:15:54
     ◼
      
     ► 
     I start with just like, well, let me see if this works. 
     
     
  
 
 
	 00:15:56
     ◼
      
     ► 
     Well, let me see if this works. 
     
     
  
 
 
	 00:15:58
     ◼
      
     ► 
     And I, in theory, a theoretical approach would help you get to the right solution more directly, 
     
     
  
 
 
	 00:16:05
     ◼
      
     ► 
     or at least in a more straightforward way. 
     
     
  
 
 
	 00:16:07
     ◼
      
     ► 
     But I would encourage anybody who's slightly intimidated by the feeling that, oh, man, 
     
     
  
 
 
	 00:16:13
     ◼
      
     ► 
     it's like this needs to be super theoretical. 
     
     
  
 
 
	 00:16:15
     ◼
      
     ► 
     It's like, maybe, depending on what you're working on, but often a more direct empirical, 
     
     
  
 
 
	 00:16:21
     ◼
      
     ► 
     just like kind of do your best approach will often get there. 
     
     
  
 
 
	 00:16:26
     ◼
      
     ► 
     And in my experience, you know, gets you there well enough and can allow you to create these 
     
     
  
 
 
	 00:16:31
     ◼
      
     ► 
     features without needing a lot of theoretical knowledge, without a lot of deep, and potentially 
     
     
  
 
 
	 00:16:35
     ◼
      
     ► 
     like the deep understanding. 
     
     
  
 
 
	 00:16:36
     ◼
      
     ► 
     You may not understand exactly why a particular method is working, but it can work for you. 
     
     
  
 
 
	 00:16:42
     ◼
      
     ► 
     And you could argue whether that's good or not, but I found it to work well. 
     
     
  
 
 
	 00:16:46
     ◼
      
     ► 
     So just an encouragement is don't be too scared of things if you can just sort of approach 
     
     
  
 
 
	 00:16:51
     ◼
      
     ► 
     them more directly. 
     
     
  
 
 
	 00:16:52
     ◼
      
     ► 
     Yeah, I too am pretty weak on the academic side. 
     
     
  
 
 
	 00:16:57
     ◼
      
     ► 
     I'm especially weak in the advanced math, really. 
     
     
  
 
 
	 00:17:01
     ◼
      
     ► 
     Things like calculus, I really never took or, well, I took it but failed it. 
     
     
  
 
 
	 00:17:07
     ◼
      
     ► 
     Most of the advanced linear algebra stuff, I have a very, very weak understanding of. 
     
     
  
 
 
	 00:17:12
     ◼
      
     ► 
     Really almost all advanced math, I really just either never took in college and just 
     
     
  
 
 
	 00:17:16
     ◼
      
     ► 
     never learned it afterwards, or I took it and took it so poorly that I really just know 
     
     
  
 
 
	 00:17:21
     ◼
      
     ► 
     nothing about it. 
     
     
  
 
 
	 00:17:22
     ◼
      
     ► 
     So whenever I'm looking up online, looking up some kind of algorithm, and I start to 
     
     
  
 
 
	 00:17:27
     ◼
      
     ► 
     see the mathematic notation, I'm just like, "Aw, crap. 
     
     
  
 
 
	 00:17:30
     ◼
      
     ► 
     I'm probably not going to figure this out." 
     
     
  
 
 
	 00:17:32
     ◼
      
     ► 
     And sometimes I try and plow through, and the simpler ones I can kind of work out the 
     
     
  
 
 
	 00:17:37
     ◼
      
     ► 
     pseudocode of how to do in my language that I know what they're trying to tell me how 
     
     
  
 
 
 
	 00:17:43
     ◼
      
     ► 
     But once something comes to, "Oh, you have to read these academic papers to understand 
     
     
  
 
 
	 00:17:49
     ◼
      
     ► 
     how to do this algorithm," or something, that's usually when I bail out because I try sometimes, 
     
     
  
 
 
	 00:17:54
     ◼
      
     ► 
     but I can't usually get through them. 
     
     
  
 
 
	 00:17:58
     ◼
      
     ► 
     So what I do with a lot of my approaches to these hard math or data problems is really 
     
     
  
 
 
	 00:18:04
     ◼
      
     ► 
     fairly simple things. 
     
     
  
 
 
	 00:18:06
     ◼
      
     ► 
     I'm pretty good at coming up with, just off the top of my head, coming up with some kind 
     
     
  
 
 
	 00:18:10
     ◼
      
     ► 
     of heuristic of like, "Oh, maybe if I look for this pattern and I give it some kind of 
     
     
  
 
 
	 00:18:16
     ◼
      
     ► 
     weight in a scoring algorithm, that maybe this will be better." 
     
     
  
 
 
	 00:18:22
     ◼
      
     ► 
     And sometimes that works, most of the time it doesn't, but occasionally I get something 
     
     
  
 
 
	 00:18:25
     ◼
      
     ► 
     out of it that is pretty useful. 
     
     
  
 
 
	 00:18:28
     ◼
      
     ► 
     And that's how I tend to do these kind of things. 
     
     
  
 
 
	 00:18:31
     ◼
      
     ► 
     It's basically like trial and error to develop some kind of heuristic or algorithm that is 
     
     
  
 
 
	 00:18:37
     ◼
      
     ► 
     really not a very mathematically advanced algorithm. 
     
     
  
 
 
	 00:18:41
     ◼
      
     ► 
     It's really just large amounts of dumb math, large amounts of basic arithmetic. 
     
     
  
 
 
	 00:18:48
     ◼
      
     ► 
     That I can do. 
     
     
  
 
 
	 00:18:49
     ◼
      
     ► 
     But you don't need necessarily an advanced knowledge of sophisticated math and the more 
     
     
  
 
 
	 00:18:58
     ◼
      
     ► 
     advanced stuff. 
     
     
  
 
 
	 00:18:59
     ◼
      
     ► 
     That being said, I do think my lack of knowledge there holds me back to some degree. 
     
     
  
 
 
	 00:19:04
     ◼
      
     ► 
     There's a lot of statistical methods, things like, especially when dealing with things 
     
     
  
 
 
	 00:19:10
     ◼
      
     ► 
     like large data sets, dealing with things like data clustering and statistical analysis 
     
     
  
 
 
	 00:19:15
     ◼
      
     ► 
     of large pools of data. 
     
     
  
 
 
	 00:19:17
     ◼
      
     ► 
     I basically don't understand any of that. 
     
     
  
 
 
	 00:19:19
     ◼
      
     ► 
     And that is holding me back to some degree. 
     
     
  
 
 
	 00:19:22
     ◼
      
     ► 
     So I do want to get better at some of that stuff, but ultimately you don't necessarily 
     
     
  
 
 
	 00:19:26
     ◼
      
     ► 
     need to if you can't or don't want to. 
     
     
  
 
 
	 00:19:29
     ◼
      
     ► 
     You can get pretty far without the knowledge of some of that advanced math stuff. 
     
     
  
 
 
	 00:19:34
     ◼
      
     ► 
     And the thing that's key there is that your solution may not be optimal, but you may get 
     
     
  
 
 
 
	 00:19:41
     ◼
      
     ► 
     I mean, in a weird way, it makes me think of how if you didn't understand what multiplication 
     
     
  
 
 
	 00:19:49
     ◼
      
     ► 
     was but you knew how to do addition, you could still end up with the same result. 
     
     
  
 
 
	 00:19:53
     ◼
      
     ► 
     You're right in a for loop that just adds a bunch of times. 
     
     
  
 
 
 
	 00:19:57
     ◼
      
     ► 
     Which is obviously kind of a trivial example of this, but that is often I think the impression 
     
     
  
 
 
	 00:20:03
     ◼
      
     ► 
     that I have is that often my approach is repeated addition rather than multiplication because 
     
     
  
 
 
	 00:20:07
     ◼
      
     ► 
     I don't understand the higher concept. 
     
     
  
 
 
	 00:20:09
     ◼
      
     ► 
     But you don't get a—I still end up with 20 with four times five. 
     
     
  
 
 
	 00:20:15
     ◼
      
     ► 
     I just may—the fact that I add five to itself four times versus just being able to do it 
     
     
  
 
 
	 00:20:20
     ◼
      
     ► 
     directly with multiplication, that's less efficient, but the answer is the same. 
     
     
  
 
 
	 00:20:24
     ◼
      
     ► 
     It's still 20. 
     
     
  
 
 
	 00:20:25
     ◼
      
     ► 
     And computers are so fast. 
     
     
  
 
 
	 00:20:27
     ◼
      
     ► 
     Even on our phones and our watches, microprocessors these days are just so ridiculously fast that 
     
     
  
 
 
	 00:20:32
     ◼
      
     ► 
     for a lot of problems like this, even if you just have kind of like a brute force solution 
     
     
  
 
 
	 00:20:39
     ◼
      
     ► 
     or even if it's like an imprecise solution, that is probably both fast enough and good 
     
     
  
 
 
	 00:20:44
     ◼
      
     ► 
     enough for a lot of times. 
     
     
  
 
 
 
	 00:20:47
     ◼
      
     ► 
     And so, you know, it's—which is an encouragement that it's like, yeah, it's like you—it's 
     
     
  
 
 
	 00:20:51
     ◼
      
     ► 
     okay and that's like that's fine and it's, you know, as with any—a lot of these kind 
     
     
  
 
 
	 00:20:55
     ◼
      
     ► 
     of discussions you can get into like is it well—well, is it certainly better or is 
     
     
  
 
 
	 00:20:58
     ◼
      
     ► 
     it more efficient to have a more theoretical approach or fundamental understanding? 
     
     
  
 
 
 
	 00:21:03
     ◼
      
     ► 
     But, you know, if—in order to gain that level of understanding, you almost certainly 
     
     
  
 
 
	 00:21:08
     ◼
      
     ► 
     have to be—spend a lot more time and, you know, like to become an expert in that area 
     
     
  
 
 
	 00:21:16
     ◼
      
     ► 
     is going to take a lot of time and be a lot of distractions away from other things. 
     
     
  
 
 
	 00:21:19
     ◼
      
     ► 
     So it may not be worth getting that level of understanding. 
     
     
  
 
 
	 00:21:23
     ◼
      
     ► 
     So you know, just worth keeping in mind. 
     
     
  
 
 
	 00:21:25
     ◼
      
     ► 
     Yeah, definitely. 
     
     
  
 
 
	 00:21:26
     ◼
      
     ► 
     In terms of the actual building of these things, I think it seemed worth actually sort of diving 
     
     
  
 
 
	 00:21:30
     ◼
      
     ► 
     into the way that—the approach that I've taken. 
     
     
  
 
 
	 00:21:32
     ◼
      
     ► 
     Like I'll talk to my recent example with automatic sleep tracking where—so, you know, 
     
     
  
 
 
	 00:21:39
     ◼
      
     ► 
     I'm going to add this to an app. 
     
     
  
 
 
	 00:21:41
     ◼
      
     ► 
     My usual approach is to create a completely separate app. 
     
     
  
 
 
	 00:21:45
     ◼
      
     ► 
     I've tried—and eventually it'll end up being a branch in the main app, but usually 
     
     
  
 
 
	 00:21:49
     ◼
      
     ► 
     I just create a completely new app that has none of the overhead, none of the other things 
     
     
  
 
 
 
	 00:21:56
     ◼
      
     ► 
     And mostly I do that because then I can just kind of—if I go down a bad line of thinking 
     
     
  
 
 
	 00:22:03
     ◼
      
     ► 
     and it just ends up in a dead end, I can just throw it away and start again. 
     
     
  
 
 
	 00:22:06
     ◼
      
     ► 
     And it's easier, I find, for me to just kind of have the super focused, lightweight 
     
     
  
 
 
 
	 00:22:12
     ◼
      
     ► 
     You know, I don't need to go to a particular place in the app. 
     
     
  
 
 
	 00:22:14
     ◼
      
     ► 
     Like often I end up doing stuff just in the view to finish launching. 
     
     
  
 
 
	 00:22:18
     ◼
      
     ► 
     Like it's basically a command line app just running on an iPhone. 
     
     
  
 
 
	 00:22:21
     ◼
      
     ► 
     Like you end up doing that kind of thing where you make it as quick and as simple as possible 
     
     
  
 
 
	 00:22:26
     ◼
      
     ► 
     and it's focused in on exactly what the problem is. 
     
     
  
 
 
	 00:22:30
     ◼
      
     ► 
     I find that to be a very helpful approach. 
     
     
  
 
 
	 00:22:32
     ◼
      
     ► 
     I tend to do my work there to validate that something is possible. 
     
     
  
 
 
	 00:22:38
     ◼
      
     ► 
     And then I'll start to work on how will I take that and turn it into the final version. 
     
     
  
 
 
	 00:22:44
     ◼
      
     ► 
     And that first version I have no consideration at all to code quality. 
     
     
  
 
 
	 00:22:49
     ◼
      
     ► 
     Often I will completely throw that code away. 
     
     
  
 
 
	 00:22:52
     ◼
      
     ► 
     I will end up reimplementing it just using all the lessons I learned from all of that 
     
     
  
 
 
	 00:22:58
     ◼
      
     ► 
     throwaway code. 
     
     
  
 
 
	 00:22:59
     ◼
      
     ► 
     But by taking such a quick and dirty approach to it, it means that I can work much more 
     
     
  
 
 
	 00:23:03
     ◼
      
     ► 
     quickly and iterate on it. 
     
     
  
 
 
	 00:23:05
     ◼
      
     ► 
     That I don't need to feel like I'm writing code that is going to end up needing to be 
     
     
  
 
 
	 00:23:09
     ◼
      
     ► 
     production quality. 
     
     
  
 
 
	 00:23:11
     ◼
      
     ► 
     I can ignore all the errors. 
     
     
  
 
 
	 00:23:12
     ◼
      
     ► 
     I can just sort of make it so that it just works on exactly what I'm trying to do. 
     
     
  
 
 
	 00:23:17
     ◼
      
     ► 
     So in this case, I have built a separate app that tries to automatically detect and analyze 
     
     
  
 
 
	 00:23:25
     ◼
      
     ► 
     sleep data out of all the various health inputs that we have. 
     
     
  
 
 
	 00:23:31
     ◼
      
     ► 
     And I just sat there and iterated on that until I got it to work. 
     
     
  
 
 
	 00:23:34
     ◼
      
     ► 
     And now I'm going through the process of actually turning that understanding and the data that 
     
     
  
 
 
	 00:23:40
     ◼
      
     ► 
     I can get out of that, completely reimplemented from scratch that all those algorithms and 
     
     
  
 
 
	 00:23:46
     ◼
      
     ► 
     methods that I came up with again. 
     
     
  
 
 
	 00:23:48
     ◼
      
     ► 
     In this case, it was actually slightly amusing, because I built my prototype app in Swift. 
     
     
  
 
 
	 00:23:53
     ◼
      
     ► 
     And then my C++ is an Objective-C app. 
     
     
  
 
 
	 00:23:56
     ◼
      
     ► 
     And so I was going to reimplement it anyway. 
     
     
  
 
 
	 00:24:01
     ◼
      
     ► 
     And it actually kind of worked well to keep me from being lazy and just copy/pasting things 
     
     
  
 
 
	 00:24:04
     ◼
      
     ► 
     that I actually went through and had to be thoughtful in that translation from the prototype 
     
     
  
 
 
	 00:24:10
     ◼
      
     ► 
     app to the actual app to make sure that I'm actually taking care of all the edge cases 
     
     
  
 
 
 
	 00:24:15
     ◼
      
     ► 
     That's an approach that I find works pretty well. 
     
     
  
 
 
	 00:24:18
     ◼
      
     ► 
     And then once you can get it into the app, then you can actually start working through 
     
     
  
 
 
	 00:24:22
     ◼
      
     ► 
     the actual-- making it of a higher quality. 
     
     
  
 
 
	 00:24:26
     ◼
      
     ► 
     But I find doing it and developing and prototyping in a separate app and then moving in once 
     
     
  
 
 
	 00:24:31
     ◼
      
     ► 
     you kind of have the basics worked out works pretty well for me. 
     
     
  
 
 
	 00:24:35
     ◼
      
     ► 
     So I'm curious, because I think it goes back to our competitive advantage argument earlier. 
     
     
  
 
 
	 00:24:41
     ◼
      
     ► 
     Why are you adding this feature? 
     
     
  
 
 
	 00:24:43
     ◼
      
     ► 
     Mostly because I think it makes the app better. 
     
     
  
 
 
	 00:24:46
     ◼
      
     ► 
     And I think I wish I did it. 
     
     
  
 
 
	 00:24:49
     ◼
      
     ► 
     And I know I often hear from people who use my competitors' app because they do it. 
     
     
  
 
 
	 00:24:54
     ◼
      
     ► 
     And it turned out to be much easier than I thought it was going to be. 
     
     
  
 
 
	 00:25:00
     ◼
      
     ► 
     I had in my mind that it was going to be really hard, and so I'd been putting off working 
     
     
  
 
 
 
	 00:25:04
     ◼
      
     ► 
     And because I have a lot of existing sleep data calculated in my old method, I was able 
     
     
  
 
 
	 00:25:11
     ◼
      
     ► 
     to much more quickly, I think, work out a way to process all this data and end up with 
     
     
  
 
 
	 00:25:16
     ◼
      
     ► 
     very similar results because I could just kind of try lots of things, and I could very 
     
     
  
 
 
	 00:25:21
     ◼
      
     ► 
     quickly see if it worked or wasn't going to work. 
     
     
  
 
 
	 00:25:24
     ◼
      
     ► 
     And I think it's a competitive advantage. 
     
     
  
 
 
	 00:25:26
     ◼
      
     ► 
     And I know it's a feature that I will use myself. 
     
     
  
 
 
	 00:25:29
     ◼
      
     ► 
     The ability to have your Apple Watch just track your sleep without-- all you have to 
     
     
  
 
 
	 00:25:33
     ◼
      
     ► 
     do is wear it while you sleep, and then it's all taken care of. 
     
     
  
 
 
	 00:25:37
     ◼
      
     ► 
     And so I think it's an advantage in that regard because you'll actually use the app more because 
     
     
  
 
 
	 00:25:41
     ◼
      
     ► 
     right now you have to remember to use it, which is always difficult. 
     
     
  
 
 
	 00:25:45
     ◼
      
     ► 
     - Yeah, and that makes a lot of sense. 
     
     
  
 
 
	 00:25:47
     ◼
      
     ► 
     That obviously is a compelling feature. 
     
     
  
 
 
	 00:25:49
     ◼
      
     ► 
     And I've heard podcasts where people talk about how they're comparing your app to one 
     
     
  
 
 
	 00:25:54
     ◼
      
     ► 
     of the competitors that does automatic stuff, and I thought, "Oh, that sounds compelling." 
     
     
  
 
 
	 00:25:57
     ◼
      
     ► 
     But I too would have assumed that was really hard. 
     
     
  
 
 
	 00:26:00
     ◼
      
     ► 
     And that's also kind of another, I think, maybe a good closing note here is a lot of 
     
     
  
 
 
	 00:26:04
     ◼
      
     ► 
     the-- if you're a developer and you think of or you see some other app or you think 
     
     
  
 
 
	 00:26:10
     ◼
      
     ► 
     of a feature that you want to do that sounds really hard or impossible, try it because 
     
     
  
 
 
	 00:26:15
     ◼
      
     ► 
     it might not be. 
     
     
  
 
 
	 00:26:17
     ◼
      
     ► 
     Like I first thought that doing pagination in Instapaper would be really hard, and it 
     
     
  
 
 
	 00:26:22
     ◼
      
     ► 
     turned out it really wasn't. 
     
     
  
 
 
	 00:26:24
     ◼
      
     ► 
     Similarly, if you think like, "Oh, I would love to do this kind of analysis on some feature 
     
     
  
 
 
	 00:26:29
     ◼
      
     ► 
     but with data, but the iPhone probably can't handle it. 
     
     
  
 
 
	 00:26:34
     ◼
      
     ► 
     It's probably too computationally intensive." 
     
     
  
 
 
	 00:26:37
     ◼
      
     ► 
     Try it because it might not be. 
     
     
  
 
 
	 00:26:40
     ◼
      
     ► 
     But that's another area where I've found like I always assume that, "Oh, maybe I probably 
     
     
  
 
 
	 00:26:44
     ◼
      
     ► 
     can't do things like run a live FFT on the audio stream without having a big battery 
     
     
  
 
 
 
	 00:26:50
     ◼
      
     ► 
     And the answer a lot of times is, "Nope, you totally can. 
     
     
  
 
 
	 00:26:53
     ◼
      
     ► 
     It's totally fine. 
     
     
  
 
 
	 00:26:54
     ◼
      
     ► 
     These devices are really fast these days." 
     
     
  
 
 
 
	 00:26:57
     ◼
      
     ► 
     And it's just kind of a nice thing to be-- like there is something just really fun and 
     
     
  
 
 
	 00:27:03
     ◼
      
     ► 
     encouraging when you hit on something that you thought would be really hard that actually 
     
     
  
 
 
	 00:27:07
     ◼
      
     ► 
     turned out to not be crazy hard. 
     
     
  
 
 
	 00:27:09
     ◼
      
     ► 
     And that was a really fun thing. 
     
     
  
 
 
	 00:27:10
     ◼
      
     ► 
     And it speaks to actually the last thing that I want to mention too is I've found tremendously 
     
     
  
 
 
	 00:27:14
     ◼
      
     ► 
     valuable as quickly as I can working out how to visualize the problem that I'm working 
     
     
  
 
 
	 00:27:19
     ◼
      
     ► 
     on in a way that I can see rather than just data that's being NS logged out to the console. 
     
     
  
 
 
	 00:27:26
     ◼
      
     ► 
     >> That's a good tip. 
     
     
  
 
 
	 00:27:28
     ◼
      
     ► 
     >> In a lot of my apps, like in this case with sleep tracking, it's essentially very 
     
     
  
 
 
	 00:27:33
     ◼
      
     ► 
     timeline-based. 
     
     
  
 
 
	 00:27:34
     ◼
      
     ► 
     I'm looking at a variety of inputs over time. 
     
     
  
 
 
	 00:27:37
     ◼
      
     ► 
     And so I just have a really simple app or a view controller that just has a scroll view 
     
     
  
 
 
 
	 00:27:43
     ◼
      
     ► 
     And all of the data points that I have on it, I just create a UI view and I throw it 
     
     
  
 
 
	 00:27:47
     ◼
      
     ► 
     into it, which is horrifically unperformant. 
     
     
  
 
 
	 00:27:50
     ◼
      
     ► 
     I have like 10,000 UI views in one scroll view, but it's fine. 
     
     
  
 
 
	 00:27:56
     ◼
      
     ► 
     There's better ways to do graphing, like actually doing pagination and stuff. 
     
     
  
 
 
	 00:28:00
     ◼
      
     ► 
     So I'm only rendering the stuff that I need to, but it's fine. 
     
     
  
 
 
	 00:28:03
     ◼
      
     ► 
     It's in this prototype app. 
     
     
  
 
 
	 00:28:04
     ◼
      
     ► 
     But visualizing it, making it so that I can see the connections. 
     
     
  
 
 
	 00:28:07
     ◼
      
     ► 
     And in this case, I ended up visualizing the outputs of my first couple of attempts and 
     
     
  
 
 
	 00:28:13
     ◼
      
     ► 
     aligning them with the outputs of my previous method, and they lined up perfectly. 
     
     
  
 
 
	 00:28:17
     ◼
      
     ► 
     And I was like, "Well, this works. 
     
     
  
 
 
	 00:28:19
     ◼
      
     ► 
     Well, that's amazing." 
     
     
  
 
 
	 00:28:21
     ◼
      
     ► 
     And so visualizing that as quickly as you can is just something that I can't emphasize 
     
     
  
 
 
 
	 00:28:26
     ◼
      
     ► 
     And I know this is something I think I saw you were talking about with your voice boost 
     
     
  
 
 
 
	 00:28:31
     ◼
      
     ► 
     You do the same thing. 
     
     
  
 
 
	 00:28:32
     ◼
      
     ► 
     As soon as you can see it, it's both motivating in terms of encouraging you that you're 
     
     
  
 
 
	 00:28:37
     ◼
      
     ► 
     on the right track as well as very quickly showing you the areas that aren't working 
     
     
  
 
 
	 00:28:42
     ◼
      
     ► 
     and the things you need to change. 
     
     
  
 
 
	 00:28:43
     ◼
      
     ► 
     >> Enoch - Exactly. 
     
     
  
 
 
	 00:28:44
     ◼
      
     ► 
     It makes a huge difference. 
     
     
  
 
 
	 00:28:45
     ◼
      
     ► 
     >> Michael - Yeah. 
     
     
  
 
 
	 00:28:46
     ◼
      
     ► 
     But anyway, so go forth, do some original research, try and not be intimidated by things 
     
     
  
 
 
	 00:28:53
     ◼
      
     ► 
     that you think are too hard, and see what you can come up with. 
     
     
  
 
 
	 00:28:56
     ◼
      
     ► 
     Because I think if you can come up with these things, and it turns out that they're easier 
     
     
  
 
 
	 00:28:59
     ◼
      
     ► 
     than you thought maybe, it creates a tremendous value in your app that I think, especially 
     
     
  
 
 
	 00:29:07
     ◼
      
     ► 
     as a smaller team or as a smaller developer, there is a tremendous advantage to having 
     
     
  
 
 
	 00:29:11
     ◼
      
     ► 
     these little things that are hooks, that are marketing lines, that are reasons why someone 
     
     
  
 
 
	 00:29:17
     ◼
      
     ► 
     might want to try your app versus something else. 
     
     
  
 
 
	 00:29:19
     ◼
      
     ► 
     >> Enoch - Thanks for listening everybody, and we'll talk to you next week. 
     
     
  
 
 
	 00:29:22
     ◼
      
     ► 
     >> Michael - Bye. 
     
     
  
 
 
	 00:29:23
     ◼
      
     ► 
     [BLANK_AUDIO]