Listen

Info

  • Date2013-04-02
  • Duration52:55
  • DescriptionMike Little is one of the earliest WordPress contributors. He talks about how he got involved with the project and his early contributions.
  • Tagsb2, xml-rpc, contributors, biography

Transcript

Interviewer 00:02 Okay, so the first thing I've been asking everybody is, why did you start blogging in the first place? Why did you want to get online?#

Campbell 00:20 Well, I'd been already online in some sense or another for a while. I became aware of the Internet during my college days, these were the mid-late '80s, and so I was even on the Internet as early as 1988 or 1989 - of course these were the days before blogging, there was no web yet, because the web didn't come along until about 1994. But by the time the web came around and all that, one of the first really popular websites was Slashdot, for technical stuff, so I used to do Slashdot a lot. In the early days of my own experiments with setting up websites and stuff for customers - I was the manager at an ISP in Huntsville, Alabama at the time - so we set up websites for two of our customers, and we set up stuff for, of course, our own website, our own company website, and we had a lot of customers that would call and ask us questions, and so we were setting up a customer support-type site, and so I decided to model it after Slashdot. I like that format where the latest articles would float to the top and they were easy to find, and it was a nice automated system where I didn't have to manually edit HTML files all the time. So that was one of my first experiments with PHP, and my sequel was setting up a Slashdot-like website for our customers.#

Interviewer 01:40 When was this?#

Campbell 01:45 This was probably in like '95, '96 maybe.#

Interviewer 01:48 What was it called?#

Campbell 01:50 The company's no longer around, the ISP is no longer around, but it was a company called Advocon. It was an ISP, like I said, it was a local ISP in Huntsville, Alabama, one of the first ones in that area. So like I said, it was actually, the site that I [inaudible] for that was, in particular, was a site about how to guard against email spam. And actually I had it for a while under my own account, so it was like, 'spam.guders.org' or something like that, or, 'spam.--' I don't know, I had it on the company website in its own little sub-section, but in any case, that was one of my earliest experiments with the web, and that was one of my first exposures to a blog-type system. So a few years went by and I changed jobs here and there, and I had my own homepage, but it was just a mish-mash of random stuff - there was no format, there was no structure to it, it was just, I'd do something new or pick new pictures of something or find some new funny like and I'd just slap it on the page somewhere. Eventually I decided, You know what? I should probably have some more structure to my own site, since I like doing web stuff and I'm kind of doing it as a job now. I looked at various blogging systems, and I tried a couple of things out - I looked at Movable Type for a while, but it was so complicated and sowed up that I never actually did anything in Movable Type. Then I had found one that was a brand new one that this guy was doing on his own, but he was looking for some other people to try to get the word out about it. There was this little thing called My PHP Blog, and you could really easily embed it into an existing page, and I kind of liked that, and I added some of the same stuff to that that I later wound up adding to WordPress - like some RSS features and stuff like that. But it didn't have RSS to start with, I added all the RSS features to that - feeds, because feeds were just starting to be popular at that time. And I used that for a while at my site, starting in the Fall of 2001 - that was the first time that I actually had a blog of my own set up, that was just mine, and that was in September of 2001. So I used that for quite a while, and helped enhance that, but the main author was kind of slow to update and didn't like to incorporate changes very quickly - so he'd be working on his own, and then later on he'd try to merge my changes in, and he'd have to change stuff. This guy got frustrating after a while, so I started looking around for something else to use, and of course one of the things I ran across was b2. I really liked b2, b2 was really nice, it seemed pretty easy to use and had more features than what I was already using, but at that time it was kind of dying. The original author Michel Valdrighi had fallen off the Internet for a little bit, he had some other stuff going on and wasn't really paying attention to b2 very much. And it had already forked out a couple of other versions of b2, there were already a couple of other existing forks of it. It was around this time that I was starting to think, I need to write my own system or find something better, and I had actually reached out to Matt Mullenweg around that time, because he was using b2, and Mike Little was using b2 - I'd found both of them. Of course I'd been following Matt for a while anyway, because at that time he was doing a lot of photography stuff, and a little web stuff here and there, and so we had conversations as comments to each other on our various blogs, and I had posted before about - I really need to figure out what I'm going to do here, is there something better I can use or should I write my own? And I had some ideas about writing my own. Around the same time, of course, Matt was just starting to think about forking out b2 as WordPress, and so we exchanged emails about that. About the time he was ready to kick things off he asked if I wanted to join in, and I was like, "Well, I'm really busy at work right now, so I really wouldn't be able to participate very much right now, I'm just so swamped right now, I'd love to help out but I'd hate to commit to it and then not be able to do the thing." Story of my life [laughter]. And so he started things rolling on that, and then a couple months later things eased up at work a little bit, and we were still exchanging emails, and he contacted me again and said, "Hey, we're doing this stuff now, and if you're interested still we'd like to have some input from you, even if it's just ideas. And I was like, "Sure, I can think up ideas, if nothing else I can do ideas," [laughter] and then of course I wound up doing code. I wound up, like I said, I wound up enhancing some of the RSS stuff. Of course, like I said before this was the early days of RSS still, and there were still a lot of things still being worked out, there were versions of RSS being forked off, there was RSS 0.92 and 2.0 and then they went back to 1.0 with RDF version, and later on you had Atom that was added to the mix - there was a lot of stuff going on in that field in that time. One of the things that happened to come up a lot was, with people checking feeds so often a lot of times put stress on a server, because there were so many people checking the RSS feed over and over again, and it was just like a page view, because you had to generate all the article, and generate all the data for it, and it was brought up that one way to alleviate that was to use this little new HTTP thing called HTTP 304 Response, where the server could say, If you already have this cached on your end, I haven't changed anything yet, so just use the version you've already got, because it hasn't changed. So that was the way for, at least the systems that recognized that, to take a lot of that stress off of your server when you're feeding RSS. So I added that support to WordPress, and I also enhanced the XML-RPC APIs, at that time it had Blogger API support, and I think that might have been all it had at the time, and that was very simplistic. The Blogger API didn't really cover all the features that WordPress had - I don't think it had support for categories initially at all. I don't know if that's correct or not, but there were some things it didn't have support for - it was a very simple format. But there was the Movable Type API and there was a new open one that was called MetaWeblog API, and they built upon the Blogger API, so I added those features in so that we could actually cover the whole feature-set of WordPress - the tags later on, and keywords, Movable Type supported keywords, so I had that support mapped onto categories and tags in WordPress. That was some of the earliest stuff I added, and there were little things I added here and there, as time allowed. That was my early foray in how I got started with blogging.#

Interviewer 09:49 So why did you--?#

Campbell 09:51 I'm sorry if that was longwinded.#

Interviewer 09:52 No that's good, I've got loads of questions to ask you, so we'll be here a while I think. Why did you decide to get involved in the end? You could have just used the software as opposed to helping to develop the software.#

Campbell 10:10 Because I liked doing both. Like I said, I'd already been considering writing my own system anyway, and I think many developers, especially around that time, it was a nascent time for blogging in general, it was still very new, there weren't a whole lot of people blogging in the first place, so there was a lot of excitement - as far as programmers and developers go - there was a lot of excitement in that area, because it was a new thing, there were still a lot of ideas to be explored, to see what works and what doesn't work, and how can you make things better. That was one of the reasons I wanted to be involved with it, and like I said I'd already been thinking about writing my own from scratch - of course that's a lot of work, and a lot of it is doing stuff that's already been done in a lot of cases. We often say programmers are lazy, because we don't like to reinvent the wheel, we like to reuse something that's already been tried and tested whenever possible, because that makes our jobs easier, and that's one of the great things about open source, is it allows you to do that in a very structured way.#

Interviewer 11:30 Was the first open source cortex you'd been involved with, or had you been involved with something before?#

Campbell 11:36 The software I'd used before WordPress, the My PHP Blog, that was open source also. And I had actually done, even way before this, back in the early 90s, I was into ray tracing - 3D graphics, ray tracing - and there's a piece of software called POV Trace, the POV ray tracer, which at that time I was playing with a lot. And I had actually committed code to that as well, I had added a texture to that software for generating hexagon patterns - it had a checkerboard pattern with squares, and I wanted something visually more interesting, so I decided I wanted a hexagon pattern, checkboard pattern, and so I created one. I added that to the POV tracer and that was actually implemented into the code, way back in 92, I think.#

Interviewer 12:36 Was that when you were still at college?#

Campbell 12:40 I was out of college at that time.#

Interviewer 12:41 What did you study at college? Was it computing?#

Campbell 12:44 I started in Electrical Engineering, and later on switched to Computer Science. I didn't finish--#

Interviewer 12:53 You didn't finish?#

Campbell 12:54 I didn't finish my degree, but that's what I was in.#

Interviewer 12:57 It seems like most people don't finish their degrees [laughter].#

Campbell 13:05 In my younger years I wasn't committed enough to it. Even now, I'd like to still go back and finish my degree one day.#

Interviewer 13:11 You still could.#

Campbell 13:12 I might still do that, I've talked about it from time to time. It's just a matter of finding the time to do it and just committing to it.#

Interviewer 13:19 That's true, it's difficult to study and work. It's what I did [laughter]. I'd like to ask you a little bit more about your actual blogging, writing on your blog. Did you put lots of forethought into what you were going to write about, or did you just blog about whatever you felt like?#

Campbell 13:44 Pretty much it's freeform, it's whatever I happen to be thinking about at the time, and feel strongly enough to write about at the time, or whimsical enough to write about at the time, as the case may be.#

Interviewer 13:57 What did you get out of it? Why did you do it?#

Campbell 14:02 I think mostly it's because, I know I've been in situations where I'm looking for information on something, and I appreciate it when I find someone else has solved the problem that I'm looking into, and so especially when I'm writing something informational, which is generally going to be on a tech topic about web development for me, but when I'm writing something more informational like that, it's often with the thought in mind that, One day somebody else is going to need to know this, and they might appreciate finding it [laughter]. So that's generally, if I'm not just sharing a link or something funny, but I'm sharing something that's more long form or structured, that's generally what I have in mind for why I'm putting it out there on my blog.#

Interviewer 14:44 I enjoyed the comments throughout on your post about your toes [laughter]. It's one of the longest column threads I've ever seen.#

Campbell 14:55 Yeah, I actually had some forums set up for that; I took them down a while back.#

Interviewer 15:01 That was great [laughter].#

Campbell 15:03 Yeah, webbed toes. My two middle toes are connected up to about the middle knuckle, and it's condition called syndactyly, it's a little genetic difference. For me, like I say, it's a real minor thing, I've never had any issues with it. But some people that have it have it worse, they might have toes that are joined a lot more severely, to a point that actually becomes a physical problem for them, or for some people it's just a cosmetic thing they don't like about their body, and so there were a lot of people that had issues with it and wanted to discuss it, and so I actually had set some forums up to have discussions about it, because there wasn't anything out there before.#

Interviewer 15:51 It was just great to see that discussion being had. I thought that was great.#

Campbell 15:56 There were a lot of people that were looking for surgeons - should they have surgery, or should they not have surgery? Trying to make a decision, and they had people to talk to about it.#

Interviewer 16:05 Do you think at that stage blogs were a medium for people to congregate and discuss things, in that sense?#

Campbell 16:18 Yeah, definitely. A lot of times-- I go back and forth sometimes about what format I like for different things, whether I like email lists, or a blog with comments, or a forum. Different ones seem to lend themselves to different sorts of conversations to me. They all have their pros and cons. I have this nebulous idea in the back of my brain about which one fits what kind of things better, but I couldn't explain it if I tried [laughter]. Especially back in the early 2000s, when blogging was first coming to be used, a lot of the blogs did become a common watering hole for conversations, more so than other places did.#

Interviewer 17:19 Were there bloggers that you followed, that you read regularly?#

Campbell 17:23 In the early days Photo Matt was one of the ones I followed, Matt Mullenweg. Jeffrey Zeldman, of course, and a lot of the other, what we might call, 'web development luminaries,' like Eric Meyer for CSS stuff, Les Orchard, who now works at Mozilla, I had a lot of conversations with him on his blog and my blog about various programming things. There's a lot of them-- Mark Toberman, he's kind of receded from the Internet in the last few years, but he used to be very active and have a lot of conversations both about technical subjects and personal subjects.#

Interviewer 18:11 He's someone I would like-- I'd like to get in touch with him, that's one of my aims.#

Campbell 18:23 So there were several that I used to follow on a regular basis, that I would keep up with.#

Interviewer 18:27 What else were you doing in your life at that point? Were you working?#

Campbell 18:33 Yeah, I was working-- at the time that WordPress got started up, I was living in a small town - actually my home town - a small town in Alabama called Enterprise, and working in a neighboring town called Dothan, I was working at a trucking company, AAA Cooper Transportation. I was the main web person there, working on their website. They had a Windows IS-based ASP website, which I couldn't stand VBScript for preparing that, so I installed PerlScript without telling them, which worked out a lot better for me. I was already interested before that in web standards and CSS and stuff. When Internet Explorer 3 came out originally, it was the first browser to really have good support for CSS. As much as we like to rag on IE these days, that was a pretty innovative thing at the time, and so when I first ran across CSS, that idea of separate of style and content clicked, it just seemed like such an obviously good idea, and I kept following that for years, and I was trying to integrate those ideas into that trucking website. Around this time - 2001 is when I first set-up my first blog, and it was running at the same time that I got married to my wife, who was also my high school sweetheart - so I had work and family and stuff going on at that time, and a few years later we moved up here to the Atlanta area, where we are now. I don't know, what else is there to say about that? [laughter] I've pretty much been doing that ever since then.#

Interviewer 20:38 Did anybody else that you know in your offline life, did they blog or did they get involved with it as a result of knowing you?#

Campbell 20:53 In those early days I really didn't know too many other people in my offline life that really did any kind of blogging or anything. Of course, a lot of my friends were technical people, from back when I was in Huntsville, and from college and stuff, but not so much down in my local area down there. Of course I worked with other developers at my job, there were a couple of other web developers on my team, but we weren't real close friends or anything, we just worked together and we joked around together at work and that was about it. When I got to the Atlanta area, of course I was able to be in contact more with other people outside of work. Especially, I got back in touch with some of my old college friends who went off to Atlanta - so I had a little bit more of that on a day-to-day basis, in the last eight years or so.#

Interviewer 21:50 Were you doing much with PHP, or when you got onto the blogging thing--?#

Campbell 22:03 I've been using PHP, like I say, since the mid-90s, right around the time PHP3 got started. When I first looked at PHP it was version 2, it was still called Personal Home Pages, and then Zind took over with PHP3, and it was the PHP hypertext processor at that time, and went through a lot in that time. Right around that PHP3 transition was about the time I was really getting active with using PHP for web development. And then, like I said, when I was at AAA Cooper, I used Perl a lot there. There wasn't that good PHP port for the IS platform at that time, it wasn't very stable, and so I wasn't going to take that chance on their website, in trying to to do that. But I used Perl for a lot of programming at that time - I used Perl for several years when I was programming. And then when we moved here to Atlanta, I tended to use PHP more for a lot of stuff when I first got started here - for my first contract job up here. And then I wound up at a shop for a couple of years, which was a Perl shop, so I used Perl some more. I switched back and forth a lot between PHP and Perl, and of course over the years I've got done a lot of JavaScript-type stuff on the front-end as well, with jQuery and other just raw JavaScript, or other [inaudible].#

Interviewer 23:35 Do you like PHP, because some people seem to love it and other people seem to hate it?#

Campbell 23:40 I do like PHP, but I understand some of the complaints about it. A lot of times you'll see these 'PHP sucks' articles that will point out all of the flaws in PHP, and you go, Yeah, yeah, yeah, but so what, I get things done. So what if this function is not named consistently with this function, or-- there's more annoying things, like when some of the parameters get switched between some functions, or you have a haystack and a needle, a search term and a content variable, and the order gets changed depending on which function you're using - that's a little bit more annoying, because you have to go look it up and see, Which one was it? Was it needle and then haystack, or haystack and then needle. But you pick it up and you learn it, and it just becomes second nature. No, it's not the most consistent programming language, but it's easy to pick up.#

Interviewer 24:45 You were working on WordPress, on Michel's codebase in b2 - were there any challenges that came from that?#

Campbell 24:56 Not that I recall. Everything changed organically over a pretty big period of time. Of course, the WordPress codebase today bears very little resemblance to what was there originally. A lot of the core concepts survived - the original hooks and actions, the actions and filter hooks - those were already kind of in place, they weren't really being used for too much externally yet, but I think those were pretty much already in place by the time Matt started working on WordPress. But as far as most of the code goes, it's really evolved over the years, organically and slowly. There's been a of improvements and so very little of the original code remains, but it's not like we consciously thought, Oh we've got to change this from the original code, or we've got to change this from the original code. It was just some better way to do something, somebody thought of something, Here's a way to improve this, but I have to change this. It just happened as it needed to happen.#

Interviewer 26:00 I watched a presentation that Michel gave, and he said that when he was writing b2 he was learning PHP, so he said any of the problems in it have come from the fact that he was just learning about it, and I was just wondering if you ever, in those early days, came across something and you just thought, Why the hell has he done it this way?#

Campbell 26:25 I don't recall any particular instances of that, as far as this goes. I've run across stuff like that in other projects before, but I don't recall any of that when I was working with b2. I think we were all learning back then, and so I wouldn't have thought too much about it if we did.#

Interviewer 26:44 So there was nothing you really wanted to do but you felt constrained?#

Campbell 26:54 Not as such. There have been times when I've thought of a feature I would like to add, and I'd present it to the hackers mailing list or the [inaudible] mailing list or something, and somebody would say, 'Eh, not really a good core thing right now,' or something like that, and I might have been disappointed a couple times to see a feature that I would like to have put in that didn't make it in. Most of the time that happened after some discussion and I could understand the reasons why not - sometimes it wasn't the best idea to do it right there in core, better to be a plug-in territory thing, and sometimes things just have to wait for other things to be in place first. But not for the most part.#

Interviewer 27:42 In the early ways there was just Matt and Mike and then you, was Alex King and Danika--?#

Campbell 27:53 Uh-huh.#

Interviewer 27:54 How did you guys work together?#

Campbell 27:58 For the most part we all worked independently. I don't know that we were ever all necessarily aware of what everyone else was working on at any given time, we didn't really always have a plan. I might say, 'I'm going to work on this right now, I'll be working on these files while I work on this feature, just to let you know. And then Danika, his big thing that I remember the most back then was he was a big fan of SMARTe templates, and he wanted to use that as the view layer for WordPress, and that has its merits - I thought it was a pretty good idea, I thought it was an interesting thing to look at - it never really panned out. I think basically what it boiled down to was, for a lot of people it was an extra thing you had to deal with separately from everything else, which is kind of the point in a way, but the mindset was always just that you use PHP as the template language, and make functions to make that as simple as possible. And yeah, there's pros and cons to that, a lot of the purist programmers that will talk down about WordPress, that's one of the things they'll bring up is that we don't have a separate view layer as such - that we have [inaudible] logic mixed in with the view layer. We don't have a clean MVC model, which, okay, yeah, that's nice as far as academic structure and stuff goes, and there's some goodness that goes along with maintaining a pure VC model, but that's just not how it worked out. It was an early project, MVC was not very well known in those development circles at the time anyway, and it's just not the direction it evolved in, and it's worked out fine. Here we are 10 years later and WordPress is still around.#

Interviewer 30:08 It certainly is. Did you seriously consider the MVC model, or did it just organically develop in the way that it has developed?#

Campbell 30:25 I don't think we really, any of us - except maybe Donncha - I don't even know if at that time I knew what MVC was, I mightn't have even run across that term for a few years after that. I think as far as that goes, I don't consider it a mistake that we didn't do that, and I don't know that anybody really thought about it in those terms at that time. Over time the WordPress codebase has restructured a lot, and a lot of MVC - model view controller - structures are in place in WordPress, even though the view model is not what you might call clean as far as that goes - it is PHP code and you do whatever you want in there, it doesn't have to just be view code, it could be anything, so a theme can do whatever it wants to do, it isn't restricted to only being a view, in that pure sense. But that said, there's still be a lot of evolution as far as the other parts of the code, in keeping the data base layer separated from the other logic of everything fairly well. I think it could still evolve more, as far as that goes, there could be more separation, especially between the model and controller layers as such. They're not terribly separated right now, but there's a lot of things that are. There's a lot of things where it is separated, and there's a lot of places where we've taken old code that was procedural code and revamped that into object-oriented code, like the [inaudible] classes, and the new image manipulation classes. So there's a lot of work that's been done in that area - the code today is nowhere near what it was when it started, or even just a few years ago.#

Interviewer 32:36 At that stage, or any stage, did you all have commit access, or did you write patches and that committed them--?#

Campbell 32:44 Yeah.#

Interviewer 32:44 You all had commit access?#

Campbell 32:46 Yeah, in the early, early days CVS committed access on Sourceforge, and then later on when we migrated to SVN, to the SVN repo.#

Interviewer 32:56 Right, and how did you manage that? Did you just commit whatever you wanted or did you get someone else to look at it first?#

Campbell 33:03 Yeah, we pretty much just commit what we want [laughter].#

Interviewer 33:07 Was that ever a problem?#

Campbell 33:10 I don't recall it ever being a problem, we'd work on stuff, we'd generally test it on our own, throw it out there - if somebody found a problem with somewhere else later on they'd either fix it or let you know, and then it'd get fixed before we made a new release. It was fairly unstructured back then.#

Interviewer 33:32 Well it worked though. You discussed on your own blog, as you've mentioned, that you were going to write your own blogging software, which you called dBlog. I was wondering whether any of the ideas that you floated for that ended up in WordPress?#

Campbell 33:54 I don't think so, other than, I would say maybe, I added the Post Meta function into WordPress - the custom fields, as we call them now. That was another one of my pet things back in those days was metadata. The idea of metadata for pretty much everything was an idea that I always had in my mind, and so I don't remember if anybody else really cared about it that much at first, but [inaudible] thought it was an interesting idea, so I put it in, and I would say it succeeded beyond my wildest dreams. We now have metadata for users and comments as well, and we have functions that allow you to add your own metadata for other things if you need to, and it's a core functionality used by pretty much every plug-in I think. So I would have to say that's one of the things I'm happiest about, as far as my contributions to WordPress, is the post-metadata, the custom fields.#

Interviewer 35:02 How long were you doing it at that fast-paced development heart, at what point did you stop being quite so involved?#

Campbell 35:19 I guess I was fairly active for about a year and a half or so, give or take - from early-2003 to mid-late-2004. I was just being busy in my home life and work life, and sometimes it doesn't allow for a lot of this mythical 'free time' that I keep hearing about. I've got three kids - we had our first kid right after we moved up to Atlanta - 2005 we had our first child. We had two kids actually already, my wife had two kids from her previous marriage - my older kids, but they were already settled, we already knew how to deal with them. But my first baby came along in 2005 for me, and adding a third child to the mix, it grows exponentially.#

Interviewer 36:30 That sounds like a busy house with five children.#

Campbell 36:35 No, three children.#

Interviewer 36:36 Oh, you had three. I thought you meant you had three that were yours.#

Campbell 36:43 No we had two that I came into with my wife, and one that we aided.#

Interviewer 36:54 Was that what prevented you from being as involved as you had before?#

Campbell 37:05 I don't know, this life, this life in general. When we first moved up here we were in a rental house for the first year, and the following Spring we bought a house of our own and moved into it - that's where we are now. A lot of times I've had a commute to work, and that takes a couple extra hours out of your day, going back and forth to work, to the office, and just helping out with the kids at night, and helping clean the house up - it just all adds and doesn't leave a lot of extra time. By the time you get done with all the things you have to do, there's not a lot of energy and time left for much anything else [laughter].#

Interviewer 37:49 I want to ask you a bit about the GPL - that's what WordPress came with, that's what WordPress was stuck with - is that a license that you were happy with or do you prefer one of the other open source licenses?#

Campbell 38:09 I do like the GPL, I understand the ideas behind it. I think in some ways there are pieces of it that are kind of outdated now for a lot of projects, including WordPress. I'm not saying it's a bad thing for WordPress or anything, I wouldn't say that, for sure. But the GPL was written at a time when a lot of software was compiled, and the idea behind the GPL was, If you receive software as a company, if you hired somebody or bought software, or whatever, you generally only receive the compiled version of the software, and you had no idea what the source looked like or what was going on behind the scenes. And so the idea behind the GPL, as originally imagined, was to ensure that you would have access to the source code and be able to modify it to your needs if the software didn't do what you wanted. Of course these days, with most things being web development, projects are most often delivered in a servicing language, where the running code is the source code. With PHP, or Perl, or Python, or Ruby on Rails, any of those things, the source code and the running code are the same thing - you are running the source code directly, if there is a compiled version you're generally starting from the source anyway. It's pretty rare these days that you'll receive a compiled version of something, especially in web development. For a desktop application yes, but not so much in the web world. As far as the web world goes, which of course Stallman couldn't have predicted that being the case, it's not quite as applicable, but for some of that stuff I might have preferred another license, like the MIT license, or the Apache license, or the Perl Artistic license - any of those. In some ways they're more free than GPL, and in some ways you might say not, it depends on your perspective a lot, because the GPL does - as people call it, a viral license - it forces you to create a long, more explicit link, whereas an MIT license, or another one of the more loose licenses, allows you to re-restrict stuff later in way, in a certain sense. But the GPL is the GPL, it was pretty much the first open source license of any kind and I don't see anything wrong with it - I like the GPL, I use the GPL for everything that I release. I've thought about going back and dual licensing all my stuff as GPL or MIT, or Apache or whatever, just to give even more freedom.#

Interviewer 41:14 You can do that? You can have two licenses for one thing, or two different things that are the same?#

Campbell 41:20 If it's your own code that you've written by yourself, you can do whatever you want. I can dual license it as GPL and some restricted license if I wanted to for a particular purpose. I could take some code that I have written, that I have already released as GPL, but if some company wanted to use it but didn't want GPL, I could re-license it for them with a very specific license just for them, where they could use it for their purposes without having to carry the GPL with it. So yes, you can do that, you can dual license or triple license, or whatever. If you own the code you can do it.#

Interviewer 41:56 Is this ever something you guys discussed in the early days, or was it just accepted that that's what you had and that's what you're dealing with?#

Campbell 42:05 I think it was just accepted. It was there, that's what b2 was, therefore that's what WordPress was, and there's no problem with that.#

Interviewer 42:17 It seems to be something that comes up a lot - the GPL - so I'm always interested in people's perspectives on it. I'm just wondering if you had much contact with Mike - you said that you followed Matt's blog, Photo Matt, I was just wondering if you had much contact with Mike or Alex or any of those people before you actually got started working on the software.#

Campbell 42:45 I know for sure that definitely Mike Little and Matt, I had talked to them. We had commented on each other's blogs, exchanged emails before WordPress ever came along. I even, looking through my some of my old email archives - I've got some of my email going back to the 90s, although I have deleted some of it for space concerns, but I do have a few folders left in some of my sent message folders that go way back - and I actually found a couple of my old email exchanges with Matt Mullenweg, from just before we started WordPress, in fact, the one where he contacted me and said, "Hey, if you've got time to contribute just ideas, that'd be great," and I had my response to him that said, "Sure, I can contribute ideas."#

Interviewer 43:37 Wow, if there's any of those you could share with me that would be great.#

Campbell 43:40 Sure, I can dig some of those up.#

Interviewer 43:44 It's fascinating looking through all this stuff to see where things came from and how they all started.#

Campbell 43:53 I don't remember at what point I became aware of Alex King or Danika. I don't remember for sure whether it was before or after my involvement with WordPress. I think I might have been aware of Danika before being involved with WordPress. I can't remember for sure about Alex or not, but at the very least I became aware of Alex in the very, very early days of WordPress, if not before.#

Interviewer 44:26 Yeah, because he had forked b2 himself, and made b2++, which then got merged with WordPress.#

Campbell 44:38 Then I probably was at least aware of him, if nothing else, because I had looked at some of those forks.#

Interviewer 44:44 You never considered using any of them?#

Campbell 44:49 I did. I had not made a decision at that point, I was still kicking ideas around when WordPress firmed up. But yeah, I did look at b2 Evolution and b2++ at that time, just to see what they were doing differently, what ideas and what directions they were going in, and whether they were worth using or if they were going to stick around or not.#

Interviewer 45:19 When you started working on WordPress, did you have any sense of where it would end up today?#

Campbell 45:29 No, I don't think I would have predicted its success back then. I think I always knew that it had promise and that it could be a popular system. Of course, back in that time Movable Type was pretty much the team with the heat - anybody with a 'serious' blog was on Movable Type. And unfortunately for them, they made a couple of missteps and a lot of their users wound up switching over to WordPress. WordPress actually got some really good press, as such, when Movable Type changed its licensing to be a more commercial product, and a less open system, and a lot of people became frustrated for that, and unfortunately for them a lot of high profile people became frustrated with that - people like Jeffrey Zeldman and Mark Pilgrim in particular, and when they switched over to WordPress systems, and they started talking about WordPress, it really exploded.#

Interviewer 46:35 Do you think that Moveable Type licensing change - do you think that was a key moment for WordPress?#

Campbell 46:41 I believe it is, yes. Very much so.#

Interviewer 46:43 What other things do you think contributed to its success?#

Campbell 46:53 The most obvious thing is one of its greatest features - that's always touted - is the fact that it's so easy to use. It's always been a focus on keeping it an easy tool to use and not making it so that you have to be a developer to use. I mean, there are other systems that you can do that with, but WordPress, for the most part, has really focused in that area more than anybody else. It's really easy to get started, and that experience of how easy it is to set up initially compared to a lot other software. Like I said before, I tried to set up Movable Type myself back then, and I'm a developer, I'm a web developer [laughter], I know how to setup a script, I know how to program, I know how to setup web servers - I could not get Movable Type running.#

Interviewer 47:47 Why? What was so difficult about it?#

Campbell 47:50 I think just the fact that mod_perl was so hard to set up. mod_perl is just a very complicated thing to set up, and there's a lot of variables you have to modify in their Apache config files. And I just didn't have the patience for it at the time, and the mod PHP is a lot easier to set up and get going, and WordPress itself was easy to get going, because all you had to have basically was your database credentials. Once you know your database name, your MySQL username and your password, that's pretty much all the information you need - it was just really easy to get up and going, and of course once you do have it up and going it's really easy to publish, and from there of course you can access the added features later on, or theming, or plugins. It's even easier to modify to your needs without having to be a programmer yourself.#

Interviewer 48:46 Was that ease of installation-- Was it that easy to install right from the very start?#

Campbell 48:54 It's better now. It was always easy, but it's even easier now. Nowadays, you don't even have to modify the config file yourself - if you have file permissions set up the correct way, then it will detect that you've not configured it yet, and it will ask you for the information on a webpage, and you just fill out the form and it writes the file for you. That was a later addition, and they've just really streamlined that and made that even friendlier, as years have gone by.#

Interviewer 49:25 What do you think are the most significant features, for you, of WordPress? What are your favorites?#

Campbell 49:36 Of course I'm looking at it more from the developer side for the most part, so for me how easy it is to extend with plugins. I've done some Drupal work, over the past couple of years, and I really, really prefer WordPress' hook system over Drupal's. In Drupal you use their hook system by naming functions a certain way, so if there's a hook for, say, the menu system, there's a menu hook that allows you to modify a menu, and add items to it or something, for - let's say you're adding a module plugin in Drupal that needs to add items to a drop-down menu. There's a - what they call a hook menu - so what you have to do in your plugin, in your Drupal module, which equates to a WordPress plugin roughly, you have to name a function 'mymodule_menu', and then you have the parameters. And that's all fine and dandy, but it's what I would call an implicit hook system, because you have to know the name of it. It's not, We'll just name that whatever it's going to get called. Once you have a function of that name forum, and you have that module active, it's going to get called. Whereas in WordPress you explicitly set up the hooks, where you create these relationships between the actions that are being called in poor code, and your own functions, and those are explicitly called by a due action function. To me it seems a lot cleaner that way. In WordPress, for example, it's much more clear how to remove a function or an action that's been set up. For my case, a lot of times I'll have cases where I want to remove some of the standard content filters - maybe the WP [inaudible] function, which converts your plain text into Html, and adds paragraph tags and all that, or the curly quote functions and things like that. Sometimes I will have things where I need to remove those filters because I'm doing something every explicit with content that I don't want altered in that way - say I'm displaying some code, some programming code - and so I want to remove all those extra formatting functions. And it's very easy to do that in WordPress, it's very easy to remove one of those filters the core has edited. In Drupal, I think you can do it, but I've never actually had a chance to see if you really could or not. It's just not as clear. I just the WordPress API for developers, I think that's one of its strongest features. I think that's why the plugin and theme ecosystem has grown so much, is just because it is so easy to understand and use that.#

Interviewer 52:43 Okay, I think that's all my questions.#