PodSearch

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.