Podcast Search

Developing Perspective

Show 4

Select a time to play from there. The line being spoken is highlighted as the audio plays.

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.