PodSearch

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.