November 13, 2014
For episode 30 we spoke with JJJ, a man that needs little introduction. During the episode we hear about his personal history in the early days of software development and his desire to work on the software that “brings people together for a purpose”.
This episode was sponsored by WP Ninjas, the creators of Ninja Demo and the highly popular Ninja Forms plugin.
- JJJ’s post on distributed teams
- Crowdfunding campaign for 6-months of bb work
- Review us on iTunes
BRAD: Welcome to Episode 30. Today, we have a special guest with us. We have John James Jacoby, and we’re going to be talking to him about working remotely, his Flox project, and about his crowd funding campaign that he has on the go. But first, Pippin, what about those sponsors?
PIPPIN: This episode is once again sponsored by the WP Ninjas, who have been kind enough to sponsor quite a few episodes, as we’ve been going. They are the developers behind the popular plugin Ninja Forms, as well as Ninja Demo and a couple of other plugins. Go check them out. They’re doing some pretty awesome work.
PIPPIN: John, why don’t we jump in and talk to you a bit.
BRAD: Welcome to the show, John.
PIPPIN: Yeah! It’s awesome to have you.
JOHN: Thank you. It’s super awesome to hang out with you guys again. Very cool.
PIPPIN: Well, why don’t you first tell us just a little bit about yourself and maybe start by – when did you first get into coding, and then how did you get into WordPress from there?
JOHN: That’s a good question. My intro into coding was, gosh, I was probably — this was probably 1995.
BRAD: What that Atari or something?
JOHN: I would have been 16, maybe. I don’t know. It’s fuzzy now, right? It would have been on an old — my dad bought me. I convinced him. I persuaded him to buy me a Packard Bell, right? It was like I had a friend that was into software and kind of learning just a little Visual Basic programs, little things to do whatever, and he had a Visual Basic book. He was building little, stupid stuff, and I was like, wow, this is incredible. Like, you can just do this. That’s neat. I think he had a Packard Bell, and I was, like, well, clearly this is the machine I need to have.
JOHN: And so my dad went to Sears, right, and maxed out a credit card on a Pentium 100 megahertz machine, 8 megs of ram, and that was it, right? I was off building Visual Basic, Microsoft Access database, sort of figuring out how software was made. Eventually, it was neat because I had someone that was learning at the same time as I was that was, you know, maybe a year or so ahead of me, so had an accidental mentor, someone that already had sort of made some mistakes and had learned sort of just some of the simple concepts that you have to learn the hard way, like arrays and globals.
JOHN: And defining your variables and things, right?
BRAD: The Internet probably wasn’t a great resource back then for that either.
JOHN: No. Right, it wasn’t. It really wasn’t. It was, you’d go and buy a book or you had a book, a big 500, 700 page book, and you would just write the Hello World app and go and go and go. Eventually, what he ended up figuring out how to do, one way or another, was just de-compiling other Visual Basic programs and figuring out how they worked. And so we both would sit back-to-back and just spend hours re-factoring and figuring out how all this de-compiled, crappy code worked. It was sort of an interesting exercise in learning how to code because it was literally translating a bunch of gibberish into functioning code that made sense, so it was reverse engineering.
BRAD: What were you building? What kind of software were you building?
JOHN: It started off with just little games, little things to sort of macro out things locally. It eventually turned into sort of like building little AOL hacks, little things to spam the chat room. Then, I think, AO Hell came out, Lucifer X, and some of the other weird, big, sort of nefarious kind of AOL programs. That was what we ended up de-compiling because they were just so neat. They were doing such weird stuff. And so I never really got real heavy into the whole, I guess, scene for what it was at the time, but it was interesting to see sort of how the CD underbelly of the AOL version of the Internet worked at that point. Eventually, though —
BRAD: Did you get into Web development soon after that, or did it take awhile before you started tinkering?
JOHN: It took a little bit because I, right out of high school, got a job at a local-ish company that needed — they were looking for a Visual Basic and Microsoft Access developer and applied, and I was young, so I was relatively cheap, right? But at the time it was the most money that I had ever made and worked there for, like, a year and a half. It was an awful, awful experience.
It was sitting alone in a room with no Internet access and no radio, and building the whole inventory and customer management process from beginning to end. It was building the software, coming up with the data storage, the schema, the APIs, all of it. Just to entertain myself, sitting along in this room, I ended up doing just bizarre things with animating stuff in Visual Basic, old bit blitting of screen shots and animating things that didn’t belong that way.
They had all these funny restrictions on what the software should, how it should work. You couldn’t use the mouse. You had to tab through and enter through everything, so trapping keys and skipping send keys because people manipulate it and break the software repeatedly, so it was really trying to isolate down all this finite user experience stuff that I didn’t really get. Basically, they wanted to mimic DOS. They wanted it to be a DOS program without a mouse, but in Windows. It was really bizarre.
But after about a year of it, I hated it. I was so miserable with this job and sitting there alone.
BRAD: Were you working with people on this?
JOHN: No. No.
BRAD: Or mostly independently?
JOHN: It was all — they hired me on just as an employee to do it all by myself.
BRAD: They just stick you in a room.
JOHN: Yeah, basically.
PIPPIN: Here. Live in this closet and build stuff.
JOHN: That’s exactly what it was. It was so sad. It was sad.
BRAD: Did they start — did they have a nickname for you like The Creature or Closet Boy or something?
JOHN: You know, if they did, I never heard it, which I guess — I don’t know if it’s good or bad. What happened is, it drove — I was so sad about driving to work and going there, and just hated where I was. I just stopped going. I was like, I can’t. This whole software development thing is awful. I don’t know why anyone would do it. I mean I was 18, and I figured that the world was a better place than this, but this was all I knew, so I was like, well, I’m not doing this anymore.
It was probably 1999 that I quit, and I was like, I’m out; I’m done. Then didn’t — like, I always had a computer, but I avoided it for probably two years, so I missed the whole dot-com amazingness, and then came back in 2001 and started building a beta fork of OS Commerce and a fork of phpBB because the OS Commerce, at the time — this is funny. I guess I haven’t thought about this in a long time.
BRAD: Oh, uh, that was some stellar code at the time.
JOHN: Yeah, and it didn’t have — yeah, it didn’t have templates. You couldn’t — in order to change the way it looked, you had to hack. You basically had to hack the core, right?
JOHN: You had to mod the files, and there’s no alternative but to….
BRAD: There were so many times I did client work on hacked versions of OS Commerce, and you’re just trying to figure out what the hell the developer did.
JOHN: Right. Yep. There was a guy that lived in France that made a fork of phpBB or started a fork of phpB2, and then started back porting a lot of stuff from the development version of phpB3 and made hierarchical categories and all these things that the original version of phpBB just didn’t do, and so I caught on. PHP, for me, made sense. It was a language that I understood.
It felt similar to Visual Basic where I could catch on and jump in, and was able to learn very quickly how the syntax worked and everything. And he was very methodical with his approach of keeping objects in a place and functions in a place and template output and everything. And it reminded me of, like, how — I don’t know — just how magical it was to write code and watch it do things, right?
I used that to build the online parts department for a Honda dealership that was local that I had friends that were working at, so this is back in, like, the pre-Fast and Furious days of selling online Honda parts and exhausts and all that weird stuff, but they were competing, I think, Manchester Honda, it might have been at the time. There were, like, two online part stores that were pushing a lot of product, and so they were running a fork of OS Commerce and phpBB.
I started building little sites for people and took on really small kind of $500 clients just building little things using phpBB and this fork of it. Then, like, leading in, right, got to a point where it just — I couldn’t — it was costing more time to try and bend this piece of software to do the things I wanted it to do. Ultimately, searched for —
BRAD: Were you mostly hacking at it?
JOHN: Well, it was hacking and, you know, the nice thing about the category hierarchy — it was called chBB, is what his fork was called. But he had it on Source Forge, and he had all the little projects and stuff. He was running a bunch of role play, like a bunch of RPG forums, and so I could take what he had and contribute back to it, so it was really my first experience contributing to open source software on a project that didn’t have a lot of attention, but some people were paying attention to and had a fairly active forum community. It was comfortable, and nice, and easy to contribute.
Then, basically, what I wanted was to be able to store a forum topic or to store a post in multiple categories. It was categories. The hierarchy just was sort of too restrictive for what it was I was trying to do. Just searched the Web for storing posts in multiple categories and, I think, randomly came up into bbPress and found bbPress. Didn’t even know, I mean, had heard of WordPress, but that was sort of before blogging was as popular as it is. For me, the forum software part of it felt more natural.
When I saw the taxonomy structure that was going into the 1.0 version of bbPress, it was like, oh, well, this makes sense. This is something that is exactly what I wanted to do. It’s in PHP. It’s the same exact stack, but it’s a different code base completely.
Then found WordPress in 2008, I guess, at that point, right? Had found BuddyPress, and it was weird because, you know, this guy that I had never met, I guess I probably haven’t even talked to or really thought about in years, this would have been kind of before PHPDoc was a thing and really documenting your code and line was a thing. But he always kept fairly meticulous documentation in the code, and clearly I think that was something that rubbed off on me because it was really helpful for me to be able to see what it was that he was trying to accomplish, and jump in, and then keep going.
PIPPIN: You clearly got it from somewhere because, to be honest, your code is one of the most meticulously documented and outlined that I’ve ever seen.
JOHN: Yeah. I appreciate that. For better or for worse, I guess, sometimes.
PIPPIN: It definitely inspired me to clean up my code a lot.
JOHN: Good. Yeah, I think it was my experience coming into bbPress was pretty poor because there wasn’t any documentation in any of the code, and so it was really difficult to follow along with how, what is it even trying to do. How is it loading? What is it doing? What is the flow? Where does the output happen? Where am I in this code base at all? It was still relatively sprawling at that point, even for just being forums.
PIPPIN: Yeah. We probably found bbPress about the same time, so you said that would have been 2007, 2008?
PIPPIN: Yeah. I think I first found bbPress in around 2008. It was definitely, I mean, it was long before it was merged into a plugin. I think it was — was that bbPress 1, or was it not even up to 1.0 yet then?
JOHN: I don’t think it was. I think it was still 0.9. It was pre —
PIPPIN: I think I remember, on 0.8 or 0.9.
PIPPIN: I remember reading through it and, like, at the time I really wasn’t much of a developer. I knew a tiny bit of PHP, so the source code of bbPress was a mystery to me.
PIPPIN: But I remember using it as the form software.
JOHN: Yep. And then it was….
BRAD: I remember when I first saw bbPress, I was impressed how kind of clean and almost well thought out everything was compared to WordPress.
BRAD: Isn’t the history of bbPress, wasn’t it developed quite a bit after WordPress, and a bunch of lessons that were learned in WordPress were just applied to writing bbPress from scratch? Wasn’t that kind of–?
JOHN: That is based — that is the foundation, I think, really, of bbPress was Matt needing support forums for WordPress.org because there were enough people that were using it.
JOHN: And he had originally installed a piece of software called MyBB, and it was another PHP library. Then had considered or originally thought about forking it to make the forum software that he needed, but instead needed things like shared cookies, single sign-on, things between the blog and the forums. He already had a code base from forking B2 on WordPress, and the similarities were all over the place with the data storage and how it worked and everything else. So it was forking, at this point like gutting WordPress, and then turning into support forum software, maintaining the MyBB data schema.
To this day, really, even the database tables that run the users on WordPress.org, I think, are the prefixes, like miniBB or MyBB. That’s what they still are today because the users there were the original users that were in the support forums back in the day. Then it was, okay, well, if we’re going to continue to take the heart of WordPress out and make apps like support forums in GlotPress or something else, then that’s where the idea for BackPress came from was, okay, we can take what we’ve learned, and we can clean this up and put this in a place where it can get dedicated eyes in development where WordPress can continue to be developed as the blogging software that it should be. Then everything kind of rotate around this central shared library of things that you’ll always want: log-ins, cookies, sessions.
JOHN: A database class, things like that. I think, you know, people are probably sick of hearing me say it, but in a different universe, we would all be BackPress developers, and WordPress would just be a collection of pages and posts and post formats and, you know, the categories and tags would be built on top of a separate taxonomy API that you’d pull in with composer or something else, right?
JOHN: BackPress really was intended to be the application framework that we’re all using WordPress for right now. So we were really close to having that be the universe that we’re in, but it just didn’t happen that way, right?
BRAD: BackPress kind of got abandoned, right?
JOHN: Sad, but true.
JOHN: Sad, but true.
BRAD: But there’s still — I recently ran into it because I was setting up GlotPress to do our translations for our products, and there were some mentions of BackPress and needing this old component from BackPress to run it.
BRAD: So it’s kind of still alive in terms of GlotPress installation anyway.
BRAD: Is it pretty much — has that ship sailed? We’re not going back to that possibility again?
JOHN: I think so. It would take so many man-hours to try and extract the functional parts of WordPress and then bolt them on top of BackPress.
JOHN: That it would be a relatively progressive move to spend that, to spend any time doing it. Personally, I think there is value in at least experimenting with that idea just as a five- or ten-year plan of, okay, everything is using a restful API, and we’re not really interacting with the core directly as much as we were anymore, so what does it really look like to replace some of the inner workings of WordPress that we sort of don’t really think much about anymore, but where does that really get us? Right? How many hours does it take, how many people, to just potentially end up back where we are anyways, right?
I spent a lot of time thinking about it because there is a part of me that really does think it would be a little bit more flexible for the audience of developers that maybe don’t like that WordPress includes a bunch of files or want to be a little bit more meticulous about the way that WordPress works and really would appreciate having something a little bit more modular like BackPress and a bunch of bolt-ons to it. But I just don’t know that it would be time well spent considering the efforts that you can put into WordPress or BuddyPress or bbPress right now and make a bigger impact. Right?
JOHN: So it’s tough. And then I think that, like, let’s just say that someone wanted to do this, so it was going to be something to put time into. Then I think we have enough evidence from WordPress’s and bbPress’s and BuddyPress’s history to say that having one person doing it alone isn’t enough. Right? Between Andy on BuddyPress originally, between Mike Adams or Sam Bowers on bbPress originally, and even Matt and Mike on WordPress originally, if we were going to really invest time in sort of the abandoned ware that BackPress has sadly become, it would take more than one or two people to really want to put time into it for it to be viable.
Think of Donna Kahn, WordPress MU, right? One person, alone, building software just isn’t; it’s not enough eyes. So I don’t know than anyone would believe in it or trust it or invest in it. I think that’s where WordPress’s success comes from is knowing that there are so many eyes on the code base and just trusted people that are passionate about maintaining it that whether or not it’s exactly the best tool for any job is much, much less important than knowing that you’re able to use that tool reliably and that, if they tool breaks, you can ask any number of people to try and help you fix it.
PIPPIN: Right. While it may be — while it’s sad to kind of see BackPress die out and get left behind, at the same time it’s not necessarily a bad thing. For the people that are familiar with it, it’s sad, but with everybody focusing on WordPress, that’s what’s allowed it to become what it is.
JOHN: Yep. Yep, and when we turned bbPress into a plugin, the conversation that Matt and I had was really that it was very obvious that WordPress was the hub. It already had plugins. It already had .org and themes, and everything was just running off of WordPress.
PIPPIN: Right, why duplicate all the effort.
PIPPIN: Let’s talk a little bit about something that you wrote up recently, John. You have worked; along with all the history that you’ve just been telling us about, you’ve also worked for a while at Automattic, and you worked for, I believe, about a nine-month stint at TinUp.
PIPPIN: Something like that.
PIPPIN: During this whole time, and some time before that, you have been a remote employee. You’ve always worked as or, at least for a long time, worked as part of a distributed team. And you recently wrote about it on your site. I think it was a really insightful blog post that anybody who has worked as part of a remote team or worked alone on their own project, worked in their bedroom or in their closet for long periods of time can really relate to. I’d love to just hear a little bit about your experience as a remote worker.
To get us started, I want to just mention a couple of quotes from it that I at least definitely found really hit pretty close to home for me. One of them is, you tend to have a lifestyle that is like a fury of activity, you have a fear of missing out, persistent connections, and constant availability. And it’s extremely easy for unhealthy habits to go completely unnoticed as a remote worker.
And so obviously you have experienced all of these things. I have experienced all of these things. I know Brad has. Do you want to share any insight into that?
JOHN: Yeah. Yeah. It’s really tough. It’s tough because you don’t — because it feels rewarding and healthy, right? Even WordPress’s recent move to Slack means more of that, right? You have a really super convenient mobile app and mobile experience, and an iPad app. They all work seamlessly and super well. I guess there are some days where maybe I take it a little bit more personal and think, like, man, am I the only person that really just can’t keep up with what’s going on? How does everyone seem to know what’s happening and can keep up?
PIPPIN: I ask that about every single day.
JOHN: Right. I really got to the point — so I guess a backtrack is since I felt like contributing to open source software when I was young and on a project that was slower moving and with a smaller audience, and I was still submitting patches, and it wasn’t Trac. I forget what it was or if it was just Source Forge’s UI, but for me it was always easier and felt more rewarding to focus on solving the problems that either felt the most important or were the highest priority or that were impacting the most people. Then moving on from that, like solving that problem, putting that piece of the puzzle together, and then calling it closed and moving on.
When I was working at Automattic, it was difficult because there were so many moving parts. When I had joined Automattic, I think it might have only been 70 or 80 people at the time.
PIPPIN: What was your role there?
JOHN: I started on what eventually kind of became the .org team, but at the time it was I was new on the team. Jen Mylo was leading that team. Ryan Boren and Andrew Ozz, but the team was pretty fragmented. I think Andrew had taken some time off. Ryan was focusing mostly on Core. Jen was working towards what is now like the WordPress kind of foundation and what also is the sort of WordCamp whole community side of it where she really did lead a lot of that, and I was doing my best to get bbPress migrated into a plugin for things like TalkPress, like WordPress.com VIP’s hosted version for bbPress, getting WordCamp.org migrated over, working on a lot of, like, just separate, individual, little .org projects that had sort of shifting and changing priorities and getting it pulled into some .com stuff here and there, or just looking on and helping on some .com stuff as it came up.
For me, I think, I started getting farther and farther away from some of the software that I enjoyed spending the most time on and working on really long timelines and working really long hours to get a lot of things done because there was just so much activity that I wanted to try and stay on top of or keep up with. I guess the .org team within the walls of Automattic, and I think is still true today is purposefully partitioned off. It was a team that didn’t get to see a lot of what happened on WordPress.com because it wasn’t really relevant. I think, in the spirit of contributing to the open source side of WordPress that you really can’t have a ton of intersection between it because it’s just too much to pay attention to.
PIPPIN: There’s too much stuff.
JOHN: Yeah, so it was —
PIPPIN: You were really involved in a lot of different aspects of it. What kind of toll did that take on really pretty much your personal life? You have this quote in your post that I like. It took me a little bit to figure out what it mean, but once I did, I thought it was pretty perfect. It says, “You go Spiderman on the world at the expense of going Peter Parker in your life.”
PIPPIN: It’s like – in your work life you’re a bad ass, and then everything at home, everything in your personal life outside of work kind of starts to suffer.
PIPPIN: Have you experienced that?
JOHN: Yeah. I mean I guess I don’t know if I ever was a bad ass or if I —
PIPPIN: Oh, whatever.
JOHN: Well, no, but, you know —
BRAD: You were working hard though, right? You knew that.
JOHN: Yes, right, right, right. It was — I was — I guess I was flinging a lot of webs to try and see what stuck, right? It felt like there was just a lot of really cool stuff to work on and be a part of. Within the walls of Automattic, you know, doing code review, looking at deployments, trying to stay up with things that were going on with Jetpack or Polldaddy or anything else. There was just so much neat stuff, and the concept of teams at Automattic was relatively new at that point. These were people that I had known already for a few years from going to WordCamps and was really excited to see and work with.
And I guess, if it’s the adult ADD or if it’s — I don’t know, but I found it really hard to find what it was that I wanted to focus on or that felt rewarding to focus on. And even if someone said, “This is what you should probably work on today,” another thing would come up in another direction, and it would be another thing that needed getting worked on, and so I found it a little bit overwhelming just because I wanted to try and be helpful. Right? It wasn’t because the demands of the job were really high. I think it was because I placed the demands on myself to try and be as helpful as I could.
BRAD: Did it have something to do — were you compared — trying to, like — were you using someone else as like a high watermark? Did you see some other people working at Automattic that were like, “Oh, man, he’s killing it. He’s just killing it. How can I keep up with this?” Then you just, like, go Spiderman, you know.
JOHN: Yeah, it was. It was kind of, but it was the first time, I think, that I had had that much exposure to that many people working on that many things all at the same time. And I think, because I enjoy, because it’s rewarding for me to be helpful because I like helping, I like seeing that people are learning, and I like knowing that I’m able to help someone else sort of improve. But because the rewarding part of it for me was the teaching part of it or the sort of helping other people out with it, that there was so much opportunity to try and be helpful in so many different ways that I just, I lost a lot of focus.
And because of that, I think, to bring it back a little bit is it was difficult to turn off. Right? It became taking the laptop to dinner in case something went down, and I had to jump on something. Not because I had to; because I felt like it was the right thing to do at the time. It became sleeping with the laptop next to the bed. It became having push notifications so that if something blew up somewhere that I could try and help out or at least be there and —
BRAD: You might as well be running your own Web hosting company with servers and — yeah.
BRAD: I can relate to this because I did run a Web hosting company for a while. Yeah, that’s what it feels like. It’s like you’re constantly on. Your heartbeat is tied to the load spikes on the server, you know.
JOHN: What happens though is, at least for me, and I don’t know if it’s — I’ll chalk it up as a learning experience hopefully more than just feeling like an outright failure, but there were just a lot of things that I swung and missed at, right? There were lots of things that were cool to help out with, to jump in, do some review, try and talk more about documenting code on WordPress.com, try and push for some standardization, try and improve some things. There were lots of things that I had hoped to achieve that I wasn’t able to or were maybe not moving quickly enough, or I wasn’t influencing in the way that I had wanted to or hoped to where it became less rewarding for me over time. I think I probably was making less of an impact too, right?
What do you do with that when you know that the — I mean, what I really wanted to do was work on and improve BuddyPress and bbPress and the community sites that power WordPress.org. From working on Jetpack and working on VIP, I was doing things that, on paper, were similar, working on Jetpack comments and mostly criticizing what was .com’s rest API, even though it’s clearly successful and works really well. The code review and stuff that I was doing on it was more appropriate for WordPress.com VIP.
PIPPIN: Let’s jump in and talk a little bit about what you mentioned just a second ago with what you wanted to work on with bbPress and BuddyPress and the community aspects of things. And so there are two aspects to this conversation. Number one is a project that I believe you started pretty recently. Maybe it’s been in the works for a while, but you went public with it recently, which is Flox.io.
PIPPIN: It’s for private social networks. Then you also have a crowd-funding project going right now to fund your full-time development on BuddyPress, bbPress, and GlotPress.
PIPPIN: And so, do you want to talk a little bit about these and how these are kind of bringing you back to the focus of what you want to do? What does J-trip want to work on each day?
JOHN: The short answer is, it was always BuddyPress and bbPress. It was always the software that I think brings people together for a purpose. And, in many ways, especially right now, GlotPress ends up being a piece of software that people are bringing themselves together around for a much bigger purpose. Right?
With Flox, I think, a date going back to some WordPress.com and .org stuff, I remember having a conversation with Matt in probably 2008 or ’09, I think, at WordCamp New York before I worked at Automattic where we talked a lot about the confusion and the separation and how it’s sort of fuzzy. I think Matt at one point had even said that calling it WordPress.com is kind of — if he could go back and do it again, he probably wouldn’t. And I thought that was funny because I think, for an open source project to really have momentum and have–I don’t know–visibility or market share–I don’t know what the right word is for it–but having a way for people to get in and try it, like, during their lunch break. They just jump in and start a blog. If it didn’t work out, whatever, they don’t care, they’ll never do it again, or it was good enough and they’re going to use it and they’re going to continue to blog or whatever it is.
And there was a time when installing a blog wasn’t easy either. It was, you know, setting up a relationship with a hosting company. It was downloading the zip, FTP-ing it up, all this whole thing, right? And having someone, having a way to just start up an entire site, a blog, a theme, users, content, all of it, and just do it without writing any code or touching it at all is amazing. And so I guess I’ve never seen a reason why it couldn’t be the same thing for spooling up a network of a community.
I know Ning is probably the one that people think of when they think of communities and I know that they had some eventual issues with spam and having a ton of spam networks, and they spent a lot of time writing APIs for things that ended up being pretty complex and that weren’t ultimately super useful or powerful, which was really too bad because what they were trying to do there is – there’s something to it. There is something to that idea that, for the audience of people that don’t want to put their data in a Facebook group or don’t want to intersect their family pictures and photos and their personality that they are on Facebook with something else like a car club or a computer club or a dart league or all of the other kind of weird examples that I tend to lean on.
So with Flox, the idea is to, one, try and be the WordPress.com equivalent for BuddyPress to at least have there be an easy way to spool up a network – privately, I guess. It’s a niche group of people that have a reason to talk already. So if it’s a group of teachers or instructors, or if it’s just your family, having a place to talk back and forth is to just make it easy to set something up like that and do it in a way that is built on a visible, open sourced stack of software that anyone could theoretically contribute to improving. That’s the idea with Flox. Then I don’t know that I’ve come up with a catch phrase, like what’s the one sentence, like what’s the ten-word synopsis of Flox.
JOHN: But —
BRAD: I think the big advantage of Flox over the Ning or any of the other ones is, like you just said, it’s built on open source software, so you could start your network really quickly using Flox. Then, if it grows, and you want to customize it, do some development on it or whatever, you can probably, I’m guessing, get the data out and go ahead and do your own thing, right?
JOHN: Right. I think the best case scenario is that someone’s community outgrows whatever it is that I could provide for them because, one, it’s a learning experience for me and for improvements that we could make towards BuddyPress. Two, it means their community is successful, right?
BRAD: Right, and then you can roll out Flox VIP.
BRAD: And host their custom network.
JOHN: Well, and it’s easy to forget that a lot of what WordPress.com started off as originally was friends of Matt’s that he hosted WordPress for because it wasn’t; it just didn’t make sense for them to do it themselves, right?
JOHN: Lots of people can host BuddyPress themselves, but it is exponentially more difficult than it is to host a blog because you have this open community of users and members and sensitive data and activity streams and groups and friends. It just, for every one component that WordPress has, BuddyPress has five.
BRAD: Right. Caching has got to be a lot more complex with BuddyPress too, right?
JOHN: It is hugely, and we’ve avoided really adding a bunch of caching to it until recently because a lot of the components in the early days were just in such flux that it was difficult to map out where and when caches would need to be purged or created. Boone has done an excellent job in identifying a lot of those, and Ray also in BuddyPress Core have really kept an eye on it and added caching that has been super, super helpful.
But the WordPress way of caching full page output just doesn’t fly because it’s all about updates. It’s all about updating the whole activity stream or your profile, and so it’s much — caching the full page because you’re logged in as a user browsing content from a bunch of other logged in users, is still going to be a struggle, and there’s lots of opportunity to improve that. We talk about fragment caching in WordPress a lot, and I think BuddyPress is a good example of a piece of software that will hugely benefit from having a try fragment cache approach in API that doesn’t exist, but absolutely should, to help out with pieces of data that frequently get updated that shouldn’t invalidate 100,000 other caches just because one thing needed it, right?
BRAD: Yeah, exactly.
PIPPIN: I’m kind of curious about some of your mobile plans for it. I know you have a mobile theme that you’ve been working on called Buddy OS.
PIPPIN: And I believe that’s just a mobile friendly theme for BuddyPress. Two things for you on that: Number one, do you tend to extend that over to mobile bbPress? And, two, have you thought about having or creating at some point an actual dedicated iOS app that would connect to a BuddyPress site?
JOHN: Good questions. Yes and yes and yes. Buddy OS was, like, it was a culmination of a few different things. Just like any other, I guess, piece of software with just one person working on it, is constantly sort of changing and shifting around some ideas and things. But when I was talking with Jake originally, from TinUp, about what a hosted BuddyPress thing would look like and what it was that he would want out of it, what I would want out of it would be a very convenient and solid mobile experience. One, I think, because if you’re going to use it internally for sort of a company or an Intranet or something where there can be some asynchronous updates and back and forth that you’ll more than likely want to do that from a phone more than you would want to sit with a browser tab open or a dedicated app on your machine and do it that way. Two, we haven’t really spent a lot of time focusing on what BuddyPress’s mobile experience could and should be, partly because of just the concept of being compatible with other WordPress themes makes it really tricky. There are a lot of considerations there.
PIPPIN: How is that to work with? I’ve seen it a few times, and I’m kind of browsing around it right now. It looks awesome.
JOHN: It’s incredible. I’ve found it to be really, really incredible. The documentation, so Vladimir is pretty much the main and kind of only guy working on it. I’ve found it to be really, really awesome, and it works really well with WordPress and themes, in general, because unlike something like Angular where you would need to have, where it sort of expects to be a single page application and you would build your own URL router or have an extension that will help with routing URLs between the single page app, Framework 7 sort of expects that you’re going to have several URLs that exist from wherever, and it can cache them or you can choose not to cache them. You can set which pages animate and when and why. There’s a lot to it in terms of what a framework provides, but it has HTML equivalents for almost all of the typical iOS elements that you would want: action sheets, the nav bars, and tab bars, and all that stuff. And it has built into it that capability of caching those pages from any URL, so you could use typical WordPress functions in a PHP WordPress template and link off to, you know, the permalink or the activity directory permalink or whatever it is that you’ve got. Framework 7 will just see the request and then process it via ajax and pull it in right away.
PIPPIN: That’s really slick.
JOHN: It is super slick.
PIPPIN: It makes me really want to try and build something on it soon just, even if for nothing practical, just to build it for fun.
PIPPIN: Hey, that’s what frameworks are for.
JOHN: Right, right. I think the end result, at least for what it is right now, is really, really awesome.
PIPPIN: Very cool.
JOHN: And it works super, super well. Just a little — you know, so the beta testers that I’ve got, the feedback has been really strong. Lots of it is coming in. It’s really good. As a software as a service, I think Flox has an enormous amount of potential to be the answer to people that maybe miss something like Ning, maybe don’t quite understand what Ello is trying to do, maybe don’t want to host their stuff on Facebook, and want a privatized social network to talk back and forth, and a place where they can be who they want to be and be comfortable doing it.
PIPPIN: I think of anyone that I know in the WordPress world, as well as in the wider Web development world, you’re very well positioned to meet that challenge.
JOHN: I hope so. I appreciate that.
PIPPIN: We’re just about out of time. But real quickly, your crowd funding campaign, which the goal was to raise enough money to allow you to work on BuddyPress, bbPress, and GlotPress full time for, I think, six months, right?
PIPPIN: That is getting very close to being funded all the way, which is amazing because it’s been two days.
JOHN: It is.
PIPPIN: I’m sure you’re thrilled.
JOHN: It is amazing.
PIPPIN: In just a couple of minutes, tell us what’s next for you on those three projects. I think it’s pretty clear that the campaign is going to succeed, so you’re going to be working on these for the next six months. What’s kind of your target for that time period? Do you have a goal?
JOHN: I have a few. There are a few outstanding, maybe less features, but more kind of optimizations that BuddyPress and bbPress specifically could use. One for BuddyPress, attachments or at least having some foundation for what media handling will look like in the community, which has been very often requested and very sorely missing from BuddyPress as a whole. A lot of progress is already being made on the ticket that we’ve got in Trac towards making that happen that really I haven’t — I’ve only been loosely involved with was just testing and keeping an eye on it. But that, I think, will be huge for BuddyPress, and is the part of it that will bring people back that maybe weren’t or maybe tried it and saw it was missing. I think that just having media attachments is enormous.
There is some stuff that we’ve talked about, specifically even at WordCamp San Francisco this year, about coming up with a sort of relation API, basically just to relate pieces of data arbitrarily back and forth with one another between the components themselves. There’s what we’re basically calling the relationships API, not between people, but it doesn’t mean it’s not between people, right? Right now we have a lot of funny–I don’t know–one-off approaches for members and groups, friends, private messages, that are really all about tying data and connecting points together, but we don’t have a standardized way to do that.
JOHN: So building that backend also. Then, for bbPress, the things that we’ve talked about that are, one, performance improvements, relatively huge ones to try and get off of some of the meta query stuff that we’ve been doing and move some of that stuff into the posts table to improve, exponentially, really, what the querying performance is for getting through the sometimes millions of topics and replies that are going to be in the database, try and go through them. That’s that one.
Having moderators in each individual forum is another ticket that we’ve talked about that we’re going to eventually need on WordPress.org.
PIPPIN: Pretty cool. That’s really just roles and capabilities, right?
JOHN: It’ll probably end up —
PIPPIN: Or is that also going to include the moderator dashboard?
JOHN: It’ll probably be partly both, right? There’ll be a little bit of a moderator dashboard update because right now what’s in there isn’t real great. Then the concept of what basically breaks down to, like, at kind of a technical level is kind of per post permissions, right? Like, what users have what capabilities on what posts or what forum, right? There’s the easy way to do it, which I think will probably just be taxonomies and sort of determining what each user can be tagged in what forum and determining what capability that that tag provides them.
JOHN: But we have some traction on that one, and we’ll need that on WordPress.org for the support forums anyways, so those will be the two that are there. Then, for GlotPress, since it’s a project that is still BackPress powered and is one I’m less familiar with, my goal for GlotPress is really to just be as much of a resource and influence and kind of just doing as much labor on it that I can to improve whatever it is that, you know, the existing GlotPress users and people that are focusing on it like Marco – what is it that I can help with. Jumping into a moving car is pretty hard, right? So I’m going to try and at least be available and pay attention to see whatever it is that I can do to help.
Secretly, I’m going to probably mess around with the idea of moving it off of BackPress and see how much work it’s going to take to do that. But I don’t know what that looks like or what the roadmap is for that or who really wants that or what’s the — there’s just lots of discussion, I think, that needs to happen about what the long-term plan is for something like GlotPress.
PIPPIN: It’d be really cool to see what happens over the next six months.
PIPPIN: I know you’re going to be busy.
JOHN: You know, the Indiegogo campaign, one, it’s remarkable. It’s an unbelievable amount of support that I guess I just hadn’t really anticipated, and so I mean, one, for anyone that’s listening, I’m hugely, infinitely grateful for your support. Even, Pippin, you obviously, I think, you jumped on it right away, and so thank you.
PIPPIN: You know, it was a pretty easy decision for me for a couple of reasons. Number one, because you’ve always been someone that I looked up to in the WordPress world. I feel like a lot of things that I’ve learned about better development came from watching the evolution of bbPress and BuddyPress, much of which was your work. And then a lot of my business runs on top of bbPress, so any donation amount was pretty easy to come up with and justify.
JOHN: It was — since yours was like the first big one, and the big ones were kind of set up not because I — I don’t know. It’s weird. It’s weird to talk about, but it was more just in case, I guess, if someone really wanted to be that big of a part of it. One, I wasn’t really confident in doing an Indiegogo campaign because I was afraid that there would be some sort of intersection between what it was that I wanted to try and achieve versus, say, the viability or the success or the health of the software itself. Right, like I didn’t want for my — for the fact that I didn’t want to have my — the fact that I wanted to work on it full time and be indicative of anything negative with the software itself.
PIPPIN: Sure. Well, and sometimes people have issues when — it’s kind of like if I give you money, it means that you’re going to fix my problem, right?
JOHN: There is. There is that.
PIPPIN: Other issues that just come from when —
JOHN: And that’s not even really — that’s not — there’s nothing wrong with that, right? I think, if someone wants to support a feature development in a piece of software, and they are willing to put some money on the line for it, that I think that they kind of do have a little bit more of an ability to influence it then, right?
JOHN: So it’s not untrue.
BRAD: I think most people, when they’re giving to your Indiegogo, I think they’re thinking — or at least for me. I’m not going to speak for everybody. For me, I know you’ve done terrific work in the past on these projects and on WordPress, and so part of it is rewarding you for doing that. Then the other part is that you’re going to do more, right?
PIPPIN: Yeah, absolutely. I’ll 100% second what Brad just said.
BRAD: Supporting you for doing more.
BRAD: And so I love this idea of crowd funding someone to work on open source stuff because it’s kind of no strings attached compared to something like an investment where it’s like: you must succeed or else you will answer to these investors, you know.
PIPPIN: I really like that you didn’t put rewards.
PIPPIN: One of the things, and see this obviously with Kickstarter and some of the other big crowd funding sites a lot where kind of like somebody wants to build something. They say, okay, if you give us this much, we’ll give you a T-shirt; you give us this much, we’ll give you a copy of the software; if you give us this much, et cetera.
PIPPIN: There’s nothing wrong with that, and it’s cool because obviously it works. But at the same time, I like the idea of just saying: let’s just make it possible for this person or this team to work on something cool, right, regardless of the final outcome.
JOHN: Right. When I was building the Indiegogo campaign, a lot of the suggestions for perks, the hints at sort of what they feel like have been successful in the past, are exactly what you’re talking about, like offer something to someone, that a T-shirt or a pen or some of the feedback is funny commit messages or naming releases. There are lots of little ways to incentivize any of that stuff, and so I had thought about it. What really is the spirit of our community, and what is it that we’re trying to accomplish? It just didn’t really seem right to try and intersect any of that stuff. Maybe I will. Maybe there will be cutesy commit messages or anything, like maybe that will work out okay.
But I also, like, the goal — the conclusion I came to is that the whole purpose of this campaign for me, personally, is to eliminate the distraction that I think I’ve struggled with for probably the past five years and really have the opportunity to just focus on improving the software. Printing a bunch of T-shirts and mailing a bunch of thank you letters and all those things takes away from that. They are good, and they make people feel good, but it does ultimately take a little bit away. If the goal is to stay distraction free, then having perks that are only really going to be distracting to me aren’t going to, they’re not going to help that. That was the conclusion, I think, that I ended up coming to.
A couple of questions that have come up, and even from just, one, I was unprepared, I think, for the huge amount of support that has come in, in 48 hours’ worth of time. There’s probably a little bit of a lack of words to describe, I guess, what comes next or how I truly feel about it. But I think that people have asked, “What do you do if it goes over $50,000?” Right? I guess I hadn’t honestly really considered. For anything that happens beyond that, Indiegogo is not going to stop it. It’s just going to kind of keep going.
PIPPIN: Keep going.
JOHN: Right, so I think the solution to that, which I’ll probably post an update on the Indiegogo campaign, would be to set aside a separate fund, not necessarily as like a bounty, but maybe, right, to have a separate — basically to have anything that’s over $50,000 not be for me. To have it be for someone else that wants to spend time working on BuddyPress or bbPress and take….
PIPPIN: Sure. To be able to cover someone to work on something for a week, a month, or something like that.
PIPPIN: That would be cool.
BRAD: What about just working longer instead of six months?
JOHN: Right, and there is that. I mean, that’s the very obvious one, right, is it does absolutely enable me to work on it much, much longer, so there is definitely that. But I guess, at least right now, right, in the moment, I’m so appreciative, like, genuinely of everybody’s support that it would be really nice to take everyone’s contributions and multiply them, right, to say, okay, above and beyond this we’ve got — there’s even more that we can do for other people that are maybe considering doing it but just don’t have the opportunity or the means.
Then the $50,000 mark is kind of a funny dollar amount anyways because, you know, you can stretch the money for a longer period of time, right? I think $50,000 U.S. cash dollars that, depending on what the fees and everything come down to, will likely last longer than six months anyhow. I never really expected for it to really happen, and so now that it is there, at this point, it just is unbelievable. There’s just so much opportunity to do so much really awesome work.
PIPPIN: Well, it’s really awesome.
PIPPIN: Huge congrats to you. I’m really thrilled to see it succeed, and I’m really looking forward to seeing what happens in the coming months. I think we’re going a little longer than originally intended, but it’s been an absolute pleasure to talk with you, John, to hear some of your history. You’re definitely one of my favorite people in the WordPress world. I like your quote earlier about software that brings people together for a purpose. I think that’s a really nice sum up.
JOHN: Yeah. Thanks.
JOHN: That’s what I always imagine for — I mean, WordPress enables that, but the sister projects really empower that. They embrace that idea a lot for me.
PIPPIN: Absolutely. Well, it was an absolute pleasure to have you on.
JOHN: Super awesome. Super awesome to be here. I mean, we talked about a lot of really awesome things, I think, that really are very, very close to me.
PIPPIN: It’s very cool to see you being able to get back to what’s really important to you, what you love to work on, and building, helping to build those tools that bring people together.
JOHN: Thanks. Yeah, thanks.
PIPPIN: We’ll have links in the show notes for anybody who either doesn’t know how to get a hold of John or wants to read about his post on distributed teams, Flox.io, see the crowd funding campaign, et cetera. And if you have questions, feel free to —
BRAD: Contribute! Contribute to the crowd funding campaign.
PIPPIN: Absolutely. And if you have any questions for us or for John, it’s pretty easy to reach us. Probably Twitter is probably the fastest way.
BRAD: For sure. All right.
PIPPIN: Okay. Thanks, everyone, for listening.
BRAD: Thanks, everybody.
JOHN: All right, thanks, guys. This was awesome.