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: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: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: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: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: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: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: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: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: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.