0:00:00Hello, and welcome to Developing Perspective.
0:00:03Developing Perspective is a near-daily podcast discussing the news of Note in iOS, Apple,
0:00:07and the like.
0:00:08I'm your host, David Smith.
0:00:09I'm the independent iOS developer based in Herndon, Virginia.
0:00:12This is show number four, and today is Tuesday, August 2nd, 2011.
0:00:18The format of Developing Perspective is basically that I will cover a handful of links, articles,
0:00:22things that I found interesting in roughly the last 24 hours, and then towards the end,
0:00:26I'll have a more general discussion.
0:00:27The show will never be longer than 15 minutes and will never include third-party advertising.
0:00:32And so without further ado, let's get to it.
0:00:34All right, first bit of news.
0:00:36Yesterday, Apple announced pricing and information about iCloud.
0:00:40So they unleashed the iCloud.com website, which is just very attractive and good to
0:00:45look at.
0:00:46But furthermore, and perhaps most interesting, they announced pricing for the iCloud itself.
0:00:51And so this is for the storage above your free five gigabytes that everybody gets.
0:00:56They announced pricing at 10 gigabytes.
0:00:58It costs $20 a year.
0:00:5920 gigabytes at $40 a year and 50 gigabytes at $100 a year,
0:01:05which is pretty competitive, I think, with all the other cloud
0:01:08offerings that you'd look at.
0:01:09So as a point of comparison, 50 gigabytes on Dropbox
0:01:13is about $120 a year.
0:01:16So it's slightly cheaper on Apple's solution.
0:01:20At this point, there's not all that much to do with this.
0:01:22If you're a developer, you're just
0:01:23continuing working with the betas and so on.
0:01:26But it's just more good to see that Apple is really
0:01:29taking this seriously and putting a lot of presumably
0:01:31cost and infrastructure behind this
0:01:34and making it so that the average user isn't
0:01:36going to have to probably worry about their cloud storage
0:01:40sort of space.
0:01:41It's important to keep in mind that space does not
0:01:43include anything you've bought from Apple.
0:01:45So purchase music, apps, books, photo stream, video stream,
0:01:50those types of things are-- actually,
0:01:52maybe I'm not sure about video.
0:01:53But it definitely doesn't include your music apps
0:01:55and books or pictures in your photo stream.
0:01:59And so those things are just included for free.
0:02:01So it's also just very nice to note
0:02:03that those things will be available at no charge.
0:02:06So most users aren't going to have a problem with space,
0:02:09which is very good news for developers.
0:02:11Next, there's a great post over on Ignore the Code talking
0:02:17about invisible scroll bars.
0:02:19And so Lucas Mathis is talking about-- there's
0:02:22There's a whole bunch of discussion about the new thing in line where there are no scroll
0:02:25bars and so kind of what that means for users where sometimes you're kind of pawing at the
0:02:29interface to try and understand and find if there's more content in things.
0:02:34And in typical fashion, Lucas comes up with a much more elegant solution to a lot of that
0:02:40problem.
0:02:41Just by changing a little bit on the edges, you can create a very simple and clear graphical
0:02:47cues to the user, essentially creating borders that are hidden on edges where content exists
0:02:53and visible where it doesn't.
0:02:55So if you have a view that can't scroll, you just have the borders all the way around.
0:03:01If you can scroll to the right, there's no border on the right.
0:03:03And visually, it's a very, very simple way to just keep track of that and understand
0:03:07it.
0:03:08So just definitely worth checking out and really just looking at anything he does.
0:03:11I find his blog posts and discussions to be top notch.
0:03:15Next, there's just an interesting article over on murmurs.
0:03:20This is by Mike Lee.
0:03:23Talking about, and it's something that he's trying to get started about the Lauths's patent
0:03:29dispute.
0:03:30And essentially what he's trying to do is put together a legal defense fund as part
0:03:35of the Amsterdam project, which I believe is a thing that he's working on to create
0:03:41to kind of an incubator or an environment in which you can create apps over in the Netherlands.
0:03:47But essentially what he's trying to do here is create a mechanism and a framework whereby
0:03:54Michael McCoy, who is a Texas technology attorney, will be going after intellectual ventures,
0:04:01essentially trying to be a thorn in the side of the patent trolls.
0:04:05It'll be very interesting to see how this plays out.
0:04:09It's kind of a complicated thing where, as an independent iOS developer, patents and
0:04:15patent disputes are certainly something that I worry about.
0:04:18But it's very tricky for me to say, "Okay, I'm going to go ahead and support this in
0:04:22a large and significant way," because it's such a large and undirected approach.
0:04:29It's not, in many ways, I'd be far better served potentially taking that money and putting
0:04:35it towards a rainy day fund for if I ever get sued or those types of things.
0:04:41I definitely wish him the best, and depending on exactly what happens once it gets a bit
0:04:45more defined, I could certainly see supporting it.
0:04:48But at this point, I guess it's supposed to be cautiously interested.
0:04:52All right.
0:04:53Next, I'm just going to talk about...
0:04:56I found this great little post over on oleb.net, which is by Ole Bergman.
0:05:03And basically it's just a Mac and iOS development link roundup.
0:05:08If you like links, which is hopefully why you'd like this show, this is definitely an
0:05:13interesting article to look at.
0:05:15It's basically an anthology of all the interesting things that have happened and changed and
0:05:21that are available sort of recently in this kind of world in Mac and iOS development.
0:05:30And so definitely worth checking out and probably subscribing
0:05:32to his RSS in the future.
0:05:36All right, and then lastly, I have a article about Git.
0:05:40Like I mentioned yesterday, Git is my version control system
0:05:43of choice.
0:05:45And Benjamin Sandofsky wrote a great article
0:05:50called Understanding the Git Workflow, which
0:05:53is trying to help you understand Git at a more refined level,
0:05:58at a lower level, at a level that is probably a bit beyond
0:06:01just, OK, I can sort of git add, git commit, git push, git pull,
0:06:07git add, git, and so on.
0:06:09That kind of a workflow which works,
0:06:11but it doesn't really take full advantage
0:06:13of some of the amazing functionality of git.
0:06:16So it's definitely, if you're new to git, or even if you just
0:06:19use git sometimes the way I do, which is just using it just
0:06:22as a sort of a dumb checkpointing system,
0:06:25then this is definitely worth reading and taking a look at.
0:06:30All right, now I'll move over onto the main discussion
0:06:33for today, which is going to talk a little bit about backups.
0:06:36And the impetus for this was there's
0:06:38an article over on Duncan Davidson's blog
0:06:43talking about saying that RAID is not backup, which
0:06:46is categorically true.
0:06:50But I think it's worth elaborating on.
0:06:52And I'll talk a little bit about how
0:06:53backups to describe that.
0:06:55So if you're not familiar with what
0:06:57he's saying when he says RAID is not backup,
0:06:58RAID is a way to try and prevent against disk failure
0:07:02by taking your data and moving it across multiple disks
0:07:06in a fold-tolerant way.
0:07:07So that if one disk fails, you typically don't have a loss.
0:07:13There's all kinds of different flavors of this.
0:07:14You can have RAID 1, which is you take essentially a mirror
0:07:18and you write everything twice.
0:07:20There's things like RAID 5, which
0:07:21It's a pretty commonly used one where it stripes the data across multiple disks, which allows
0:07:27you to scale it more largely, and you have only one disk of wasted space.
0:07:33So if you have five 10-gig disks, you only lose 10 gigs of space.
0:07:38But essentially what he's saying here is, so a RAID system prevents you ... All it does
0:07:43is create a more fault-tolerant disk.
0:07:44It doesn't actually back up your data.
0:07:47Backup is something that allows you to completely recover the copy of your data from something
0:07:53separate from your primary storage of that data.
0:07:57That is what a backup is.
0:07:58Simply taking your information and putting it somewhere else or putting it into a more
0:08:03fault-tolerant form isn't really a backup.
0:08:06Backup is a way of recovering your data later.
0:08:08The way I handle backups is fairly straightforward, but I think it's a fairly robust system for
0:08:15for an independent developer such as myself.
0:08:17So my main machine at the office is a 27-inch iMac.
0:08:23And I run that off an external FireWire 800 solid state drive.
0:08:27And I do that for performance reasons.
0:08:29I wish I could fit the solid state drive internally,
0:08:31but upgrading an iMac is treacherous.
0:08:34When the first step is get suction cups, apply to glass,
0:08:37and remove gently, that's terrifying to me.
0:08:40So instead, I run it externally on a FireWire drive.
0:08:43The internal drive of my iMac is therefore available for me to use for backup.
0:08:48So what I then do is I have a partition on the internal drive that every night at about
0:08:54midnight is copied from the external solid state drive, my main boot drive.
0:08:59A bootable copy is created on the iMac itself.
0:09:02So now I have my main system with everything on it in two places.
0:09:08The additional benefit to this is if I take my solid state drive out, I'm on the road
0:09:12with it or whatever, I can boot from that.
0:09:14So I plug it into a MacBook Pro.
0:09:16I can boot from that and not have the usual problems
0:09:20of syncing and keeping two machines in sync.
0:09:22It's exactly the same setup, just on a slower machine.
0:09:25And also, I can boot the iMac without that extra drive
0:09:28attached, which has also come in handy sometimes.
0:09:32So then furthermore, I have additional backups
0:09:35in place on top of that.
0:09:37I run a thing called Backblaze, which
0:09:38is a service that does off-site online backups, where
0:09:42basically they are constantly running in the background, making a copy of all of the contents
0:09:50of my machine.
0:09:51So this isn't a bootable backup, this is a data backup, and it takes that and creates
0:09:55a backup of all my files, all the interesting things about my machine, and sends it off
0:09:59to a data center somewhere far away.
0:10:03And that is sort of what I would call my Armageddon backup.
0:10:07If everything fell apart, at least I have that.
0:10:09At least I have a way to get a hold of that data.
0:10:11It's not an especially useful backup in the sense that if something goes wrong, I would
0:10:16have a lot of trouble getting a hold of that.
0:10:19But if in the near term, it works well for helping me sort of hedge against total disaster.
0:10:26So this is my office burnt down, massive robbery, those types of things I'd be sort of carried
0:10:32against.
0:10:33And I've done some checking with them where it's always important if you have a backup
0:10:37to actually try and use it.
0:10:38And so I've gone and requested large quantities of my data
0:10:42back and pulled it down, made sure it all looked good.
0:10:47Furthermore, my internal-- probably
0:10:51the most important thing that I have internally
0:10:53is all in Dropbox.
0:10:54So this is my code.
0:10:55This is my legal agreements, documents,
0:10:58those types of things.
0:10:59Those are all in Dropbox.
0:11:00So that information on a regular basis
0:11:03is in Dropbox, Backblaze, my main machine,
0:11:08as well as the clone of my main machine.
0:11:10So in all of those different places,
0:11:12it's very unlikely something's going to happen.
0:11:14One benefit, too, of both Dropbox and Backblaze
0:11:17is they're somewhat versioned.
0:11:18And so you can also retrieve old versions of documents.
0:11:21So you're also protecting against accidentally deleting
0:11:24a document and then being able to recover it later, which
0:11:27is another kind of backup.
0:11:29And then lastly, I then also take all of my source code
0:11:34and put it into GitHub.
0:11:37So as an independent developer, my source code is probably the single most valuable
0:11:41thing that I have.
0:11:42That is the thing that drives, you know, if someone came in, destroyed all of my hardware,
0:11:47but I still was able to, you know, in order for me to continue to do business, well I
0:11:50can just get a couple more computers, you know, that's not that difficult.
0:11:53But recreating what I have done as a developer would be incredibly costly and inefficient.
0:11:59And so that, my code is also in GitHub.
0:12:02So my most valuable asset, my code, is in GitHub, Dropbox,
0:12:07Backblaze, Main Drive, and the mirror of the Main Drive.
0:12:12So in general, I would say that's a fairly resilient thing
0:12:15to failure.
0:12:16It's covered in multiple cloud storage systems,
0:12:20as well as multiple drives locally in my office.
0:12:23So it's fairly well protected.
0:12:26I don't currently use Time Machine.
0:12:28I've never found it to be something
0:12:30sort of worthwhile for me.
0:12:31It doesn't seem, I'll either want an exact copy of it, of my data, so that I can boot
0:12:37from those types of things, or I want it far away on a cloud system where I'm able to have
0:12:45sort of an additional level of redundancy against things like physical problems, lightning
0:12:49strike fire.
0:12:50Lots of those types of things are more what I'm concerned about than some of the benefits
0:12:54that Time Machine creates.
0:12:56So anyway, that's just the way that I do it.
0:13:00For my actual systems itself, let's see, for all my web systems, I tend to use the baked-in
0:13:05backup functionality built into my host.
0:13:08So this is something that, for example, the engineer at cloud does, where you can say,
0:13:11you know, back up my systems and it does a nightly snapshot, or I think it's an hourly
0:13:15snapshot of the database and a few other things like that.
0:13:18Nothing I do on the web service side is especially sort of enterprise critical.
0:13:23It's usually just caches and things.
0:13:26And so I could recreate almost all of that if I needed to, either from code or just by
0:13:31letting the cache fill back up.
0:13:34So anyway, that's just the way that I do it.
0:13:36Definitely a couple of things to take away.
0:13:38Making sure that your backup solution covers a variety of different failure modes.
0:13:43So that's internal drive failures, sort of location failures.
0:13:47So that's the fire at your house, fire at your office kind of scenario, as well as vendor
0:13:52failures.
0:13:53So having one of your primary backup vendors fail.
0:13:55So if in my case, if Backblaze failed,
0:13:57it's most important stuff's in Dropbox,
0:14:01and it's all on at least two drives,
0:14:03and those types of things.
0:14:05And then four is just important to make sure
0:14:06that any time you actually are doing backup,
0:14:08that you've actually tried to do a restore from it.
0:14:10That occasionally you boot from your mirror drive,
0:14:12that occasionally you download data from your cloud storage
0:14:16storage system to make sure that it's actually
0:14:18doing what you think it's doing.
0:14:19Because you would not want to discover that there's problems.
0:14:22When you actually have a problem,
0:14:23you'd want to discover a problem when you can easily
0:14:25cover from it.
0:14:26All right, well that's it for today.
0:14:28If you have any questions, comments, thoughts, hit me up on Twitter.
0:14:31I am @_DavidSmith.
0:14:32Otherwise, have a good day, happy coding, and I'll talk to you tomorrow.