Developing Perspective

#10 - A Digital Diet


00:00:00   Hello, and welcome to Developing Perspective.

00:00:03   Developing Perspective is a near-daily podcast discussing the news of Note and iOS, Apple,

00:00:07   and the like.

00:00:08   I'm your host, David Smith.

00:00:09   I'm an independent iOS developer based in Herndon, Virginia.

00:00:13   This is show number 10, and today is Wednesday, August 10, 2011.

00:00:18   The format of Developing Perspective is basically that I'll cover a handful of links, articles,

00:00:22   and other things that I found interesting since roughly the last 24 hours ago, and then

00:00:27   and move over to a more general discussion towards the end.

00:00:30   The show will never be longer than 15 minutes, and without that, further ado, let's get going.

00:00:35   All right, our first link today is entitled "The Growing User and the Perennial Beginner."

00:00:40   This is over on Ignore the Code, Lucas Mathis's blog, who you may have noticed I've linked

00:00:46   to a lot recently because he's got so much good stuff there.

00:00:49   Basically it's just a really good walkthrough of the analyzing and understanding the topics

00:00:55   of depth and experience with an application.

00:00:59   So if you imagine in a normal application, as you use it more and more, as your experience

00:01:04   grows, the depth to which you can use that application tends to increase as well.

00:01:08   So if you imagine when you first sat down to write your first Word document, you're

00:01:13   opening it up and you were using it at a very shallow level.

00:01:16   You were just typing and looking at the words add in there.

00:01:20   Then as you get more and more experienced with the application, you get more and more

00:01:23   depth.

00:01:24   doing more and more things with that application.

00:01:28   And the interesting thing that Lucas walks through,

00:01:30   though, is how a lot of applications

00:01:32   segment the continuum of experience

00:01:35   and depth in different ways.

00:01:37   So for example, something like iMovie

00:01:41   is designed to be very easy to just pick up and use.

00:01:44   With very little experience, you can immediately

00:01:47   start using the application.

00:01:48   However, it's not very deep.

00:01:50   At some point, you level off.

00:01:52   And no matter how much more you use the application,

00:01:54   You're not really getting more depth, no more functionality,

00:01:57   no more abilities are starting to appear.

00:02:00   Whereas you can contrast that to something like Final Cut Pro,

00:02:03   where in order to get started at all,

00:02:06   there's this large discontinuous area

00:02:08   where you start at a pretty deep place in order to do anything.

00:02:12   But it allows you to expand dramatically out from that.

00:02:16   This is interesting as a developer to think about,

00:02:18   because whenever you make an application,

00:02:20   you need to have this in the back of your mind

00:02:22   what it is that you're trying to do.

00:02:25   Are you trying to create an application that

00:02:27   has that kind of depth and richness,

00:02:29   that as you use it more and more,

00:02:30   it becomes a richer user experience for your users?

00:02:33   Or are you trying to make something that's shallow and easy

00:02:35   to use and doesn't go sort of beyond that?

00:02:37   Or are you trying to create something for a power user that

00:02:40   starts fairly deep and moves on?

00:02:41   And you'll make a lot of design and decisions

00:02:44   about how you're going to do it based on that choice.

00:02:49   And while it's not necessarily one is right, one is wrong,

00:02:51   It's often very hard to have an application that

00:02:53   scales linearly with experience, with depth.

00:02:58   And so it's often easier to pick a market

00:03:00   and have two different versions, for example,

00:03:02   sort of the basic version of the advanced

00:03:04   or something like that, where you

00:03:06   can make those trade-offs in a much more manageable way.

00:03:10   Next, I just wanted to point out something

00:03:13   that Apple recently started.

00:03:14   I think it was just in the last day or two, which

00:03:17   is an Apple recycling program, where basically they're

00:03:19   allowing you to get store credit for recycling old Apple hardware.

00:03:25   Which if you're anything like me, you've got boxes and boxes of the stuff sitting around.

00:03:29   Now the way that I handle my old devices is I basically never get rid of anything.

00:03:34   I never sell or dispose of any device I have primarily because it allows me to have such

00:03:39   a wide variety of testing devices.

00:03:41   I think I have something in the range of eight or nine different iOS devices covering the

00:03:45   the range of spectrum I think starting from the iPhone 3G all the way up through to the

00:03:49   iPad 2.

00:03:52   And so it's really nice for me to be able to do all kinds of different operating systems

00:03:55   and versions to be able to do compatibility testing to be able to try and simulate what

00:03:59   a user has and say "Oh, I'm using this second gen iPod touch running 4.1, I actually have

00:04:05   a device that I can play with and make that work with them."

00:04:09   But if you're not, if you're someone who likes sort of clearing out your stuff, this is a

00:04:12   nice, very convenient way to get rid of your old hardware

00:04:15   in a way that gets you a little cash back in your pocket.

00:04:17   For example, when the new iPhone 5 comes out,

00:04:21   if you're someone who sells your current model to replace it,

00:04:25   I think if you had a current 16 gig iPhone 4,

00:04:29   you get about $230 credit for that, which is pretty good.

00:04:32   It essentially pays for your new iPhone.

00:04:35   So worth checking out.

00:04:37   All right, next, just a quick little note

00:04:39   that Apple released something called the Line Recovery Disk

00:04:41   And this is just an easier way to create a recovery disk off your main boot partition.

00:04:47   So if you're someone who wants to have another way to be able to recover a Lion machine,

00:04:52   obviously without using it because there is no physical media to recover from, you have

00:04:56   to recover from a physical drive.

00:04:57   So this is just a little tool that they created to allow you to do that.

00:05:02   Just worth checking out if that's something that you are concerned about with your Lion

00:05:05   installation.

00:05:06   All right.

00:05:08   And next, there's a great little trick I found while I was working on a project that is using

00:05:14   Arc, which is automatic reference counting, which is something new coming in iOS 5 and

00:05:20   I guess Lion, probably it's 10.7.1, something like that, which is basically a way to avoid

00:05:26   memory management constraints and problems in your Cocoa development.

00:05:32   And this is, originally it was something that was under NDA at this point.

00:05:36   It's fairly public.

00:05:37   They've talked about it a lot in public in the LLVM development

00:05:42   site and those types of things.

00:05:43   So I think it's fairly safe to talk about at this point.

00:05:46   But it's interesting, the best part about this article

00:05:50   I post on Stack Overflow that I found

00:05:52   is that it's possible to selectively enable

00:05:56   automatic reference counting on a per file basis in an Xcode

00:06:00   project.

00:06:01   And especially what I found this to be helpful for

00:06:04   is if I'm using a library code, whether that

00:06:06   be an internal library that I wrote or a library that's

00:06:09   a third party coming off someone's GitHub repository

00:06:15   or something.

00:06:16   And if they are not ARC compliant, which in general,

00:06:20   things aren't at this point, because why would you be?

00:06:22   It's not a publicly shipping version, so it's kind of tricky.

00:06:25   But it allows you to take--

00:06:27   you essentially just add a compiler flag in the build

00:06:30   settings for that file, and it allows you that--

00:06:34   it'll then compile that normally.

00:06:35   So it'll have normal reference counting,

00:06:37   and you're then responsible for the purposes of that file

00:06:41   to be doing all the reference counting correctly.

00:06:43   Now, you could probably end up with some kind of strange things

00:06:46   in the boundaries between that, but so far I've

00:06:48   had some pretty good experience with it.

00:06:50   And it allows me to kind of just quickly get some projects

00:06:52   off the ground using internal libraries

00:06:55   that I have that aren't yet converted over to Arc.

00:06:58   So worth checking out.

00:07:00   All right, and lastly today, I just

00:07:02   have a quick little link to customizing your Bash prompt.

00:07:05   And this is something that if you're

00:07:07   a developer of a reasonable sophistication,

00:07:09   you probably know anyway.

00:07:10   But I recently redid mine, and so I figured I'd link to it.

00:07:14   But it's basically your bash prompt.

00:07:15   So when you open up the terminal,

00:07:17   the characters that appear before your-- I guess

00:07:21   the carrot where you're actually going to be entering your code

00:07:25   are entirely customizable.

00:07:26   And you can put all manner of things in there-- usernames,

00:07:29   times, dates, all kinds of interesting stuff there.

00:07:33   And you can change colors and who knows what.

00:07:36   And it allows you to just kind of customize that to your preferences.

00:07:39   For me, I like having the time and the current path as the two things that are in my prompt.

00:07:46   And I do that primarily because the time is really helpful often when I'm trying to see

00:07:50   how long something ran.

00:07:52   So if I'm running a script and I'm like, "That seemed like that took a little longer than

00:07:54   I thought, that kind of thing," I can easily just compare the timestamps and see when I

00:07:58   kicked it off and when it completed.

00:08:01   And then it includes the working directory because it just helps kind of keep track of

00:08:03   where you are.

00:08:04   So just a nice way to kind of customize and improve your workflow in the terminal.

00:08:09   All right, so now I'm going to move over to the general discussion for today.

00:08:14   And the topic for today is what I'm calling my digital diet.

00:08:19   And what I am specifically talking about here is something that I recently started doing.

00:08:23   After realizing how much, just how much that I was, time and energy and specifically just

00:08:29   sort of effort that I was putting into keeping up with sort of digital news and related things.

00:08:36   So often the most primary place that this was happening was inside of Twitter and the

00:08:40   way that I was using it and the way that I was checking it.

00:08:43   And what a typical kind of day for me would look like is I'd wake up, pick up my iPhone

00:08:47   4, open it up, open up my email, see if there's anything in there that needs immediate attention,

00:08:53   open up Tweetbot, open up, look in there, read all my tweets, see what's going on.

00:08:57   I was following at the time, maybe 120 people, something like that.

00:09:02   So it's a fair volume, not an absurd volume, but it was almost at that dangerous point

00:09:07   where I could keep up with everything in it.

00:09:09   So it wasn't sort of declaring bankruptcy about following things.

00:09:12   If I was following a thousand people, it would just be impossible to read every tweet in

00:09:16   my stream.

00:09:18   But it was at this kind of dangerous point where it was taking a lot of time to keep

00:09:21   up with that, but it still felt possible.

00:09:24   So that's what I was doing.

00:09:25   And I'd go over to Reader and look at all my RSS feeds,

00:09:29   check that out, and then flip over

00:09:31   to Instapaper at the end of all that

00:09:34   to read all the articles and things

00:09:35   that I had marked as interesting for later in Reader or Tweetbot.

00:09:40   And the thing that I was kind of struck by, though,

00:09:42   was how much of my day and how much

00:09:44   of my sort of cognitive energy of a day

00:09:47   was being spent doing that.

00:09:49   I was probably checking those various things.

00:09:53   it's probably not an exaggeration to say 50 times a day, maybe, something like that.

00:09:57   It sort of became my default activity. It was almost this visceral addiction that I had when

00:10:03   I had a free moment, where my mind went from actively engaged in whatever it was into that

00:10:09   more resting state. It was like, "Oh, let's go check what's going on. Let's see what's happening.

00:10:13   I wonder what's happening there. Let's check my email. Let's check Twitter. Let's check the RSS."

00:10:16   And I was becoming very cognizant that what I was doing, though, that I was never allowing

00:10:23   myself to rest. That my mind was creating this sort of dependence and addiction on constantly

00:10:29   having being fed with new more information, more knowledge, more links, more articles,

00:10:34   all kinds of things. And it was, I think, ultimately was being very damaging to sort of my

00:10:39   typical day for me. I was always being tired. I was always kind of feeling worn down. And part

00:10:45   of that was because I was never actually resting. I was always on. And so what I did is this most of

00:10:52   this was being manifested itself on my iPhone. And so I specifically took my iPhone, I removed,

00:10:58   I, let's see, I removed mail, I removed all my Twitter clients, all my RSS readers, I

00:11:04   removed Instapaper, and I removed Safari that I took all and then I went into the parental

00:11:11   controls area, I set a, I removed the ability to add new applications, the ability to turn

00:11:16   on Safari, those types of things. And then I had asked my wife to set a passcode for

00:11:21   that I didn't know.

00:11:22   And the reason is that I had to do that rather than just

00:11:25   turning them off and then knowing the passcode,

00:11:27   is I don't trust myself.

00:11:29   I don't trust that I'm not going to be like,

00:11:30   oh, this would be a great time for me to do that.

00:11:32   I really want to.

00:11:34   And it's kind of like forcing me to go cold turkey.

00:11:37   It's allowing me to kind of break that habit.

00:11:39   The interesting thing is after I did that,

00:11:41   I still have this urge, which is kind of a strange thing,

00:11:46   and always kind of worrying when you find yourself kind of

00:11:49   driven by something that you're not really mindful of. I was still reaching for my iPhone,

00:11:55   I'd pick it up and I'd be like, "Wait, I can't do anything on this." But that would happen dozens

00:12:00   of times a day. And that just sort of proves to me that I'm doing the right thing because I'm not

00:12:05   really in control of that. That's sort of become an addiction and become a part of my day that is

00:12:10   not something that I'm consciously intending to do. It's a bad habit that I'd fallen into.

00:12:17   And so at this point, it's about four or five days into this, and the incidence of those

00:12:22   kinds of adjustments are getting better.

00:12:25   I'm doing that less and less.

00:12:27   And on the plus side, and this is where I sort of get to the point of recommending someone

00:12:31   to recommend going on a digital diet, kind of cutting off yourself from that sort of

00:12:37   always on, never-ending sort of approach to information is at this point, I feel like

00:12:43   I'm more rested.

00:12:45   My mind is more at peace.

00:12:49   In some ways, it reminds me a bit of--

00:12:51   it's like I'm spending more time taking a shower.

00:12:54   And when I say that, I mean it's that kind of thinking

00:12:56   that you have when you take a shower.

00:12:58   Most people have this shared experience

00:13:00   that you have your best ideas when you're in the shower.

00:13:02   And I think a lot of that is your mind is idling.

00:13:04   It's kind of like your computer when it does something to do.

00:13:07   It just switches into idle mode, and you kind of

00:13:09   get into this different state.

00:13:11   Whereas if I was never allowing myself to get there,

00:13:13   I was always, whenever I went to sort of idle,

00:13:16   whenever I went to sort of had nothing

00:13:18   as my first most thought, all of a sudden I was like,

00:13:21   oh, let's fill that in.

00:13:22   Let's throw stuff in there.

00:13:23   And it's kind of turned me into--

00:13:26   it's like I'm a little kid who is having a piece of candy

00:13:28   every 10 minutes.

00:13:30   And it tastes great at the time.

00:13:31   It's good, exciting, it's fun.

00:13:33   I feel like I'm engaged.

00:13:34   I feel like I'm part of the community.

00:13:36   This is great.

00:13:37   But really, all I'm doing is rotting my teeth

00:13:39   and making my blood sugar go wild.

00:13:42   And so in that sense, I think it's definitely

00:13:44   been a good thing.

00:13:44   And at some point, I expect I'll probably

00:13:47   start putting a few things back on to my iPhone.

00:13:50   At some point, I'll probably be--

00:13:53   I'll work on exactly what I want that to be.

00:13:55   But the nice thing is I'll be making

00:13:57   a proactive, conscious decision for what

00:13:59   it is that I want that to be, rather than being

00:14:01   driven by a bad habit that I got myself in.

00:14:04   So anyway, that's just something that I've been doing that I

00:14:06   hopefully is helpful to think about, or at least

00:14:09   to be a little introspective on and think

00:14:11   about really what's driving me.

00:14:13   Am I in control of this?

00:14:14   Or am I kind of falling into a bad habit?

00:14:17   And that's creating problems for me.

00:14:19   So anyway, that's the topic for today.

00:14:21   Hope you enjoyed today's show.

00:14:22   If you have any questions, comments, thoughts,

00:14:24   hit me up on Twitter.

00:14:25   I'm @_davidsmith.

00:14:26   Though, like I just said, I probably

00:14:28   won't be getting back to you quite as quickly.

00:14:29   I still check Twitter.

00:14:30   But it's more something I do once a day, twice a day.

00:14:34   And then otherwise, I hope you have a good day.

00:14:37   If you like the show, make sure you tell your friends about it.

00:14:39   And otherwise, happy coding.

00:14:40   and I'll talk to you tomorrow.

00:14:41   Bye.