0:00:00Hello, and welcome to Developing Perspective.
0:00:03Developing Perspective is a near-daily podcast discussing the news of Note and iOS, Apple,
0:00:07and the like.
0:00:08I'm your host, David Smith.
0:00:09I'm an independent iOS developer based in Herndon, Virginia.
0:00:13This is show number 10, and today is Wednesday, August 10, 2011.
0:00:18The format of Developing Perspective is basically that I'll cover a handful of links, articles,
0:00:22and other things that I found interesting since roughly the last 24 hours ago, and then
0:00:27and move over to a more general discussion towards the end.
0:00:30The show will never be longer than 15 minutes, and without that, further ado, let's get going.
0:00:35All right, our first link today is entitled "The Growing User and the Perennial Beginner."
0:00:40This is over on Ignore the Code, Lucas Mathis's blog, who you may have noticed I've linked
0:00:46to a lot recently because he's got so much good stuff there.
0:00:49Basically it's just a really good walkthrough of the analyzing and understanding the topics
0:00:55of depth and experience with an application.
0:00:59So if you imagine in a normal application, as you use it more and more, as your experience
0:01:04grows, the depth to which you can use that application tends to increase as well.
0:01:08So if you imagine when you first sat down to write your first Word document, you're
0:01:13opening it up and you were using it at a very shallow level.
0:01:16You were just typing and looking at the words add in there.
0:01:20Then as you get more and more experienced with the application, you get more and more
0:01:23depth.
0:01:24doing more and more things with that application.
0:01:28And the interesting thing that Lucas walks through,
0:01:30though, is how a lot of applications
0:01:32segment the continuum of experience
0:01:35and depth in different ways.
0:01:37So for example, something like iMovie
0:01:41is designed to be very easy to just pick up and use.
0:01:44With very little experience, you can immediately
0:01:47start using the application.
0:01:48However, it's not very deep.
0:01:50At some point, you level off.
0:01:52And no matter how much more you use the application,
0:01:54You're not really getting more depth, no more functionality,
0:01:57no more abilities are starting to appear.
0:02:00Whereas you can contrast that to something like Final Cut Pro,
0:02:03where in order to get started at all,
0:02:06there's this large discontinuous area
0:02:08where you start at a pretty deep place in order to do anything.
0:02:12But it allows you to expand dramatically out from that.
0:02:16This is interesting as a developer to think about,
0:02:18because whenever you make an application,
0:02:20you need to have this in the back of your mind
0:02:22what it is that you're trying to do.
0:02:25Are you trying to create an application that
0:02:27has that kind of depth and richness,
0:02:29that as you use it more and more,
0:02:30it becomes a richer user experience for your users?
0:02:33Or are you trying to make something that's shallow and easy
0:02:35to use and doesn't go sort of beyond that?
0:02:37Or are you trying to create something for a power user that
0:02:40starts fairly deep and moves on?
0:02:41And you'll make a lot of design and decisions
0:02:44about how you're going to do it based on that choice.
0:02:49And while it's not necessarily one is right, one is wrong,
0:02:51It's often very hard to have an application that
0:02:53scales linearly with experience, with depth.
0:02:58And so it's often easier to pick a market
0:03:00and have two different versions, for example,
0:03:02sort of the basic version of the advanced
0:03:04or something like that, where you
0:03:06can make those trade-offs in a much more manageable way.
0:03:10Next, I just wanted to point out something
0:03:13that Apple recently started.
0:03:14I think it was just in the last day or two, which
0:03:17is an Apple recycling program, where basically they're
0:03:19allowing you to get store credit for recycling old Apple hardware.
0:03:25Which if you're anything like me, you've got boxes and boxes of the stuff sitting around.
0:03:29Now the way that I handle my old devices is I basically never get rid of anything.
0:03:34I never sell or dispose of any device I have primarily because it allows me to have such
0:03:39a wide variety of testing devices.
0:03:41I think I have something in the range of eight or nine different iOS devices covering the
0:03:45the range of spectrum I think starting from the iPhone 3G all the way up through to the
0:03:49iPad 2.
0:03:52And so it's really nice for me to be able to do all kinds of different operating systems
0:03:55and versions to be able to do compatibility testing to be able to try and simulate what
0:03:59a user has and say "Oh, I'm using this second gen iPod touch running 4.1, I actually have
0:04:05a device that I can play with and make that work with them."
0:04:09But if you're not, if you're someone who likes sort of clearing out your stuff, this is a
0:04:12nice, very convenient way to get rid of your old hardware
0:04:15in a way that gets you a little cash back in your pocket.
0:04:17For example, when the new iPhone 5 comes out,
0:04:21if you're someone who sells your current model to replace it,
0:04:25I think if you had a current 16 gig iPhone 4,
0:04:29you get about $230 credit for that, which is pretty good.
0:04:32It essentially pays for your new iPhone.
0:04:35So worth checking out.
0:04:37All right, next, just a quick little note
0:04:39that Apple released something called the Line Recovery Disk
0:04:41And this is just an easier way to create a recovery disk off your main boot partition.
0:04:47So if you're someone who wants to have another way to be able to recover a Lion machine,
0:04:52obviously without using it because there is no physical media to recover from, you have
0:04:56to recover from a physical drive.
0:04:57So this is just a little tool that they created to allow you to do that.
0:05:02Just worth checking out if that's something that you are concerned about with your Lion
0:05:05installation.
0:05:06All right.
0:05:08And next, there's a great little trick I found while I was working on a project that is using
0:05:14Arc, which is automatic reference counting, which is something new coming in iOS 5 and
0:05:20I guess Lion, probably it's 10.7.1, something like that, which is basically a way to avoid
0:05:26memory management constraints and problems in your Cocoa development.
0:05:32And this is, originally it was something that was under NDA at this point.
0:05:36It's fairly public.
0:05:37They've talked about it a lot in public in the LLVM development
0:05:42site and those types of things.
0:05:43So I think it's fairly safe to talk about at this point.
0:05:46But it's interesting, the best part about this article
0:05:50I post on Stack Overflow that I found
0:05:52is that it's possible to selectively enable
0:05:56automatic reference counting on a per file basis in an Xcode
0:06:00project.
0:06:01And especially what I found this to be helpful for
0:06:04is if I'm using a library code, whether that
0:06:06be an internal library that I wrote or a library that's
0:06:09a third party coming off someone's GitHub repository
0:06:15or something.
0:06:16And if they are not ARC compliant, which in general,
0:06:20things aren't at this point, because why would you be?
0:06:22It's not a publicly shipping version, so it's kind of tricky.
0:06:25But it allows you to take--
0:06:27you essentially just add a compiler flag in the build
0:06:30settings for that file, and it allows you that--
0:06:34it'll then compile that normally.
0:06:35So it'll have normal reference counting,
0:06:37and you're then responsible for the purposes of that file
0:06:41to be doing all the reference counting correctly.
0:06:43Now, you could probably end up with some kind of strange things
0:06:46in the boundaries between that, but so far I've
0:06:48had some pretty good experience with it.
0:06:50And it allows me to kind of just quickly get some projects
0:06:52off the ground using internal libraries
0:06:55that I have that aren't yet converted over to Arc.
0:06:58So worth checking out.
0:07:00All right, and lastly today, I just
0:07:02have a quick little link to customizing your Bash prompt.
0:07:05And this is something that if you're
0:07:07a developer of a reasonable sophistication,
0:07:09you probably know anyway.
0:07:10But I recently redid mine, and so I figured I'd link to it.
0:07:14But it's basically your bash prompt.
0:07:15So when you open up the terminal,
0:07:17the characters that appear before your-- I guess
0:07:21the carrot where you're actually going to be entering your code
0:07:25are entirely customizable.
0:07:26And you can put all manner of things in there-- usernames,
0:07:29times, dates, all kinds of interesting stuff there.
0:07:33And you can change colors and who knows what.
0:07:36And it allows you to just kind of customize that to your preferences.
0:07:39For me, I like having the time and the current path as the two things that are in my prompt.
0:07:46And I do that primarily because the time is really helpful often when I'm trying to see
0:07:50how long something ran.
0:07:52So if I'm running a script and I'm like, "That seemed like that took a little longer than
0:07:54I thought, that kind of thing," I can easily just compare the timestamps and see when I
0:07:58kicked it off and when it completed.
0:08:01And then it includes the working directory because it just helps kind of keep track of
0:08:03where you are.
0:08:04So just a nice way to kind of customize and improve your workflow in the terminal.
0:08:09All right, so now I'm going to move over to the general discussion for today.
0:08:14And the topic for today is what I'm calling my digital diet.
0:08:19And what I am specifically talking about here is something that I recently started doing.
0:08:23After realizing how much, just how much that I was, time and energy and specifically just
0:08:29sort of effort that I was putting into keeping up with sort of digital news and related things.
0:08:36So often the most primary place that this was happening was inside of Twitter and the
0:08:40way that I was using it and the way that I was checking it.
0:08:43And what a typical kind of day for me would look like is I'd wake up, pick up my iPhone
0:08:474, open it up, open up my email, see if there's anything in there that needs immediate attention,
0:08:53open up Tweetbot, open up, look in there, read all my tweets, see what's going on.
0:08:57I was following at the time, maybe 120 people, something like that.
0:09:02So it's a fair volume, not an absurd volume, but it was almost at that dangerous point
0:09:07where I could keep up with everything in it.
0:09:09So it wasn't sort of declaring bankruptcy about following things.
0:09:12If I was following a thousand people, it would just be impossible to read every tweet in
0:09:16my stream.
0:09:18But it was at this kind of dangerous point where it was taking a lot of time to keep
0:09:21up with that, but it still felt possible.
0:09:24So that's what I was doing.
0:09:25And I'd go over to Reader and look at all my RSS feeds,
0:09:29check that out, and then flip over
0:09:31to Instapaper at the end of all that
0:09:34to read all the articles and things
0:09:35that I had marked as interesting for later in Reader or Tweetbot.
0:09:40And the thing that I was kind of struck by, though,
0:09:42was how much of my day and how much
0:09:44of my sort of cognitive energy of a day
0:09:47was being spent doing that.
0:09:49I was probably checking those various things.
0:09:53it's probably not an exaggeration to say 50 times a day, maybe, something like that.
0:09:57It sort of became my default activity. It was almost this visceral addiction that I had when
0:10:03I had a free moment, where my mind went from actively engaged in whatever it was into that
0:10:09more resting state. It was like, "Oh, let's go check what's going on. Let's see what's happening.
0:10:13I wonder what's happening there. Let's check my email. Let's check Twitter. Let's check the RSS."
0:10:16And I was becoming very cognizant that what I was doing, though, that I was never allowing
0:10:23myself to rest. That my mind was creating this sort of dependence and addiction on constantly
0:10:29having being fed with new more information, more knowledge, more links, more articles,
0:10:34all kinds of things. And it was, I think, ultimately was being very damaging to sort of my
0:10:39typical day for me. I was always being tired. I was always kind of feeling worn down. And part
0:10:45of that was because I was never actually resting. I was always on. And so what I did is this most of
0:10:52this was being manifested itself on my iPhone. And so I specifically took my iPhone, I removed,
0:10:58I, let's see, I removed mail, I removed all my Twitter clients, all my RSS readers, I
0:11:04removed Instapaper, and I removed Safari that I took all and then I went into the parental
0:11:11controls area, I set a, I removed the ability to add new applications, the ability to turn
0:11:16on Safari, those types of things. And then I had asked my wife to set a passcode for
0:11:21that I didn't know.
0:11:22And the reason is that I had to do that rather than just
0:11:25turning them off and then knowing the passcode,
0:11:27is I don't trust myself.
0:11:29I don't trust that I'm not going to be like,
0:11:30oh, this would be a great time for me to do that.
0:11:32I really want to.
0:11:34And it's kind of like forcing me to go cold turkey.
0:11:37It's allowing me to kind of break that habit.
0:11:39The interesting thing is after I did that,
0:11:41I still have this urge, which is kind of a strange thing,
0:11:46and always kind of worrying when you find yourself kind of
0:11:49driven by something that you're not really mindful of. I was still reaching for my iPhone,
0:11:55I'd pick it up and I'd be like, "Wait, I can't do anything on this." But that would happen dozens
0:12:00of times a day. And that just sort of proves to me that I'm doing the right thing because I'm not
0:12:05really in control of that. That's sort of become an addiction and become a part of my day that is
0:12:10not something that I'm consciously intending to do. It's a bad habit that I'd fallen into.
0:12:17And so at this point, it's about four or five days into this, and the incidence of those
0:12:22kinds of adjustments are getting better.
0:12:25I'm doing that less and less.
0:12:27And on the plus side, and this is where I sort of get to the point of recommending someone
0:12:31to recommend going on a digital diet, kind of cutting off yourself from that sort of
0:12:37always on, never-ending sort of approach to information is at this point, I feel like
0:12:43I'm more rested.
0:12:45My mind is more at peace.
0:12:49In some ways, it reminds me a bit of--
0:12:51it's like I'm spending more time taking a shower.
0:12:54And when I say that, I mean it's that kind of thinking
0:12:56that you have when you take a shower.
0:12:58Most people have this shared experience
0:13:00that you have your best ideas when you're in the shower.
0:13:02And I think a lot of that is your mind is idling.
0:13:04It's kind of like your computer when it does something to do.
0:13:07It just switches into idle mode, and you kind of
0:13:09get into this different state.
0:13:11Whereas if I was never allowing myself to get there,
0:13:13I was always, whenever I went to sort of idle,
0:13:16whenever I went to sort of had nothing
0:13:18as my first most thought, all of a sudden I was like,
0:13:21oh, let's fill that in.
0:13:22Let's throw stuff in there.
0:13:23And it's kind of turned me into--
0:13:26it's like I'm a little kid who is having a piece of candy
0:13:28every 10 minutes.
0:13:30And it tastes great at the time.
0:13:31It's good, exciting, it's fun.
0:13:33I feel like I'm engaged.
0:13:34I feel like I'm part of the community.
0:13:36This is great.
0:13:37But really, all I'm doing is rotting my teeth
0:13:39and making my blood sugar go wild.
0:13:42And so in that sense, I think it's definitely
0:13:44been a good thing.
0:13:44And at some point, I expect I'll probably
0:13:47start putting a few things back on to my iPhone.
0:13:50At some point, I'll probably be--
0:13:53I'll work on exactly what I want that to be.
0:13:55But the nice thing is I'll be making
0:13:57a proactive, conscious decision for what
0:13:59it is that I want that to be, rather than being
0:14:01driven by a bad habit that I got myself in.
0:14:04So anyway, that's just something that I've been doing that I
0:14:06hopefully is helpful to think about, or at least
0:14:09to be a little introspective on and think
0:14:11about really what's driving me.
0:14:13Am I in control of this?
0:14:14Or am I kind of falling into a bad habit?
0:14:17And that's creating problems for me.
0:14:19So anyway, that's the topic for today.
0:14:21Hope you enjoyed today's show.
0:14:22If you have any questions, comments, thoughts,
0:14:24hit me up on Twitter.
0:14:25I'm @_davidsmith.
0:14:26Though, like I just said, I probably
0:14:28won't be getting back to you quite as quickly.
0:14:29I still check Twitter.
0:14:30But it's more something I do once a day, twice a day.
0:14:34And then otherwise, I hope you have a good day.
0:14:37If you like the show, make sure you tell your friends about it.
0:14:39And otherwise, happy coding.
0:14:40and I'll talk to you tomorrow.
0:14:41Bye.