Developing Perspective

Show 4


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

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

00:00:07   and the like.

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

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

00:00:12   This is show number four, and today is Tuesday, August 2nd, 2011.

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

00:00:22   things that I found interesting in roughly the last 24 hours, and then towards the end,

00:00:26   I'll have a more general discussion.

00:00:27   The show will never be longer than 15 minutes and will never include third-party advertising.

00:00:32   And so without further ado, let's get to it.

00:00:34   All right, first bit of news.

00:00:36   Yesterday, Apple announced pricing and information about iCloud.

00:00:40   So they unleashed the iCloud.com website, which is just very attractive and good to

00:00:45   look at.

00:00:46   But furthermore, and perhaps most interesting, they announced pricing for the iCloud itself.

00:00:51   And so this is for the storage above your free five gigabytes that everybody gets.

00:00:56   They announced pricing at 10 gigabytes.

00:00:58   It costs $20 a year.

00:00:59   20 gigabytes at $40 a year and 50 gigabytes at $100 a year,

00:01:05   which is pretty competitive, I think, with all the other cloud

00:01:08   offerings that you'd look at.

00:01:09   So as a point of comparison, 50 gigabytes on Dropbox

00:01:13   is about $120 a year.

00:01:16   So it's slightly cheaper on Apple's solution.

00:01:20   At this point, there's not all that much to do with this.

00:01:22   If you're a developer, you're just

00:01:23   continuing working with the betas and so on.

00:01:26   But it's just more good to see that Apple is really

00:01:29   taking this seriously and putting a lot of presumably

00:01:31   cost and infrastructure behind this

00:01:34   and making it so that the average user isn't

00:01:36   going to have to probably worry about their cloud storage

00:01:40   sort of space.

00:01:41   It's important to keep in mind that space does not

00:01:43   include anything you've bought from Apple.

00:01:45   So purchase music, apps, books, photo stream, video stream,

00:01:50   those types of things are-- actually,

00:01:52   maybe I'm not sure about video.

00:01:53   But it definitely doesn't include your music apps

00:01:55   and books or pictures in your photo stream.

00:01:59   And so those things are just included for free.

00:02:01   So it's also just very nice to note

00:02:03   that those things will be available at no charge.

00:02:06   So most users aren't going to have a problem with space,

00:02:09   which is very good news for developers.

00:02:11   Next, there's a great post over on Ignore the Code talking

00:02:17   about invisible scroll bars.

00:02:19   And so Lucas Mathis is talking about-- there's

00:02:22   There's a whole bunch of discussion about the new thing in line where there are no scroll

00:02:25   bars and so kind of what that means for users where sometimes you're kind of pawing at the

00:02:29   interface to try and understand and find if there's more content in things.

00:02:34   And in typical fashion, Lucas comes up with a much more elegant solution to a lot of that

00:02:40   problem.

00:02:41   Just by changing a little bit on the edges, you can create a very simple and clear graphical

00:02:47   cues to the user, essentially creating borders that are hidden on edges where content exists

00:02:53   and visible where it doesn't.

00:02:55   So if you have a view that can't scroll, you just have the borders all the way around.

00:03:01   If you can scroll to the right, there's no border on the right.

00:03:03   And visually, it's a very, very simple way to just keep track of that and understand

00:03:07   it.

00:03:08   So just definitely worth checking out and really just looking at anything he does.

00:03:11   I find his blog posts and discussions to be top notch.

00:03:15   Next, there's just an interesting article over on murmurs.

00:03:20   This is by Mike Lee.

00:03:23   Talking about, and it's something that he's trying to get started about the Lauths's patent

00:03:29   dispute.

00:03:30   And essentially what he's trying to do is put together a legal defense fund as part

00:03:35   of the Amsterdam project, which I believe is a thing that he's working on to create

00:03:41   to kind of an incubator or an environment in which you can create apps over in the Netherlands.

00:03:47   But essentially what he's trying to do here is create a mechanism and a framework whereby

00:03:54   Michael McCoy, who is a Texas technology attorney, will be going after intellectual ventures,

00:04:01   essentially trying to be a thorn in the side of the patent trolls.

00:04:05   It'll be very interesting to see how this plays out.

00:04:09   It's kind of a complicated thing where, as an independent iOS developer, patents and

00:04:15   patent disputes are certainly something that I worry about.

00:04:18   But it's very tricky for me to say, "Okay, I'm going to go ahead and support this in

00:04:22   a large and significant way," because it's such a large and undirected approach.

00:04:29   It's not, in many ways, I'd be far better served potentially taking that money and putting

00:04:35   it towards a rainy day fund for if I ever get sued or those types of things.

00:04:41   I definitely wish him the best, and depending on exactly what happens once it gets a bit

00:04:45   more defined, I could certainly see supporting it.

00:04:48   But at this point, I guess it's supposed to be cautiously interested.

00:04:52   All right.

00:04:53   Next, I'm just going to talk about...

00:04:56   I found this great little post over on oleb.net, which is by Ole Bergman.

00:05:03   And basically it's just a Mac and iOS development link roundup.

00:05:08   If you like links, which is hopefully why you'd like this show, this is definitely an

00:05:13   interesting article to look at.

00:05:15   It's basically an anthology of all the interesting things that have happened and changed and

00:05:21   that are available sort of recently in this kind of world in Mac and iOS development.

00:05:30   And so definitely worth checking out and probably subscribing

00:05:32   to his RSS in the future.

00:05:36   All right, and then lastly, I have a article about Git.

00:05:40   Like I mentioned yesterday, Git is my version control system

00:05:43   of choice.

00:05:45   And Benjamin Sandofsky wrote a great article

00:05:50   called Understanding the Git Workflow, which

00:05:53   is trying to help you understand Git at a more refined level,

00:05:58   at a lower level, at a level that is probably a bit beyond

00:06:01   just, OK, I can sort of git add, git commit, git push, git pull,

00:06:07   git add, git, and so on.

00:06:09   That kind of a workflow which works,

00:06:11   but it doesn't really take full advantage

00:06:13   of some of the amazing functionality of git.

00:06:16   So it's definitely, if you're new to git, or even if you just

00:06:19   use git sometimes the way I do, which is just using it just

00:06:22   as a sort of a dumb checkpointing system,

00:06:25   then this is definitely worth reading and taking a look at.

00:06:30   All right, now I'll move over onto the main discussion

00:06:33   for today, which is going to talk a little bit about backups.

00:06:36   And the impetus for this was there's

00:06:38   an article over on Duncan Davidson's blog

00:06:43   talking about saying that RAID is not backup, which

00:06:46   is categorically true.

00:06:50   But I think it's worth elaborating on.

00:06:52   And I'll talk a little bit about how

00:06:53   backups to describe that.

00:06:55   So if you're not familiar with what

00:06:57   he's saying when he says RAID is not backup,

00:06:58   RAID is a way to try and prevent against disk failure

00:07:02   by taking your data and moving it across multiple disks

00:07:06   in a fold-tolerant way.

00:07:07   So that if one disk fails, you typically don't have a loss.

00:07:13   There's all kinds of different flavors of this.

00:07:14   You can have RAID 1, which is you take essentially a mirror

00:07:18   and you write everything twice.

00:07:20   There's things like RAID 5, which

00:07:21   It's a pretty commonly used one where it stripes the data across multiple disks, which allows

00:07:27   you to scale it more largely, and you have only one disk of wasted space.

00:07:33   So if you have five 10-gig disks, you only lose 10 gigs of space.

00:07:38   But essentially what he's saying here is, so a RAID system prevents you ... All it does

00:07:43   is create a more fault-tolerant disk.

00:07:44   It doesn't actually back up your data.

00:07:47   Backup is something that allows you to completely recover the copy of your data from something

00:07:53   separate from your primary storage of that data.

00:07:57   That is what a backup is.

00:07:58   Simply taking your information and putting it somewhere else or putting it into a more

00:08:03   fault-tolerant form isn't really a backup.

00:08:06   Backup is a way of recovering your data later.

00:08:08   The way I handle backups is fairly straightforward, but I think it's a fairly robust system for

00:08:15   for an independent developer such as myself.

00:08:17   So my main machine at the office is a 27-inch iMac.

00:08:23   And I run that off an external FireWire 800 solid state drive.

00:08:27   And I do that for performance reasons.

00:08:29   I wish I could fit the solid state drive internally,

00:08:31   but upgrading an iMac is treacherous.

00:08:34   When the first step is get suction cups, apply to glass,

00:08:37   and remove gently, that's terrifying to me.

00:08:40   So instead, I run it externally on a FireWire drive.

00:08:43   The internal drive of my iMac is therefore available for me to use for backup.

00:08:48   So what I then do is I have a partition on the internal drive that every night at about

00:08:54   midnight is copied from the external solid state drive, my main boot drive.

00:08:59   A bootable copy is created on the iMac itself.

00:09:02   So now I have my main system with everything on it in two places.

00:09:08   The additional benefit to this is if I take my solid state drive out, I'm on the road

00:09:12   with it or whatever, I can boot from that.

00:09:14   So I plug it into a MacBook Pro.

00:09:16   I can boot from that and not have the usual problems

00:09:20   of syncing and keeping two machines in sync.

00:09:22   It's exactly the same setup, just on a slower machine.

00:09:25   And also, I can boot the iMac without that extra drive

00:09:28   attached, which has also come in handy sometimes.

00:09:32   So then furthermore, I have additional backups

00:09:35   in place on top of that.

00:09:37   I run a thing called Backblaze, which

00:09:38   is a service that does off-site online backups, where

00:09:42   basically they are constantly running in the background, making a copy of all of the contents

00:09:50   of my machine.

00:09:51   So this isn't a bootable backup, this is a data backup, and it takes that and creates

00:09:55   a backup of all my files, all the interesting things about my machine, and sends it off

00:09:59   to a data center somewhere far away.

00:10:03   And that is sort of what I would call my Armageddon backup.

00:10:07   If everything fell apart, at least I have that.

00:10:09   At least I have a way to get a hold of that data.

00:10:11   It's not an especially useful backup in the sense that if something goes wrong, I would

00:10:16   have a lot of trouble getting a hold of that.

00:10:19   But if in the near term, it works well for helping me sort of hedge against total disaster.

00:10:26   So this is my office burnt down, massive robbery, those types of things I'd be sort of carried

00:10:32   against.

00:10:33   And I've done some checking with them where it's always important if you have a backup

00:10:37   to actually try and use it.

00:10:38   And so I've gone and requested large quantities of my data

00:10:42   back and pulled it down, made sure it all looked good.

00:10:47   Furthermore, my internal-- probably

00:10:51   the most important thing that I have internally

00:10:53   is all in Dropbox.

00:10:54   So this is my code.

00:10:55   This is my legal agreements, documents,

00:10:58   those types of things.

00:10:59   Those are all in Dropbox.

00:11:00   So that information on a regular basis

00:11:03   is in Dropbox, Backblaze, my main machine,

00:11:08   as well as the clone of my main machine.

00:11:10   So in all of those different places,

00:11:12   it's very unlikely something's going to happen.

00:11:14   One benefit, too, of both Dropbox and Backblaze

00:11:17   is they're somewhat versioned.

00:11:18   And so you can also retrieve old versions of documents.

00:11:21   So you're also protecting against accidentally deleting

00:11:24   a document and then being able to recover it later, which

00:11:27   is another kind of backup.

00:11:29   And then lastly, I then also take all of my source code

00:11:34   and put it into GitHub.

00:11:37   So as an independent developer, my source code is probably the single most valuable

00:11:41   thing that I have.

00:11:42   That is the thing that drives, you know, if someone came in, destroyed all of my hardware,

00:11:47   but I still was able to, you know, in order for me to continue to do business, well I

00:11:50   can just get a couple more computers, you know, that's not that difficult.

00:11:53   But recreating what I have done as a developer would be incredibly costly and inefficient.

00:11:59   And so that, my code is also in GitHub.

00:12:02   So my most valuable asset, my code, is in GitHub, Dropbox,

00:12:07   Backblaze, Main Drive, and the mirror of the Main Drive.

00:12:12   So in general, I would say that's a fairly resilient thing

00:12:15   to failure.

00:12:16   It's covered in multiple cloud storage systems,

00:12:20   as well as multiple drives locally in my office.

00:12:23   So it's fairly well protected.

00:12:26   I don't currently use Time Machine.

00:12:28   I've never found it to be something

00:12:30   sort of worthwhile for me.

00:12:31   It doesn't seem, I'll either want an exact copy of it, of my data, so that I can boot

00:12:37   from those types of things, or I want it far away on a cloud system where I'm able to have

00:12:45   sort of an additional level of redundancy against things like physical problems, lightning

00:12:49   strike fire.

00:12:50   Lots of those types of things are more what I'm concerned about than some of the benefits

00:12:54   that Time Machine creates.

00:12:56   So anyway, that's just the way that I do it.

00:13:00   For my actual systems itself, let's see, for all my web systems, I tend to use the baked-in

00:13:05   backup functionality built into my host.

00:13:08   So this is something that, for example, the engineer at cloud does, where you can say,

00:13:11   you know, back up my systems and it does a nightly snapshot, or I think it's an hourly

00:13:15   snapshot of the database and a few other things like that.

00:13:18   Nothing I do on the web service side is especially sort of enterprise critical.

00:13:23   It's usually just caches and things.

00:13:26   And so I could recreate almost all of that if I needed to, either from code or just by

00:13:31   letting the cache fill back up.

00:13:34   So anyway, that's just the way that I do it.

00:13:36   Definitely a couple of things to take away.

00:13:38   Making sure that your backup solution covers a variety of different failure modes.

00:13:43   So that's internal drive failures, sort of location failures.

00:13:47   So that's the fire at your house, fire at your office kind of scenario, as well as vendor

00:13:52   failures.

00:13:53   So having one of your primary backup vendors fail.

00:13:55   So if in my case, if Backblaze failed,

00:13:57   it's most important stuff's in Dropbox,

00:14:01   and it's all on at least two drives,

00:14:03   and those types of things.

00:14:05   And then four is just important to make sure

00:14:06   that any time you actually are doing backup,

00:14:08   that you've actually tried to do a restore from it.

00:14:10   That occasionally you boot from your mirror drive,

00:14:12   that occasionally you download data from your cloud storage

00:14:16   storage system to make sure that it's actually

00:14:18   doing what you think it's doing.

00:14:19   Because you would not want to discover that there's problems.

00:14:22   When you actually have a problem,

00:14:23   you'd want to discover a problem when you can easily

00:14:25   cover from it.

00:14:26   All right, well that's it for today.

00:14:28   If you have any questions, comments, thoughts, hit me up on Twitter.

00:14:31   I am @_DavidSmith.

00:14:32   Otherwise, have a good day, happy coding, and I'll talk to you tomorrow.