#45: Failing in Success
00:00:00
◼
►
Hello and welcome to Developing Perspective. Developing Perspective is a podcast discussing
00:00:05
◼
►
news of note in iOS, Apple, and the like. I'm your host, David Smith. I'm an independent
00:00:10
◼
►
iOS developer based in Herne, Virginia. Today is Friday, May 11th, and this is show number
00:00:14
◼
►
45. Developing Perspective is never longer than 15 minutes, so let's get started.
00:00:20
◼
►
So if you can hear this, then the topic of this show was successful. And by that I mean
00:00:25
◼
►
A few hours ago I had a link on marku.org, by Marku Arment, to the podcast, to what you're
00:00:34
◼
►
listening to right now.
00:00:35
◼
►
He was linking to an article I wrote about iOS 5.1.1 upgrade stats, which is a good read
00:00:42
◼
►
if you're interested in that kind of thing, just sort of showing how quickly users are
00:00:47
◼
►
upgrading to iOS 5.1.1 over updates.
00:00:51
◼
►
That's all well and good and interesting, but the thing that I wanted to talk about
00:00:55
◼
►
for today's show, which I wasn't expecting to do a show. It's currently about 7, 7 p.m.
00:01:00
◼
►
Eastern time, and usually about this time I'd be at home, but instead I've just spent
00:01:05
◼
►
the last couple of hours trying to resurrect and put back together my server configuration
00:01:10
◼
►
that I had been hosting Developing Perspective on, and that process and kind of the, some
00:01:16
◼
►
of the topics around that I thought were kind of interesting and might be worth a sort of
00:01:19
◼
►
broader discussion here.
00:01:22
◼
►
And so let's just sort of dive into that.
00:01:25
◼
►
So I guess you could kind of start off by talking about it as
00:01:29
◼
►
being sure that you're kind of planning for success.
00:01:32
◼
►
So Developing Perspective started almost a year ago. I've dug it up and I think the
00:01:36
◼
►
first episode was in July of last year.
00:01:40
◼
►
So not quite a year, but you know, about ten
00:01:43
◼
►
and a bit months.
00:01:46
◼
►
You know, originally it started off as a project that
00:01:50
◼
►
I just kind of wanted to do, almost to prove to myself that I could do it.
00:01:57
◼
►
you know, that sort of was worthwhile. It all got started actually from an episode of
00:02:01
◼
►
Back to Work with Merlyn Mann
00:02:04
◼
►
was talking about advice he'd give people who asked him about blogging and, you know, he did say,
00:02:08
◼
►
"Oh, Merlyn, I want to be a successful blogger like you.
00:02:12
◼
►
You know, what do I have to do? What should I do?" And he said,
00:02:15
◼
►
if you want to be successful at something or
00:02:18
◼
►
moreover if you kind of want to see if you want to be successful
00:02:21
◼
►
what you need to do
00:02:23
◼
►
write every day for a blog
00:02:26
◼
►
whether that gets published or not doesn't really matter
00:02:29
◼
►
what you need to do is every single day you need to show up
00:02:32
◼
►
and you need to write
00:02:33
◼
►
and you need to write an article and you need to kind of get into that
00:02:37
◼
►
because it'll very quickly show if that's what you think you'd like
00:02:40
◼
►
what do you think you'll actually enjoy is in reality what you'd want.
00:02:45
◼
►
And you can kind of judge from there.
00:02:47
◼
►
And so, you know, I was like, that sounds interesting. I really like listening to podcasts.
00:02:51
◼
►
I really like
00:02:52
◼
►
sort of the topics that get discussed. I'm a big 5x5 fan.
00:02:56
◼
►
And so I was like,
00:02:59
◼
►
you know, maybe
00:02:59
◼
►
this is something I'd like to do.
00:03:01
◼
►
And so I started developing perspective.
00:03:05
◼
►
At the time it was just kind of, it started off as just a daily
00:03:09
◼
►
news show, essentially. I would talk for a few minutes about links and things, and if
00:03:12
◼
►
you go back to episode one, it is horrible. I would honestly rather you didn't, but if
00:03:17
◼
►
you want a little bit of fun at my expense, that's certainly a place to go. You know,
00:03:21
◼
►
I'm recording it on the CUSB Logitech headset, and it's kind of horrible. I sound like I'm
00:03:28
◼
►
stoned, and I mean, it's just horrible. But the thing that was important about that is,
00:03:34
◼
►
I've been doing-- I sort of-- I kept doing it.
00:03:37
◼
►
And over time, you just kind of get better at it.
00:03:39
◼
►
And I hope I don't sound stoned anymore.
00:03:41
◼
►
I hope I sound good and clear, and the quality of the audio is great.
00:03:45
◼
►
And that's just kind of the process I've been going through for a long time.
00:03:49
◼
►
And it's not like the most people who listen to the show
00:03:52
◼
►
either know me personally, or honestly, even like friends and family.
00:03:55
◼
►
My dad's probably the biggest listener of the show.
00:03:59
◼
►
And so that's kind of the way it had always been.
00:04:01
◼
►
and I had Developing Perspective hosted just on a VPS that I managed
00:04:06
◼
►
just over on Linode, which
00:04:08
◼
►
if you don't know about Linode, they just sort of essentially rent a virtual Linux box
00:04:12
◼
►
for not very much money and it's great. I host my main blog there and all kinds of things.
00:04:17
◼
►
And the interesting thing about this link that Marco did, and this is kind of
00:04:21
◼
►
getting to the technical part of this
00:04:23
◼
►
discussion, was
00:04:25
◼
►
I host both the
00:04:27
◼
►
Developing Perspective WordPress installation, which is just I use WordPress
00:04:31
◼
►
because it's a really easy way to set up a podcast, my static Octopress-based website,
00:04:38
◼
►
DavidSmith.org, and then I was also hosting the MP3 files, just served raw from Apache,
00:04:44
◼
►
all on the same server. And it turns out that is not a good idea. And at this point I'm
00:04:50
◼
►
not entirely sure what it was, but some combination of those three things meant that when all
00:04:56
◼
►
of a sudden a few thousand people showed up and said, "Hey, that sounds interesting. Let
00:05:00
◼
►
let me check that out, the server just died. And it's kind of fascinating because the server
00:05:06
◼
►
has been, just before I restarted it for the first time, I pulled the stat and its previous
00:05:12
◼
►
uptime had been 573 days. So it had been up since, you know, for getting on towards two
00:05:20
◼
►
years. But then this particular thing just brought it to its knees. And so it was kind
00:05:26
◼
►
I think mostly it was the fact that all of a sudden I'm serving MP3 files in mass,
00:05:31
◼
►
that it had just never been doing with that.
00:05:34
◼
►
And Apache is dealing with this interesting problem of dealing all the small files from the blog post
00:05:39
◼
►
in addition to serving some HTML files for the podcast,
00:05:46
◼
►
and then all of a sudden serving these 9, 10 meg MP3 files, and it just died.
00:05:52
◼
►
died. The server was just toast. I ran out of memory. It seems to be the actual, like,
00:05:56
◼
►
if I had a cause of death, ran out of memory.
00:06:01
◼
►
And so now I'm going to walk through quickly the process that I went through to then get
00:06:04
◼
►
it back on its feet, because hopefully, if you're listening to this, I'm sure you do
00:06:09
◼
►
some things online, you have services, you have all kinds of things that you someday
00:06:13
◼
►
would like to have this problem. You know, kind of be slashdotted, be fireballed, whatever
00:06:17
◼
►
you kind of want to call it, where you just kind of get crushed by unexpected load.
00:06:23
◼
►
And so this is the process I went through.
00:06:25
◼
►
So initially, really all I could do was restart the server a lot.
00:06:29
◼
►
It would run out of memory, I'd restart it, it would come, you know, so it would be go
00:06:33
◼
►
down for a minute, come back up, run for about five minutes, go back down.
00:06:38
◼
►
That's not great, but at least sort of one out of, or five out of six of people coming
00:06:44
◼
►
to my website during that period were getting the site.
00:06:46
◼
►
So that's not... I'd like 100%, but at least a good percentage of people were.
00:06:53
◼
►
So then while I'm doing that, while I'm kind of sitting there just restarting the server
00:06:57
◼
►
whenever it starts dying, I'm in the background, okay, I'm trying to analyze what's going on,
00:07:03
◼
►
and I start to see, okay, it seems like if I pull the MP3 files off, then things will
00:07:09
◼
►
So I start taking all the MP3 files for the show and move them over to S3.
00:07:14
◼
►
Now I'm not sure if I want to ultimately host them on S3 because if it's successful it could
00:07:19
◼
►
actually turn out to be fairly expensive, but in the short term what's more expensive
00:07:24
◼
►
is losing the opportunity to gain a listener, to gain you if you're listening to this right
00:07:30
◼
►
And so I'm just putting them there and I'll deal with that next week sometime I'll work
00:07:35
◼
►
out a good home for them.
00:07:37
◼
►
So I start uploading those to there.
00:07:41
◼
►
need to go through my WordPress, uh, PodPress plugin and redirect all of the files from
00:07:48
◼
►
my old, sort of their old home on my VPS to S3. Okay, so go through and do that for all
00:07:54
◼
►
54 episodes. Uh, it kind of makes me wish I didn't have quite so many episodes, but
00:07:58
◼
►
I guess that's, you know, a mixed blessing. And then I also realized that I had kind of
00:08:03
◼
►
an interesting thing where very recently, as in, uh, this morning or one or two days
00:08:09
◼
►
ago, I'd recently migrated the
00:08:13
◼
►
podpress, wordpress hosting for the blog from a
00:08:18
◼
►
dream host account that I had to my VPS and set it up there.
00:08:22
◼
►
Originally I was like, "Oh, that'll probably be more performant. I have a bit more control over VPS
00:08:26
◼
►
than my shared dream host account
00:08:28
◼
►
where it had just kind of been set up on a whim."
00:08:31
◼
►
And so I was like, "Oh, well that's interesting because I actually have
00:08:34
◼
►
a completely working parallel installation of my site
00:08:39
◼
►
with all the same data in it.
00:08:42
◼
►
And so what I can actually do then, which this was kind of fun
00:08:45
◼
►
to play with, but I then went into the DNS records
00:08:50
◼
►
for the domain, so for developingperspective.com, and I just
00:08:54
◼
►
redirected them back to the old site.
00:08:56
◼
►
And so I almost had this built-in load balancer
00:09:00
◼
►
way up at the DNS level, because as those changes start moving around and
00:09:05
◼
►
propagating,
00:09:06
◼
►
I'm starting to split my traffic between people who have the old record and people who have
00:09:09
◼
►
the new record, which in the short term really helps bring down my traffic, which worked
00:09:14
◼
►
out really well.
00:09:15
◼
►
Now, that almost solved the problem, but I still had a bunch of pointers pointing back
00:09:21
◼
►
to the old location of the MP3 files, which were, you know, essentially if someone's downloaded
00:09:27
◼
►
the feed RSS in an app or something like that, they're still going to be pointing to that.
00:09:33
◼
►
And so for those people what I did is you went and did a .htaccess file to tell Apache,
00:09:40
◼
►
"Hey, if you get a request for this file, actually redirect them with a 301 to S3."
00:09:46
◼
►
And that really worked.
00:09:49
◼
►
At this point the site seems to have been up for about an hour, so crossing my fingers,
00:09:53
◼
►
things seem to be doing great.
00:09:55
◼
►
And it's kind of exciting to me.
00:09:58
◼
►
And then the last little thing I needed to do to just tie it off was I wanted to make
00:10:01
◼
►
sure that anybody who was accessing the old site, sort of from an old DNS record, I changed
00:10:08
◼
►
the landing page of that to just direct them to iTunes.
00:10:11
◼
►
So if they are listening to it and think it's interesting, well, just go to iTunes for now.
00:10:17
◼
►
Until everything's sorted out, I'm pretty sure Apple can scale.
00:10:19
◼
►
At least they can scale something like this.
00:10:22
◼
►
So that's kind of the story, and it worked.
00:10:25
◼
►
And I've got to say, it's kind of been an emotional thing, too.
00:10:29
◼
►
after all that settled down and everything set up
00:10:32
◼
►
and it seems to be running is the realization that right now
00:10:36
◼
►
developing perspectives, something that just sort of started
00:10:40
◼
►
almost a year ago and something that I've spent hours and hours just kind of
00:10:44
◼
►
working away on kind of an obscurity
00:10:47
◼
►
is suddenly kind of successful. It's currently the number eight
00:10:51
◼
►
tech news podcast in iTunes and
00:10:54
◼
►
that's insane. That's just
00:10:57
◼
►
that's immense to me. It's something that I've been doing just as a labor of love
00:11:02
◼
►
you know for so long and then just to see all of a sudden people actually like it and get
00:11:06
◼
►
some great feedback and people be like, "Hey, this is great." You know, it's a very
00:11:09
◼
►
different format I think and hopefully that appeals to people. I'm being very
00:11:13
◼
►
careful about saying, "Hey, it's fifteen minutes, it's fifteen minutes, it's fifteen minutes."
00:11:17
◼
►
You know, you can
00:11:19
◼
►
kind of commit to listening to my show
00:11:21
◼
►
without a huge investment of your time. If you skip an episode, that's great. They're
00:11:25
◼
►
all very self-contained, I'm not running threads through all of them.
00:11:28
◼
►
You know, it's just designed to be something that's--if you're interested in Apple, if
00:11:31
◼
►
you're interested in iOS development, Mac development, those types of topics, that I
00:11:34
◼
►
can give you a quick hit and be like, "Hey, you know, here's some things that are interesting
00:11:37
◼
►
to me, here's some things you should check out."
00:11:40
◼
►
And, you know, so I couldn't really--sort of couldn't be happier about that.
00:11:45
◼
►
And I'm just--so I want to say thank you.
00:11:46
◼
►
Thank you to all the--all the listeners out there who are checking it out for the first
00:11:52
◼
►
Welcome, I hope you enjoy it.
00:11:53
◼
►
and you know thanks to Marco for
00:11:55
◼
►
linking to me. I mean it's one of those things of
00:11:58
◼
►
that you kind of have in this
00:11:59
◼
►
sort of in the online world where someone's currency is the
00:12:04
◼
►
sort of the current is the
00:12:07
◼
►
the links they choose to bestow on other people.
00:12:09
◼
►
You know it's kind of the concept of page rank with Google is that
00:12:12
◼
►
the best way to judge the value or the worthiness of a site
00:12:16
◼
►
is by sort of aggregating the value of the sites that point to them.
00:12:20
◼
►
And so you know it means a lot to me for
00:12:22
◼
►
you know, someone who I respect to point to the work that I've been doing.
00:12:29
◼
►
that's kind of today's show.
00:12:31
◼
►
Hopefully that was interesting. It's kind of a bit more off topic than a lot of what I do.
00:12:35
◼
►
I promise on Monday I'll be back to kind of my normal iOS and, you know, stuff like that.
00:12:41
◼
►
I should actually be launching audiobooks. It finally got approved late last night.
00:12:46
◼
►
Tuesday I'll be launching audiobooks and be kind of walking you through the process of
00:12:50
◼
►
launching an app or in this case relaunching it with a major update
00:12:53
◼
►
which will hopefully be interesting to you.
00:12:56
◼
►
Couple of topics, just things I wanted to mention. The 5x5 app just launched
00:13:00
◼
►
which if you're a 5x5 listener, I recommend
00:13:04
◼
►
at least checking it out, seeing if it's what you like. I'm a long time live listener
00:13:08
◼
►
I actually wrote a Mac app 5 Live which I'll also have links to in the show notes
00:13:12
◼
►
just for listening on your Mac, but this is for listening on your iOS
00:13:16
◼
►
and even if you don't think the app is useful, I definitely recommend just checking it
00:13:20
◼
►
out as a way to sort of give back to 5x5, a way to make a sort of a concrete contribution
00:13:26
◼
►
to them that'll support the shows, but then also we sort of benefit yourself and get some
00:13:31
◼
►
cool functionality.
00:13:32
◼
►
So anyway, that's today's show.
00:13:34
◼
►
As always, if you have questions, comments, concerns, thoughts, hit me up on Twitter.
00:13:39
◼
►
I'm @_davidsmith, underscore D-A-V-I-D S-M-I-T-H.
00:13:45
◼
►
And if you want to follow this podcast on Twitter and see when there's new shows, new
00:13:49
◼
►
There's a feed for that and that's @devperspective.
00:13:55
◼
►
And otherwise, I hope you have a great weekend.
00:13:58
◼
►
Happy coding and I will talk to you on Monday.