Developing Perspective

#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:44   And

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:55   And

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:03   where he

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:22   is

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:36   process

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:08   be okay.

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

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:39   on a whim

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:01   for

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

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:27   So anyway,

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.

00:14:01   Thanks.

00:14:02   [