The Changelog: Software Development, Open Source - Octopress 3.0 (Interview)

Episode Date: June 26, 2015

Brandon Mathis joined the show to tell us all about the much anticipated 3.0 release of Octopress - his Jekyll-based blogging framework for hackers. Octopress 3.0 is a complete rewrite and has been in... the works for quite a while. We find out why Brandon decided to go for The Big Rewrite and what's been taking so long (hint: it's not because the dude's been slackin').

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome back everyone. This is the change log and I'm your host Adams to Kovac. This is episode 162. And on today's show, we're joined by Brandon Mathis. Brandon is the creator of OctoPress. If you haven't seen OctoPress, I don't know where you've been at because so many blogs out there right now leverage Octopress. Well, 2.0 Octopress, not 3.0. 3.0 is a complete rewrite. We dive deep into that with this show here. 2.0 is gone. 3.0 is basically out there.
Starting point is 00:00:42 The announcement hasn't been official. There's some things Brandon's working on, which you'll hear in this show. But 3.0 is basically Jekyll's Ferrari, you know? So get excited about this show and what Brandon's working on. We have three awesome sponsors, CodeShip, DreamHost, and TopTile. Our first sponsor is CodeShip. They're a hosted continuous delivery service focusing on speed, security, and customizability. You can set up continuous integration in your app today in a matter of seconds and automatically deploy your code when your tests have passed. CodeShip supports your GitHub and your Bitbucket projects,
Starting point is 00:01:19 and you can get started today with CodeShip's free plan. Should you decide to go with a premium plan, you can use our code to save 20% off any plan you choose for three months. The code is TheChangeLawPodcast. Head to CodeShip.com slash TheChangeLaw to get started. And now on to the show. Well, we're back. Long time in the making for this show. Brandon, I wanted to have you back to talk about Octopress 3.0. I think, Jared, we've covered Octopress how many times on ChangeLog Weekly? Lots of times.
Starting point is 00:01:57 At least a couple. And every time we do, we get tweets and emails and fan mail. I get mailed to my house, my home address, saying more Octopress. So Brandon, welcome back. Thanks for letting me back. Yeah. Octopress 3.0, how excited are you? Oh, really excited. It's been a lot of hard work. Gosh, for real. I mean, it's not just a lot of hard work. It's also been a whole lot of learning, which is the fun part. But, you know, it's kind of like when I when I first started working on Octopress it was just some cool thing that i had barely figured out how to do but you know then uh once people started using it i started to find out um there's a lot of different needs for it and then uh and finally i am able to you know i was able to take time to sit back and say you know if i had any
Starting point is 00:02:41 skills what would this look like and so i spent like two years trying to build those skills and then, uh, and build what I wanted to make the first time if I knew how to do it. And I can see that Brandon Mathis.com is still using the original design you had done. And this was in Jekyll, right? This, this site here. Oh yeah, it's, that's, it is Jekyll. That's what got me starting with octopress but that is probably using octopress one um i as i there's not even a post on there announcing octopress it's just
Starting point is 00:03:11 some other project that i released right before it and um that's always kind of um something i am able to appreciate and laugh at myself about i decided at some point that um at this point in my life my code is more valuable than the other things I would write about. And so I've poured a lot of energy into building. Yeah, making it so that other people can write their sites and building nice tools and developing that. I really hope to kind of turn back and write a lot about what I've learned and have a nice
Starting point is 00:03:44 blog again. But I didn't want to distract i've learned and you know have a nice blog again but uh i didn't want to distract myself well you got a family you got a full-time job speaking of your full-time job you work at compose formerly mongo hq so i know we use mongo hq at pure charity when i worked there um for our mongo hosting which was great um and you created octopress six years ago so for everybody listening now catching up saying what the heck octopress six years ago. So for everybody listening now, catching up, saying, what the heck, Octopress 3.0, what happened to 1.0 and 2.0? Well, 2.0 is out there, and I guess 3.0 is sort of out there. We'll hear more from you today. Hasn't been talked about quite as much like you just said there
Starting point is 00:04:16 because you're not really doing much with your blog, and even the latest post on octopress.org isn't quite saying, like, hey, here it is. Right, yeah, I have a version of that post in a draft that i'm kind of working on figuring out how i want to do some things you know the um the posts up there right now is talking about uh this is octopress 3 is coming and basically i just you know threw all my dirty laundry out there and dissected it and said this is uh this is a this is what i did wrong with Octopress 2.
Starting point is 00:04:46 A lot of people are using it and enjoying it, and I'm sorry for these mistakes I've made. These are the things I've learned. This is what I'm bringing to Octopress 3. That's what happens with open source, though. Somebody does something good. They don't have their full time to give to it, and so you either get more people involved in your project or you're a one-man show
Starting point is 00:05:06 like you've been i think you've had some help too from from parker moore oh yeah you know back and forth with jack when i think you're are you're part of the core team with jackal now are you just sort of playing uh playing some sort of role in that well no i'm not a core team member i am um a friend of jackal i don't know you know like you say you got a friend of the show or whatever I guess I'm a friend of Jekyll uh in that way because like uh for example uh I recently participated in Jekyll Conf which was an online conference right that's awesome and um lots of people were there including Tom Preston Warner who created Jekyll and uh Parker who's the lead maintainer right now and I showed off some of the new stuff I've been building and um you know they were taking questions on twitter and pretty
Starting point is 00:05:45 much immediately after i started showing a couple things tom wrote in saying why isn't this stuff part of core and would you be okay with adding it and i'm like sure dude steal what you want it's mit i'll help however but yeah you know uh on um the uh tagline for octopus used to be um was it a blogging framework for hackers or something like that something like that yeah yeah which is funny because the somebody posted on hacker news uh when when two uh two.0 came out and um of course i didn't know what hacker news was at the time and i still barely do i don't pay attention to that stuff believe it or not um and some guy accused me of picking that as a tagline tagline just to Hacker News. I'm like, dude, I don't even know what this is.
Starting point is 00:06:26 What's going on? Come on now. But now the tagline I'm playing around with right now, which is just, it's like, who cares what you say about something? But the way I look at Octopress is that it's like Jekyll's Ferrari. So if Jekyll had, you know, or... Good peak job, maybe. Well, it's like Jekyll is a lightweight sprint runner. He's got some skills and stuff, but every now and then he wants to jump into a Ferrari
Starting point is 00:06:56 and just, you know, blast it. And so that's kind of what Octopress is about. It's like, this is the place where Jekyll feels good. I don't know if that's sensible or not, but basically there are a whole bunch of tools built around Jekyll, and Octopress is just my name for tools that I build to make that ecosystem have the things that I want in it. And we can talk about some more of those in a little bit. I want to talk a little bit about the history to a degree,
Starting point is 00:07:20 especially since you just mentioned the name, WordPress, right? So is Octopress a play on that? Or is that why press is after Octo? Was it a GitHub thing? Everybody assimilates Octo for something GitHub, right? So you got, I don't know. Don't they have OctoConf or is it just CodeConf or something like that? But they do Octo something all the time.
Starting point is 00:07:42 Yeah, Octocat. Right, Octocat. And then you got Oct octokit, too, which is the API kit, the API frameworks. The octocons are their icons. Yeah, they actually say, for people who are building stuff that goes with the GitHub API,
Starting point is 00:07:56 don't use the name GitHub, use the name octo. And so this actually, Octopress doesn't have anything to do with that. I just happen to really like octopuses, or octopi, you can actually say that. I just happen to really like octopuses. Or octopi. You can actually say either. I was about to correct you, but then you just said you can say either or not. I was going to correct him too, but I decided to just say it.
Starting point is 00:08:13 I'm so glad I didn't correct you. I'm not going to do it. I'm just actually making this up. So anyway, though, I thought, yeah, this was Rage quitting a WordPress. And I thought what would be a cool thing is i just pictured what is now the icon which was or the it's not really an icon the graphic that i use is an octopus uh typing on a typewriter and i got david lanham to do that art and actually thinking of david lanham designing that art and having the um uh and you know and
Starting point is 00:08:44 what it was going to look like was a part of me picking the name. I just really thought it would be cool to have an octopus on this old school typewriter. So did I say an octopus or an octopus? That's what I meant. Anyway, my autocorrect is like, doesn't ever know what I'm trying to talk about.
Starting point is 00:08:57 Well, you know, it's not in your voice. It's on your phone. Oh, the autocorrect. Yes. Well,
Starting point is 00:09:03 I also, I guess, um, yeah, I've taught, you can teach your computer. You can't teach your phone that's right on my computer it knows what it knows what it's expecting so anyway yeah i was rage quitting uh wordpress and i just um thought that would be a neat you know it's it's such a close word to octopus and um so yeah that's it was just as simple as that so it's more of an affinity towards well i guess anti--affinity to WordPress than it would be an affinity to GitHub.
Starting point is 00:09:29 Right. I mean, I guess, I don't know, maybe some of GitHub at the time could have influenced that. This was in early 2000. Yeah, I mean, this is a long time ago. Sometime in 2009. So really, I think I started using GitHub in 2008, maybe. It wasn't as eating the world as it is today um and so i you know looking back i that's how i remember it um it may have also been that github had an octocat
Starting point is 00:09:52 i don't really remember if they think it was pretty new since you mentioned dates june 5th 2008 what do you what were you doing that day i was joining github i was was like, I am so done with Subversion. I was celebrating. Rage quitting Subversion. I was like, what is a branch? How do you... What is this merge conflict? When did you join, Jared?
Starting point is 00:10:13 GitHub? Yeah. I don't know. How do I find out? You go to your profile page. All right, cool. So this is what we're going to do here. I'll tell you here in a second.
Starting point is 00:10:26 April 22nd, 2008. So you beat Brandon. It's like a peeing contest. I beat you. Let's see if anybody beat me. Yes! March 12th. Same year. So you beat me by a month, about. They didn't open up until, I think, January of that year.
Starting point is 00:10:42 It was such unique times, too. Brings back memories. I remember having a conversation with Josh Owens, a co-host of a podcast I ran a while ago called The Web 2.0 Show. If anybody listened to that show, big shout out. We were actually in San
Starting point is 00:11:00 Francisco for the Web 2.0 Expo, which was super cool back in the day. We went over to Pivotal Labs and met up with Tom Preston Warner and Chris Warnstroth and sat down and had a face-to-face conversation about GitHub like a month before this. So like February timeframe. Crazy.
Starting point is 00:11:19 That's fine. On the show or just for fun? No, we released the podcast. I'll link it up in the show notes. It's out there on the web still yet, but yeah, man. It's just crazy how time flies. Six years ago, I mean, that's
Starting point is 00:11:31 Octopress six years ago, but GitHub is going on, what? Six? Eight? Seven? Eight? Something like that. It was around before I started Octopress because I learned some of the initial things that I put into my first version from there. John Long had some rake tasks for
Starting point is 00:11:48 deploying stuff through rsync and I was like, no way you can just point rsync at a directory and SSH it somewhere? This is amazing. This is before GitHub Pages and stuff. And so that was the initial version was just basically my blog, fork it, and then run some rake tasks.
Starting point is 00:12:03 For those who want to know the uh i guess the the link i'm trying to find it real quick see where is it at okay i can't find it check the show notes it's in this list i just can't seem to scan and find github in this list that's crazy but yeah we we um we had some fun going out there and talking to those guys and it's just been such a ride too for github it's been so long and i guess since we're talking about the past a little bit this isn't your first time on this podcast either brand you've been on the show in its infancy episode 17 where this is episode 162 it might be 163 or so if you're listening to this and it's actually 163. Sorry. But it's funny.
Starting point is 00:12:49 Adam wants to be corrected. Yeah. I'm going to change that. That's it. Yeah. But episode 17 was March 11, 2010, which, you know, that's a long time ago, man. This feels like forever ago. Six years ago, man.
Starting point is 00:13:04 I feel like we're getting old. All the young people listening to this show. Jeez. I just switched all these things again. But anyways, so Octopress 3.0, that's where we're at now, but it began somewhere, 1.0 obviously, or somewhere around there. 2.0 is what I think the website best represents you know or as at least talking about so you got a full-time job this has been like i told jared in the pre-call like this is your curl
Starting point is 00:13:34 we had um geez what's his name daniel stenberg daniel stenberg yeah and daniel stenberg wrote curl and lib curl and he's been doing that for how many years 17 years 17 17 years of curl that's right you're completing my sentences and i appreciate that and this dude has been doing that project only consistently for at least two hours a day for 17 years right brandon like imagine that that's wild is that what octopus is for you uh is that right now i mean i actually do build a lot of other stuff too. Right now, another side project is a personality profile test
Starting point is 00:14:09 that is... That's a lot of build. Yeah, I thought it'd be fun to have... Because, you know, all these...
Starting point is 00:14:15 I love... I study personalities. I think they're fascinating in the way they work and all the tests out there though are either crappy or you pay to take them
Starting point is 00:14:23 and I thought, well, you know, with all... I mean, I've been studying this stuff for like 14, 15 years. And given the kind of questions these things ask, it'd be very easy to write my own and then put it on GitHub and have people submit pull requests to improve the questions and stuff. And then also for people who are curious about that kind of stuff, how that stuff works,
Starting point is 00:14:44 they can see a really simple test and so there's you know i'm still working on launching it but stuff like that you know i've got uh also hsl color picker.com yeah i'm just a fun front-end tool so there's you know there's all kinds of things that i uh i like to build i guess since you mentioned that we should also mention are you still on the core team of of uh compass so compass has been um end of life and uh did i not hear about that did i did i just make that up uh breaking breaking news here on the chain blog so i think i think what's actually happened is uh chris is moving on to spectacles which is something that is more um i think it's uh written in javascript it's around um the uh libsas stuff with uh nodes s and it's it's meant to be something that's easier for people to use than compass and
Starting point is 00:15:34 it's kind of a start over and so compass is wow like marginally supported if that right now we should pause your show and talk about this now because i hadn't heard any of this news well you need to talk to chris then um he's he's uh really he's looking for help he's trying to make you know bring a lot of the stuff in that people liked about compass but separate it in a way that isn't uh a whole pile of uh do i want this or not and people you know because the really nice thing about was comp with about compass was how it would integrate into your environment and make it easier for you to you know reference images without having to maintain all the urls to cdns and stuff yourself oh just so many cool things that compass does it is uh you know he's trying to bring that to the community who isn't interested in using
Starting point is 00:16:18 ruby and so it's called speckle is what he's working on now spectacles i think spectacles yeah i all right we'll get in touch, Chris. Now I feel really bad saying this on recording because I don't know if I'm accurately portraying these things or not. This is my caveats. Something you heard through the grapevine. Somebody made this up, guys.
Starting point is 00:16:36 I don't even know. Anyway, so are you still part of the Compass team then? Even if it's where it's over, man. I really haven't been helping out with that for quite a while now. I helped with building the website and some other things and you know some of my early plugins i think maybe got people excited about what it's like to do plugins i also wrote a book with win netherland and uh nathan weisenbaum or actually natalie now natalie i think it still says nathan the cover, though. And then Chris as well.
Starting point is 00:17:05 And so that was my final contribution, I think. What was that book that was called? Compass in Action or Sass in Action? Sass in Compass in Action. I don't remember. I've got a Japanese version of it, though, which is really cool. I own the book right here on my bookshelf. Let me look back here and see if I can see it.
Starting point is 00:17:21 Yep, there it is. Got the book. Yeah. They also printed it and translated it in japan and so they sent me one of those when they did and it is a way better cover it's like all pink and blue and goofy looking and you know it's just like this thing looks awesome looks like it fell out of an 80s anime wow so all that to say is that not only do you have a full time at compose have a family and have a life you also do octopress hsl picker personality test had been a part of the compass team for a bit wrote a book so you're busy right so this is some reasons why 20 to 30 have been
Starting point is 00:18:03 what about a year and a half-ish, two years? I'd go with two years. I mean, since I've been working on it in earnest, I – yeah, so to answer the question that that seems to suggest, I am working on this thing like crazy. It is kind of like some people enjoy sports. This is what I enjoy so when I have free time in the evening when I have energy I sit down and I work on this for several hours. Just for the safety
Starting point is 00:18:32 sake then for those who are still trying to catch up with what Octopress is what's the one liner? What is Octopress? Octopress is a collection of tools to make working with Jekyll sites better, more fun, and it makes me feel good. I don't know.
Starting point is 00:18:52 I don't have a one-liner. Well, Octopress 2.0 is basically some guy's Jekyll blog you can fork and modify. Right. That's what I called it in my, what is wrong with me? Why did I build this post? Right, right, right. There you go so yeah this is this is uh this is okay so i mean do you want to talk about um that what happened here what
Starting point is 00:19:12 was going on with the transition because it sounds like there were some serious deficiencies um according not according to us but according to yourself and what became 2.0 it looks like your octopress 2.0 surfaces post was you know 2011 july 2011 and then octopress 3 is on its way so there's some also some time about four years in there what and you call octopress 3 a complete rewrite so what was so wrong uh that it needed a complete rewrite and why is okay so just to be blunt why is it taking so long besides all the stuff that we just said about family and job and all that? Well, so when 2 came out, I spent a lot of time just working on 2.
Starting point is 00:19:49 I think even in, let me think, yeah, for about a year and a half, I just spent time trying to make it better. And I guess digging the hole deeper instead of moving on. Because really what the problem was is it is a, it's at iMath as Octopress, it is a repo that you fork or clone and then run some commands and make it your own and push it to your own Git repository. Hopefully, never fun when people say,
Starting point is 00:20:18 oh, I deleted my blog. What do I do? I'm like, dude, a time machine? I don't know. But yeah, so it was kind of like all set up for you to use a certain way. But Jekyll has a plugin system that is really simple to use
Starting point is 00:20:31 if you want to modify your own site. There's just a directory called plugins in your site source. And you can just drop a Ruby file in there to get required as long as you're building it locally. If you push it to GitHub pages, it won't. But if you're building it locally, yeah, you can add whatever Ruby in there you want. And it's like, Hey man, you added this Ruby, you better believe it's, it's good. And so I had a
Starting point is 00:20:53 whole bunch of Ruby files in the plugins directory that would do all these cool things, like make it nice for you to write code snippets and generate nice HTML around those. And there were some great tasks that did uploading and configuring and all these kinds of cool things. And so, you know, if you wanted to change anything though, the problem is you're tracking my repository.
Starting point is 00:21:13 Right. And so if I make an update and then you want to pull that in, you have to deal with merge conflicts. That kind of thing was just stupid. And this is because I didn't know how to build gems. And that's one of the reasons why I never used it. Yeah. That's the dumb thing about it. I was in the air about that one i mean i was a middleman
Starting point is 00:21:28 person before i was a jekyll person and that was one of the reasons why i remember even since you mentioned john long earlier he and i worked on the sasway.com together and when we redid the sasway from i think it was i forget what it was written written in originally, but it's written in middleman now. So that's a middleman site. And he talked about using author press because you were doing 3.0 and all these new things. And I'm like, yeah, you know, I just, I don't, I didn't like how, you know, the, how things were so fractured, you know,
Starting point is 00:21:59 and how they were so fragile, it seemed, you know, with pull requests and, you know, just not pull requests, but like merge issues and stuff like that. I was like, I don't want to deal with that. Yeah, it seemed, you know, with pull requests and, you know, just not pull requests, but like merge issues and stuff like that. I was like, I don't want to deal with that. Yeah, it's just stupid. I mean, like the configuration for your site is the underscore config YAML file. And so if you make changes to that and I'm like, oh, I should add this new thing or, you know, I want to I want to change the way this plugin works because someone submitted
Starting point is 00:22:21 a pull request that fixes this other thing. And all of a sudden you have to deal with the merge conflicts of changes like that as opposed to just you know it being in a gem and then you have your own configuration and stuff like that and i mean this was before gosh it's gotten so much easier to deploy ruby gems now and you know bundler is a big part of that you can just say bundler gem and then give it a name and it'll generate a gem scaffold for you and with all kinds of nice defaults and stuff and so you just dump your ruby code in there and then run a couple of rate commands and it ships it up to ruby gems and it's like that simple and it wasn't that simple at the time and also i wanted to build a command line interface and i still
Starting point is 00:22:58 needed to learn a lot of ruby i mean i knew enough to write some cool plugins and i learned you know i got some insane knowledge of regular expressions, but other than that, uh, you know, I just didn't have the skills. And so, um, I had a really hard time maintaining that. And right now there's a whole bunch of open issues. And some of it is just because I think the, uh, clone this and it, and then mess with it is really attractive to a lot of people because they can see how everything works it's not hidden away in some gem somewhere right and so a lot of people used it who were getting to know ruby for the first time or getting to know you know development or all kinds of things like it was it was crazy the number of people that talked to me who this was like their
Starting point is 00:23:39 intro into the development world and it was because you just it's so simple you just pull it down and there it is and it works and you can mess with things. And, and so that had, uh, that had the negative side effect though, of attracting a lot of people who didn't really know how development works. And so they would submit issues saying, Oh, it'd be cool if you added this thing, it'd be cool if you added this thing. And so I've got all this code that I can't use, or that if I bring it in, it breaks other people's sites. And it just, it was horrible to maintain. And so I've got all this code that I can't use or that if I bring it in, it breaks other people's sites. And it just it was horrible to maintain. And so there are a lot of good things about it.
Starting point is 00:24:09 But there were some really bad things about it, too. I think when we when I think about Octopress, think about developer blogs for one. And then I feel like it's the, you know, Kubrick theme as it is to WordPress, which isn't quite relevant now. But it was back in the day. So people who have been using WordPress for a long time, Kubrick was a really popular theme. I think it was the first original theme that WordPress recognized as a third party that became an official. And so if you saw a WordPress site, you could easily recognize it was WordPress based upon its theme. I feel like it's the same thing with Octopress is that I don't know how many blogs that go out there.
Starting point is 00:24:49 And it's like it's basically the Octopress site as you see it now with a slightly different header, text header or whatever. It caught on. And there are so many sites we link to in ChangeLog Weekly or just in general that it's Octopress. It's out there quite a bit. So it's very popular. It's been nice because, you know, the same thing happens to me. If I don't hit Stack Overflow, I frequently hit an Octopress blog looking for something. And I always try to find out who the author is.
Starting point is 00:25:19 Do you go a little bit inside when that happens? Oh, yeah. Not only do I get excited, i also um i always try to thank the person uh if they have a twitter handle available or something or if they have email but um so it's just like hey man you know thanks for uh helping me solve this problem i'm excited to see that smart people like you are using octobress so that was that's always fun so to summarize some of the issues you're trying to solve with and Jared's original question was what's what's wrong with 2.0 you know why why the full rewrite to 3.0 so a lot of the issues are the way it was the way it was originally published was you know you had to fork your original version
Starting point is 00:25:56 you had to deal with merge conflicts it was just sort of messed up gems have gotten a lot easier to publish for Ruby what was some of the other things you mentioned? I will say, as a correction, you don't actually have to fork it. A lot of people did, because I don't think people knew how to use GitHub at the beginning. It's like, if I fork this, then it's mine, and they didn't really understand it's for contributing. So yeah, it was... Could have cloned it. I mean, it's just a very simple separation of concerns problem that if you build one tool that has tons of different code that solves different problems, then it's really hard to break those apart when you need to figure out what's going wrong.
Starting point is 00:26:34 And so it wasn't really testable. There were so many challenges in developing a system that was like it all kind of works together. And if you pull something out, you know, it was, you know, it like if you remove one plug in remove one plugin it may break another plugin that was expecting that because they don't have a dependency chain they're just ruby files um and so then if you want to unwind something you're like where you know you're actually editing all this code to figure out how to remove something and that's just terrible so i could go on about the many sins but it's basically just i wanted to summarize what the real problems were so that it was clear. So as we step into deeper discussions about 3.0 here in just a bit,
Starting point is 00:27:13 that we can reflect back on some of the problems you've already illustrated, which is why 3.0 is a rewrite, not just a fine-tuner tweak. So as a summary, then, the way it was deployed was through Git, which meant you were tracking all my stuff. That's bad. Git is for collaboration. It's not for shipping a product. That doesn't make any sense. The other problem was that all the pieces came with the puzzle, and you couldn't really take them apart or add to it easily.
Starting point is 00:27:41 I think those are the main problems with it, really. Cool. Let's take a break then, real quick. We'll do a sponsor break, and when we come back, we'll start diving deeper into Octopress 3.0. So, we'll be right back. DreamHost now has managed VPS hosting built for speed and scalability, including solid-state drives, and that's awesome. These VPSs are built for open-source developers
Starting point is 00:28:06 and now include one-click installs of Node.js, custom Ruby, and RVM support. Speed, speed, and more speed is what it's all about. Their VPS servers use SSD hard drives and are 20% faster than traditional SATA drives. All virtual private servers from DreamHost include SSD storage, Ubuntu 1204 LTS, Thank you. with unlimited hosted domains, unlimited 24-7 support. Go check them out and learn more at dreamhost.com slash the changelog. All right, we're back.
Starting point is 00:28:51 Got Brandon here, Jared. Gosh, man. Octopress is Jekyll's Ferrari. I see it right here in the byline now. I didn't notice it before, but Octopress 3.0 space hyphen space jekyll's ferrari yep i mean that's just that engine yeah the fun thing is you can click the edit button and type whatever you want to so uh a couple of nights ago i was like yeah i'm just gonna call it jekyll's ferrari for a little while well you know hey that's you know that's fine i like that that's cool so now you have so
Starting point is 00:29:27 octopress did originate on your user on github now it has its own org so github.com slash octopress o-c-t-o-o-c-t-o-p-r-e-s-s in case you did not spell octopress um so so let's talk about uh 3.0 what give me the elevator pitch to what's new in 3.0 what is 3.0 as compared to 2.0 and all the things we've talked about so far so 3.0 is basically everything is shipped as an independent gem that has its own tests that has a cli that kind of ties different tools together. And you can use any part you want to without having to adopt a whole system. And it works with any Jekyll blog. There's no, you have to change how you do things
Starting point is 00:30:16 in order to adopt Octopress. It's, you know, any Jekyll site can add a plugin and immediately get the value from it. So walk me through the getting started then with 3.0. Do you create a new Jekyll site? Do you clone something? Do you install a gem? What's the process?
Starting point is 00:30:34 So yeah, you just create a new Jekyll site. I'm still working on the migration for 2, so I'm not really ready to talk too much about that. I'll tell you how hard it is in a little bit if you want. But if you have a Jekyll site, you basically just need to install the octopress gem and that will come with um you know i've broken things out a lot there are a lot of separate little pieces and octopress the main gem doesn't include most of the plugins it is mainly a cli and a few other goodies so um it has a uh it has really nice tools for working with posts, pages, drafts, and deployment.
Starting point is 00:31:08 And so you can, you know, one of the things it does is kind of like Rails generators where you can kind of create a bunch of files that, you know, set up pages for you. You can just, with the Octopress command line, you can run a command to create a new post or a new page and octopress introduced this concept of post and page templates and so you can actually there's a little templates directory where you can add any kind of file you want to and put you know html markdown whatever you want and front matter and when you create a new post you can tell it to use a certain template as default or you can have like let's say you're writing sponsored posts you can tell it to use a sponsored template as default or you can have like let's say you're writing sponsored posts you can tell it to use a sponsored template and it'll
Starting point is 00:31:47 generate a new post with the name you have and the date and everything and use your template which is just kind of a nice thing to have for Jekyll um it also has I like that yeah it's pretty nice uh it just make things makes things faster because you know if you don't if you don't know much about Jekyll you there's like a lot of it's file system based. And so there is what the whole thing is. But a lot of it is particularly file system based instead of metadata based. So you have a file that is in a specific place in a post directory with a date and a file name and all kinds of things in order for Jekyll to consider that a post and the way it treats it. So it kind of just takes care of all that work for you.
Starting point is 00:32:25 Also, there's... Go ahead. Jekyll added a new concept of drafts in, I think, 2.0? Maybe 1? I can't remember. And drafts are cool because they live in a separate drafts directory, and you can generate your site with drafts, or normally generating it doesn't include the drafts. But if you want to publish a draft,
Starting point is 00:32:44 you have to move it over to the post directory and change a bunch of metadata and do different things. And let's say you write a draft three days ago, and now you have to add a date for it, and you know it's using ISO 8601 dates, and so it's like, do I really want to type this out? It's stuff like that. It's like, hey, a computer can do that for me.
Starting point is 00:33:01 So I added a command for creating, let's say, Octopress new draft, and give it a title, and it will dump it in your drafts folder. You write it, do whatever you want, and then you can just say Octopress publish, and you can type any, it's like a search string for the title of that draft. And it will take that draft, and it will convert it into a post and publish it into your post directory. And you can also unpublish posts, so it works the same way. And if you have like, let's say you are writing about, I don't know, cars,
Starting point is 00:33:28 you can say Octopress unpublish cars, and it will show you all the posts that have the word cars in the title and let you pick the one, and it moves it to drafts. That's cool. Yeah, I like, I remember, I guess, what has become the CLI before. It was a rake file. I remember your deployments and stuff like that. And I think you and I had similar ways to deploy static file system-based sites
Starting point is 00:33:57 because I was using Middleman, I think, before I was using Serve from, yet again, John Long. Which actually, now that I remember it now, that's what the sasway.com originally was. It was a CERV site, and then we moved it to middleman. But I recall what was now the CLI, I think, was just basically a rake file. Can you talk a bit about, I guess, this process to the CLI? You mentioned that Octopress 3.0 is leveraging many gems that you may or may not have installed, and you can install one. Do gems sort of come in and add on to the CLI?
Starting point is 00:34:32 How expensive is the CLI system you have? So yeah, any gem created for Octopress can extend the CLI. And so, for example, the deployment gem is separate. So Octopress deploy is at github.com slash Octopress slash deploy. It has all the deployment stuff. And the reason I did that is I wanted to have those tests handled separately, to have pull requests handled separately, all that kind of thing. And so that extends the CLI. So you can say Octopress deploy init S3, and it will generate a deploy YAML file for deploying to an s3 system.
Starting point is 00:35:08 So you can configure it for CloudFront. You can add your AWS keys or have those be read from your NVVars. You can say I want to deploy to rsync or Git-based deployment for Heroku or GitHub Pages or whatever. And it'll generate a deployment YAML for you. And then when you just run Octopress deploy, it's requiring that gem, it's extending the CLI, and so it recognizes that command, and then it finds your deploy YAML and figures out where your settings are and runs all this crazy stuff and deploys it. And it's also nice because you can tell it to use a specific configuration. If you want to deploy to a staging site that maybe you have on some server that's password protected
Starting point is 00:35:48 so you can easily show previews to people, you can do that kind of thing with just telling it to use a different configuration than whatever the default is. So it seems to me like Jekyll has always been the hacker's blog system, right? And this seems like Octopress takes it like it does make it a ferrari now that i'm hearing more more about this like it definitely you know for someone who loves the tinker people that remind me of tinkers is like when uh jared you're a tinker man it seems like this is the kind of thing that i'm a tinker too but i mean i think that i imagine you and win are like for sure tinkers you love playing with things like that and you know you would dig in and start using jekyll and then start using octopress and like little by little
Starting point is 00:36:29 start pulling in different gems into your processes into your system and maybe even write your own and leverage the cli and like this is a hacker's paradise to me i think let me just speak to that real quick here uh i think when i first saw octopress back in the day, it was a blogging theme for Jekyll. And that wasn't all that attractive to me because I was like, well, I can do a theme and I understand Jekyll. And so what does it bring besides I really loved your code folding thing
Starting point is 00:36:58 when you hover over a piece of code and it unfolds the page so you can see the whole thing. That was rad. I kind of wanted that on my blog. But this sounds more like, I mean you'd see the whole thing that was rad i kind of wanted that on my blog but this sounds more like i mean man the ferrari thing makes sense and once you have some context because this sounds like a bunch of tools sitting on top of jekyll making it just more uh nice to work with um you you have to do less plumbing yourself but then you can build your own tools and integrate them into the system so it it almost feels like a layer on top as opposed to just a starter theme. I'm curious if there's theming involved as well.
Starting point is 00:37:32 Oh, we'll get to that. I think there is. Oh, surprises. Okay, cool. But yeah, this take on it, maybe this was what Octopress has been. I mean, obviously it's a new architecture, but maybe some of these things were there from the beginning and I just didn't see the light
Starting point is 00:37:46 because I just thought it was just a blogging theme. It sounds like either the scope has changed or you're kind of just speaking about parts that maybe I wasn't privy to previously. Also, it did have the option to deploy and it did have new page themes. And some of the systems, it didn't have a templating system for pages. And so if you wanted to, you know, back in 2.0, if you wanted to
Starting point is 00:38:08 change what your default, uh, new post or something looked like you had to edit the file, like it's stupid stuff like that. And so I'm, you know, rebuilding a lot of these things and expanding the idea because now I've extracted a lot of this into something really small. And I can say, I'm going to solve the problem of how do you, you know, publish a draft? Like, what does that look like? What is the best user interface? Because I could say, oh, yeah, if you want to unpublish a post, just, you know, pass the path. You can do that.
Starting point is 00:38:41 It'll accept the path, but it'll also accept a file name. And if it can't find that file, it'll search in the post directory, you know, for file names that match that. So it's like, I'm just thinking, what is the nicest user interface? Because that's, see, I'm a designer at heart. This, that's why this has been such a big learning process for me. And so a lot of my interest is making something that feels like it respects me as I use it. And, and so some of the fun for me is just saying, I have this one tiny thing that I'm working on, how can I make this as nice as possible? And that's also why it's taken me a long time to get this out. So another cool thing,
Starting point is 00:39:17 Octopress isn't just about working with your Jekyll site, it's also about open source around Jekyll. And so I've written some other cool things. One is fun. Do you guys ever use a Ruby debugger? Yeah. Like a command line one? Sure. Prypy bug?
Starting point is 00:39:35 Sound familiar? Mm-hmm. Cool. So Octopress brings that to Jekyll templates. So there's a Octopress debugger gem that you can install and allows you to I don't know if you're familiar with Liquid, but it's like to Jekyll templates. So there's a, um, Octopress, uh, debugger, uh, gem that you can install and allows you to, I don't know if you're familiar with liquid, but it's like mustache percent and then whatever,
Starting point is 00:39:52 uh, percent mustache. So you can say, you can add a debug tag in a post or page, and you can actually like step through a loop as liquid builds your site. And so for people who are in it, and it, you know,
Starting point is 00:40:03 goes to the command line. So you can like test, you know, local variables. You can do all kinds of cool stuff and see what's happening. And so goes to the command line so you can test local variables, you can do all kinds of cool stuff and see what's happening. And so as you're working on plugins, you can use Octopress Debugger to say what's happening here? Why isn't this freaking working? Instead of having to figure out how to write stuff
Starting point is 00:40:18 to a file and then read the files or things are breaking, it's just so much easier. There's also a, on GitHub, on iMathis Clash, C-L-A-S- easier um there's also a under uh on github on imathis clash c-l-a-s-h there's a gem called clash it has a command line and it's all about a testing framework for jekyll which i wrote in order to make it a lot easier to write these uh all these cool plugins and frameworks and what it does is it uh it has its own scaffolding and stuff, so you can easily get started with a new Jekyll project. So if you want to create a gem that adds some nice features to Jekyll,
Starting point is 00:40:51 you can use Clash to build the Jekyll site and compare generated pages to whatever you're expected. So you just set up your plugin. Let's say it's a liquid tag or something. Generate your Jekyll site and then say, okay, this is how i expected to look you just you can run a command that just says accept those changes and it will um create you know test files and stuff that that match how it looks and then it'll it'll run diffs against that stuff and so you'll see these nice little diff outputs when you're running it and i test basically everything i've written with that
Starting point is 00:41:22 it's pretty cool huh yeah so I'm on Octopress, github.com slash Octopress, and it looks like you have dozens of repos here. Several pages, yeah, several pages. There's about 30 repos. So you got code block, syntax highlighting, you got ink, which is a core component for building gem-based Jekyll themes,
Starting point is 00:41:42 Littlefoot, fancy footnote popovers with native JavaScript for any Jekyll site. All sorts of goodies out here. Asset pipeline. Yeah. Hello. Yep. So yeah, there's other cool stuff.
Starting point is 00:41:52 Social share buttons. I'll talk. Yeah, social share buttons. So Littlefoot is a thing I released recently because you guys have probably seen Bigfoot.js. I got Bigfoot on my blog. All right. So basically, I don't want everybody
Starting point is 00:42:04 to have to have jQuery who wants to have nice footnotes on their Jekyll site. Yes. And so any Jekyll site you have, you can just add Octopress Littlefoot, and it will use all native JavaScript, and it basically does the same thing that Bigfoot does. Oh. And it comes with style sheets and everything that are automatically integrated into your site. I'm putting that in my blog this weekend. Yeah, check it out. It's cool. Let me know how it goes for you i will so you're using jekyll jared oh yeah oh yeah okay oh yeah i missed that part okay yeah my personal website's been jekyll and my company's website's a jekyll site that one's on
Starting point is 00:42:40 github pages my personal site is just on uh an old DreamHost account because I don't care about it. Just because. But yeah, it's been on Jekyll for years. And over time... So I heard you mention Jekyll earlier. I just didn't know that you said that your blog was in Jekyll. I guess I didn't put two and two together. Yeah, I've been using Jekyll for a while.
Starting point is 00:43:02 And honestly, over time, it's lost its luster. I sometimes dread aspects of making changes to my sites. I don't write very often, and I try to blame that on Jekyll, even though it's not really his fault. So some of this stuff in Octopress is really starting to tickle my fancy a little bit. What's that? The male perspective and it's a person.
Starting point is 00:43:27 You both act like Jekyll's a person. Well, because he's got a Ferrari and he stops me from blogging. There you go. You've got to blame somebody. I know. If you're going to not blog, do it on a static site because you don't have to worry about having to update things and getting hacked.
Starting point is 00:43:43 Speaking of, Jared, you pointed out, I guess you Googled that? No. So in our back channel, we were talking previously about the Web 2.0 show. Adam found the link, and he pasted it in the Skype back channel. And Skype went out, and Skype tries to get fancy now, and they go out and they grab a preview of the page with the page title. I hope I'm not saying too much here adam but no that's cool but it was some uh some his old wordpress site i'm assuming
Starting point is 00:44:13 yeah it's a wordpress i've been meaning to make a study forever now but it's like the lowest thing on my totem pole to deal with he paced me a link to it just so we have it for the show notes and it said buy cipro without prescription. Oh, yeah. Right in his page title. So I said, yeah, you got hacks to work. Yeah, this is an unmaintained WordPress site. It still runs, which is great, but it's also insecure.
Starting point is 00:44:35 That's the problem, is it still runs, right? Yeah. Anyways, so yeah, that's bad news there. So we did find a link to that GitHub show from way back in the day. But don't visit the site because you might get malware. Maybe. Just don't click any audio files.
Starting point is 00:44:51 My worst ever was I think some gallery plug-in for WordPress. Someone ended up installing some kind of backdoor system for hacking banks on my shared PHP host. Yikes. I was like, okay, let's get rid of this thing as quickly as possible. I do not want to get in big trouble. No doubt. So since we're talking about some of the repos on the Octopress org, one that I see that's lacking, and you can tell me why, is the Docker one.
Starting point is 00:45:23 Is there an image? Is there not an image? Just read me. Oh, that's not and you can tell me why is the docker one well is there an image is there not an image let's read me oh that's not actually me yet uh that's uh jordan who also works on jackal uh said he wanted to create a docker image for octopress i said go for it so i created him a repo and gave him some permissions so oh okay yeah okay so it's it's coming then it's coming well i see you got to come in here, so I got you to blame. Yeah, go ahead, blame me. I don't mind.
Starting point is 00:45:50 There's plenty of other goodies in there that are worth talking about. No, no, no, of course. Well, the reason why I say that is because only because of the getting started we talked about earlier, which is how much work it takes to get started with the old version of Octopress. Having Ruby, not having Ruby, all these different scenarios here,
Starting point is 00:46:09 and Docker obviously flattens that playing field quite a bit. So if there was Docker out there, and all you had to do was have Docker on a machine, and you could pretty much have an environment ready to go to run this new Octopress site and really make it a top-, a top of the line Ferrari. Yeah, the cats working on Jekyll are really excited about getting Jekyll on Docker. And I think everybody kind of wants to make it so much easier to get started with this stuff. Because, you know, I mean, a lot of governments use Jekyll for their sites. And it would be awesome for people to just want to have a site that they don't have to worry about managing an admin interface for and updating stuff like that. If they just want it to be
Starting point is 00:46:49 really simple, it'd be great for them to have an easy way to install that. I still don't think that Docker is an easy way to do everything yet, but it's getting closer. I mean, you know, it's, it is getting closer. It is getting closer. One step. I mean, one of the reasons I was really excited about building a CLI for Octopress is just because that allows people to do all kinds of extra things you know it'd be easier to write a gui or something on top of that anything that can just farm commands out to octopress uh it just opens it up more so um but yeah there's some other cool stuff in here um so let's see what are some your favorites so you're're going to tell us, you're going to tell us about the most joy.
Starting point is 00:47:27 Oh, well, yeah, I'll tell you what the coolest one is. It has the least docs right now. Cause actually the docs are in another folder. They're not in the read me. Um,
Starting point is 00:47:33 but Octopress Inc is freaking awesome. It is the theming system for Jekyll and the, the, the Jekyll maintainers are basically in the, they have a Jekyll talk. I think it's like talk.jekyllrb.com. Um, where they're saying, yes, people should be using Inc if they want to do Jekyll talk I think it's like talk.jekyllrb.com um where they're saying yes
Starting point is 00:47:46 people should be using ink if they want to do Jekyll theming uh and it's it's the main reason that I haven't put the uh final um yes uh Octopress 3 is out and this is exactly what we should do to use it post up on octopress.org um because I'm not quite done and I want to get all the documentation in. So Octopress Inc. is a system for making it really easy to write plugins for a Jekyll site. So it handles the asset pipeline management. It adds CLI commands for working with your plugin. So for example, on that Littlefoot.js thing, that is built on Octopress Inc. And when you install that, you'll put a CSS asset tag
Starting point is 00:48:30 and JS asset tag liquid tag in your head or footer, wherever you want to put it. And Octopress Inc. will generate a fingerprinted compressed style sheet in JavaScript and inject the script tags and stuff in that place and it'll put it on your site you can also manage the compression settings and stuff
Starting point is 00:48:53 you can say i want all plugins to generate their own files so you can troubleshoot stuff really easily but basically you have uh you know once you install that, any Octopress Inc. plugin you install automatically gets combined into a single style sheet or JavaScript, and it's based on your gem load order or whatever. Also, the Octopress Asset Pipeline adds your own local style sheets and stuff to that Asset Pipeline, which is nice. But the cool thing also about all this is that when you're using Octopress Inc., each plugin has its own configuration. And so you can run Octopress Inc. list, and it will show you all the plugins you have installed in the command line with information about them and what assets they come with. So you can include JavaScript style sheets. You can use CoffeeScript or SAS. You can do, you know, images, pages. You can use generators that can create index pages with pagination.
Starting point is 00:49:55 It's all multi-language. Oh, yeah, it's another cool one. Octopress Multilingual lets you do multi-language pages. Just wait, there's more. Yeah, I mean, there are so many things, and they're all really cool. Like, the multi-language stuff is super neat. If you have a site that you want to post in multiple languages, you can have separate feeds, separate indexes, tags, indexes, category indexes,
Starting point is 00:50:16 all these kinds of cool things for whatever languages you are writing about. And let's see. Oh, yeah, and so with Octopopress inc you can also run a command that will generate a plugin scaffold that is a gem and all you have to do like if you wanted to put out some javascript and style sheets like that's that you just want to write a theme or something all you have to do is dump those into a javascript directory and a style case directory and then you can bundle up the theme and send it and when somebody installs that that automatically gets installed to their asset pipeline very nice so it's really cool a lot of neat stuff lots of goodies well let's take a break here we'll
Starting point is 00:50:53 hear from a sponsor uh on the back side of the sponsor break we will talk perhaps about the roadmap to 3.0 what steps have been taken what steps still need to be taken maybe we'll try to pin him down on a release date for this thing. Let's take a break and we'll be right back. You've heard me talk about TopTal several times on this podcast, but today is different. I've got a special treat for you. I went out and spoke with a listener who a year ago had never heard of TopTal. He listened to the show just like you're doing right here, right now, today, and heard us talk about TopTal and what they're all about. And he decided to get in touch. And now he's living the dream as a freelance software developer with TopTile. His name is
Starting point is 00:51:33 Daniel Elzon. And I sat down and I talked with him. I said, hey, what is it that you love most about TopTile? Take a listen. Well, for me, the thing about TopTal, which I thought would be very hard for me personally as I transitioned to a more consulting role, was the way I would have access to new clients and what quality those would be. So I found that I've had access to awesome clients through TopTal, and it hasn't been that hard to find because they have a lot of choice. And even more than that, there's enough choice and I can actually be a little selective about what kinds of things I want to be working on. So I use that as a way to sort of hone my skills and go towards the technology that I think are worth investing in for the future. So whether it's including new front-end frameworks or doing a little DevOps work on the side, I usually am able to find clients who have the needs of the things
Starting point is 00:52:31 I want to get better at. So that's been truly useful. All right, that was Daniel Lausanne, a listener of The Change Log and also a freelance software developer with TopTile. If you want to follow in Daniel's footsteps, go to toptal.com slash developers.
Starting point is 00:52:49 That's T-O-P-T-A-L dot com slash developers to learn more about what TopTal's all about and tell them the changelog sent you. All right, we are back talking about Octopress with Brandon Mathis. Brandon, you had on a recent blog post on the octopress.org an announcement about Octopress 3.0 is coming. This was in January.
Starting point is 00:53:13 We're recording this in June. Still not here. That's all right. Software is hard. And you have been releasing all sorts of goodies along the way. But you also published a release plan. And in that plan, you have kind of six steps to a 3.0 release.
Starting point is 00:53:29 Curious where you're at with things. Step one was finish Octopress Genesis. You had write a migration guide. Step three was move the master branch to the legacy branch. Switch to a GitHub org, which you've done that, obviously. And then new doc site and then
Starting point is 00:53:46 release octopress as 3.0 and octopress inc as 1.0 where you are in that release plan uh so basically i am at i still have to move i'm at this octopress to the octopress org right now i just have two repos and i really don't want to have that old one anymore. I've always been confused about that. I was never sure which one was the canonical. Yeah, well, Octopress Octopress will be the canonical. Will be, but it isn't now. Well, I mean, it is for 3.0.
Starting point is 00:54:18 The other one is just a vestigial repo. Oh, so it's only for legacy then. Right, and so that'll be a branch or something on whatever the current one, or on Octopress Octopress. So I still need to do that, and it's just kind of one of those things where I want to have the migration guide written and published so that when people are trying to figure out how to clone this thing and run this stuff, the site needs to be done for that to happen. All the stars will turn into hate mail yeah right it's uh yeah i gotta it's it's a little bit um overwhelming uh given the popularity of the current version of octopress trying to make some of these changes and uh i still hear from people who are they have no idea that this is happening even though there's a post about i need to do a better job of communicating about it but
Starting point is 00:55:01 anyway um that's why i'm here so the uh talk about the doc site actually is one of the other cool things that i forgot to mention that octopress cli does so if you have a bunch of gems installed that are octopress gems or even if you guys write gems and uh you can add a little snippet of code that will register them with documentation so you can run octopress docs from the command line and it'll launch a Jekyll site that has the documentation. It'll suck in the readme and the changelog, and you can add additional docs pages as well for any of the plugins you have installed on your site. So you can read without having to go to GitHub. It's all local, you know, installed in your gems.
Starting point is 00:55:42 You can read all the documentation for everything installed. And so I'm using that same system of collecting documentation from gems and repositories and stuff for building the site. And so everything that, you know, all of the plugins I have, their documentation is in the readme. And some of them, if they have additional things like, you know, walkthroughs or things like that, they can put that in the, there's a docs directory that Octopress Inc. creates if you're creating an ink plugin, or you can, anyway, those are all like implementation details. But basically, you can easily add documentation to different gem plugins. And that's what the new site is going to use. And so finishing that is
Starting point is 00:56:21 currently happening. And I am trying to finish up the new default theme because the power of a default theme surprises me, as you guys have already mentioned. Oh, yes. So I really want to get this to be a lot better, to be really nice. Is it a redesign or a realign? Well, it's just all starting over.
Starting point is 00:56:43 I mean, web development has changed so much you know we're all using svg stuff or whatever now there's just better ways of doing things um and so i'm trying to embrace a lot of that and come up with a nice looking theme that people want to use that has a lot of flexibility you know people like these large image headers and stuff like that i want to make it easy to add those to posts and it's a lot of it is just kind of deciding you know i've built something that works but i kind of want to rip it apart and do it again a little bit which is it's you know it's a reminder that seems like you you would do that yeah um not a bad way but you seem like you have a high threshold for satisfaction like you uh you want things to be really really good and that's good
Starting point is 00:57:27 yeah well it's i mean a theme is such a hard thing to do it's like i'm combining uh i've written so many special liquid tags just for making theming easier things that uh like conditionally render a a partial based on some configuration um and know, there's so many different things that happen under the hood in a template just to generate good HTML. And getting all of that so that it's easy for somebody to work with. I'm thinking about how the user will come to this, and I don't want them to have to mess with this stuff. If you have a theme that's been built on Octopress Inc., you can run a command and it will copy from the gem all of the assets.
Starting point is 00:58:09 So like the layouts, the includes, images, anything that fonts, whatever comes with your theme can be copied to an override location in the plugins directory of the site you're working on. And then you can delete whatever you don't want to override, but anything that's there will automatically just override your theme from the gem. And so it makes it really easy to edit these things. And so I'm thinking a lot about if someone does want to edit these,
Starting point is 00:58:33 they want to break them up in a way that's very easy to edit. And so there's a lot of consideration that goes into just that part, let alone the CSS. So, yeah, it's intense. This is your own monster, though, monster though right like you made this monster right it's it's as complex as you make it well i mean it it's the thing is is her it's like a lot of uh this is the right way to do theming especially for a static site this is just a it's a really nice way to work with it and And the burden that I'm putting on myself is setting up a pattern. You know, I imagine that people are going to fork
Starting point is 00:59:08 my theme and then ditch the style sheets and write their own or use this as a way of learning how to do themes for Jekyll. And so I want to really give good patterns to everyone. So, you know, as this begins to take off, people will say, oh, I can easily create a theme. This has everything I need except I want to change these things about it. And so rather than getting pull requests and having to manage this one repo that is the only way to do everything, it's just people can easily fork and create their own stuff and release gems for them. So yeah, once I have that theme where I like it, then I can make the documentation site use that theme, and then I can replace the docs as they are now.
Starting point is 00:59:59 And so that's really what I'm waiting for. The theme is off the press Genesis. Is that right? Okay. So Genesis is the theme name. I thought that was maybe your code name for the core. Yeah, I wasn't sure either. Yeah, that's the theme name.
Starting point is 01:00:09 This is all new. We didn't talk about this. What's Genesis? Oh, yeah. So Genesis, I mean, you can try using it now. It does work. But it's not super well documented. But that is, you can dig around in that repo.
Starting point is 01:00:23 I think it's Octopress slash Genesis theme. And it will kind of give you an idea of what it's like to build something for Jekyll theming. As a total sidebar for those listening, perhaps, when you say Octopress Inc., it's easy once you read it. But if you haven't read it, it sounds like you're starting a corporation around octopus yeah that's like you know that's ink that's not uh ink comma yeah i thought of it kind of like you know uh if if an octopus was going to create art it would use its ink right kind of cheesy kind of cute i don't know nice both nailed it i embrace it so finish the theme octopress genesis the migration guide it's in progress um so basically i have migrated the original doc site to use octopress 3 i haven't
Starting point is 01:01:16 published it from that yet because there's some other things i want to change um but the the tricky part about explaining to people how to migrate is that people, if they just use the stock Octopress clone and they add their own stuff to it, it's super easy, especially if they want to ditch the theme. I've replaced all the plugins that I wrote for the original Octopress with separate gems so they can add what they want to use and what they don't and it won't break but if they made a whole bunch of changes and their site depends on those changes to build then it's like um choose your own adventure pal sorry uh you know you i helped you create this monster and i can only apologize um but yeah that's it's it's kind of there's going to be a golden path that should be simple for anyone um and you you know, at the end of the day, it's all, it's a bunch of markdown files in a post directory and you just want to migrate your content. You can just create a new Jekyll site, add the theme gem and dump it in there. But, you know, if people got really crazy with Ruby and they wrote tags that depend on weird things, like, you know, you just never know what somebody's going to have done and so that part is a little bit daunting for me to say uh try this you know and then write me all kinds of email
Starting point is 01:02:29 for help well from my perspective i think if if you if you see the autopress 3.0 is the new better hotness the the red ferrari as we talked about you'd want the all the attributes of the red ferrari you wouldn't want to like you know take the skin off the red ferrari and put it on your jalopy civic anybody's traveling out there sorry about that but just put a big wing on the back man it'd make it go faster yeah i mean i would want to get rid of anything fun i might have done i guess it it's sort of case by case but yeah and that's that's the really hard part is you know you write a guide and then and somebody sits there and tries it on their site and like why doesn't it work and they're like, well, why doesn't it work?
Starting point is 01:03:05 And you're like, well, remember two years ago when you added this Ruby and you did this thing and you broke all this stuff? Well, yeah. So you stand to – that's why it is a point release too, so there are breaking changes. Oh, massive breaking. I mean nothing about it is similar. Right. So migration guide is in progress to a degree. At least you have an idea what you
Starting point is 01:03:25 want to say right i've written it several times so we're getting there so moving the master branch to the legacy branch for maintenance is that that's pretty easy right uh yeah or no that should be pretty i mean it's it's just a matter of uh creating a uh clean branch and then adding all the content from the current Octopress and iMathas. And then just, you know, GitHub makes it very easy to move one repo to another. And the reason I would do that is because, you know, there are probably tons of links out there pointing people to Octopress and they're pointing them to iMathas Octopress. And I want people to find the new good stuff instead of seeing some broken page.
Starting point is 01:04:06 Or see some pages as, oh, go here. Or people who start it because they want to follow it, maybe they don't know. This is another way to signal to them, hey, this is a new thing. That's a really good point to mention there. I think, say that again, because that's something I think people will experience where they have a popular project on you know on a personal uh user and then move it to an org have you researched this a ton
Starting point is 01:04:31 like is there a blessed way to do this without losing stars and watchers and redirects and i mean i know github makes it easy but is it harder than it seems uh yeah i mean it can be it it just depends you know a lot like the the thing that I hate about it is that the issues follow you, right? And there are a lot of open issues that I'm just going to go through and close and say, this is, you know, no longer supported. Um, and if you want to fork this and maintain the separate thing, you know, I'm, I'm happy to encourage you not to do that because it, it will only result in pain, but, uh, yeah, it will only result in pain. It will only result in pain. That's all that's coming from that.
Starting point is 01:05:10 Yeah. So I think that's the main thing that I don't like about it is all of a sudden I have new issues that I have to go through. And I try to be, gosh, I'll say the people who have been using the new stuff have been awesome. People have filed lots of issues there's been lots of poll requests and it's been so much easier to maintain it I've had you know a lot of help and it's been really encouraging to see how quickly I can get new stuff out and release new versions and not have to worry about breaking anybody's stuff so I am already very blessed by the new system with all the separate gems that each solve
Starting point is 01:05:47 their own little problems and yeah i look forward to more users getting to enjoy that so the the real time consuming things then really seem to be obviously wrapping up the theme which we realize how important that is the migration guide is super important uh the new doc site which leverages genesis so that's sort of the blocker there just talking in terms of agile i guess and then to top it all off the cherry on the on the top is release octopress is 3o and octopress inc right yeah uh finish all the documentation for octopress inc um and some of that you know if i have a really good theme that people can use, I have some time to explain.
Starting point is 01:06:25 So there's documentation. Yeah, I mean, it has some documentation to it, but I want to be able to write guides. Like that's, to me, that's the higher level documentation, explaining what a method does and what commands you can use. That's great. But I want to say to somebody, okay, you just started using this the first time. You have no idea what's going on. Here's a story you can read that will tell you what you're going to encounter and what you're going to need as you're going to need it. Or if you're interested in this other thing, here's another cool –
Starting point is 01:06:54 people are going to come at this from different angles, and so finding ways to explain that to them. It's like when you have a product, you have different landing pages to explain to people who are trying to use it for different things why they care about it and what features will help them. And so that's really kind of what I want. I want it to provide documentation that is of that quality. Well, I think the release plan talking about that has just perfectly aligned us with the first closing question, which to me is everyone listening to this, I know there's tons of people out there using Octopress. You know it, I know it.
Starting point is 01:07:31 The stars on GitHub say so as well. But for that caring community, both users and potentially contributing developers, what is the best way to help you move through this release plan? Support you, either it could be documentation, it could be whatever. What are some of the ways that people can step up and help with the needs of Octopress right now? So I think people who have existing sites using older versions of Octopress, if they try to migrate to use the new stuff, the hard, the hard thing is
Starting point is 01:08:05 because I don't have a theme yet. It's not like I can tell them use this theme. It's like, well, if you were depending on the old theme, if that's why you used Octopress, then write some HTML and CSS. You know, it's, it's not a great thing to tell. Right. So there's, that automatically reduces my audience to a large degree of who is willing to jump ship and try the new stuff until i have that out there but for those who are just interested in jekyll even um anybody who has if you've had a lightweight octopus site and you either there are jekyll themes out there you can use too um but if you want to try the new stuff um uh right now dig around on the Octopress org repos and see what's there. Um, you know, reach out to me if you want to talk. I've had a lot of email correspondence with different people
Starting point is 01:08:51 who are interested in working on different parts, uh, try things out, break things, complain about them. Um, you know, somebody the other day was asking me to add a Google app engine deployment system to Octopress deploy. And I was like, dude, send me a pull request. I've never used it before, but I'm happy to review it and try things out. So I've had lots of people try. If you are a person who likes to write in multiple languages, please try Octopress multilingual. It makes that so much easier in Jekyll. Yeah. So mainly what I'm looking for is pull requests and issues opened on the new stuff and anybody that wants to share what it was like for them to migrate some people have already written blog posts about that
Starting point is 01:09:30 and those are really helpful too so you do have some people who have started to use it but just they've said okay there's no theme yet for it right and they're sort of operating in this unknown world where it's not quite released well they just they just use their old layouts and themes and stuff, and they're just removing plug-ins that they don't need anymore because they can use the new ones. So a lot of it is just delete the plug-ins from your plug-ins directory and add some gems and build until it works. There you go.
Starting point is 01:10:01 It's a little bit of discovery there, which is unfortunate. And this is why I'm getting away from it. And I can't wait till everyone has the awesomeness version. And this sort of thing doesn't happen anymore. So for those listening right now that use Octopress and say, I haven't migrated, but I will right after the show. How do I do it? What's the first thing that, I know you may have already said it already, but what's the first step they could take to take their old Jekyll, uh, their old Octopress ways of doing things. How could they move into Octopress 3.0?
Starting point is 01:10:29 Well, they can try, um, installing the Octopress gem and just work with the new, uh, command lines and, uh, command line tools.
Starting point is 01:10:36 So there's a, the, there's a giant, uh, Markdown read me that explains everything you can do with the Octopress CLI on, uh, Octopress, Octopress, Octopress and try that stuff out. And, you know, like I said about the plugins, remove the old stuff, look for the new ones on on the Octopress org.
Starting point is 01:10:58 So, yeah. So so for those out there who go and do this and try it out, give Brandon some feedback. What's the best way to do it? An issue, an email, a tweet, a blog post? All? Yeah. I mean, create an issue if it makes sense to create an issue. I'm thinking like to give feedback to the rest of the community who might be coming behind them about the migration path.
Starting point is 01:11:20 Right. Yeah. So blog posts are great for that. If they can also, they want to open an issue for discussion, I'm happy to discuss that sort of thing because that's totally relevant. But yeah, I think one of the better ways to start really is with a new vanilla Jekyll site. So I think a lot of Octopress users, or I don't know of a lot,
Starting point is 01:11:38 that's one thing I have no idea how big the community is because it's not like a gem where you have download numbers or you have ways of tracking. So it's a it's a little different but i think many people have come to octopress and don't understand jekyll and they don't even know they're using jekyll or they don't really think about you know how jekyll does things and so i think having a fundamental understanding of jekyll is way better than being like where's my bloody rake task you know like i don't i don't want to it it's a little bit hard for people if they have never really seen the Jekyll part of Octopress before.
Starting point is 01:12:11 And now all of a sudden that sort of changes for them. But yeah, if you understand what Jekyll is doing, then I say start a new Jekyll site and start playing with new Octopress plugins for it. Our next closing question, one that everybody loves to answer and loves to hear the answers of is, who is your programming hero? I'm going to have to go. So I've thought about this a lot
Starting point is 01:12:32 because I knew this was going to come on when I agreed to be on the show. And so I really think, I'm going to have to stay with Chris Coyier on this because he's a really nice dude who builds a lot of great stuff and helps everyone. Like he is so good at helping everyone. And that's like, it's just so awesome.
Starting point is 01:12:53 And I, you know, the times that I've gotten to hang out with him, um, he's just the sweetest person. So I, I, I like what he does for, front-end nerds like me. And, of course, CodePen. I mean, that's such a gift. I use that thing so much. Actually, when I was working on the code highlighting plugins for Octopress, I was trying some new HTML,
Starting point is 01:13:20 and I wanted to see how they work for vision- you know, for vision impaired users, you know, can they use screen readers to follow the code plugins? And some guy was telling me there were some issues with it. So I actually dumped HTML over on CodePen and just was really rapidly iterating with him and saying, you know, does this work? Does this work? And he kept trying it with all of his different screen readers. And it was like so useful. So yeah, Chris Coyier is doing awesome stuff and totally look up to him. So yeah. Couldn't have picked a better hero.
Starting point is 01:13:54 I didn't expect you to say him, but I can see totally. Well, I guess I didn't really have any expectations. I just, I figured which way would you go? Would you go the designer route or would you go the developer route in terms of a hero? And Chris is sort of both, you know?
Starting point is 01:14:10 Yeah. I mean, he's, he more closely aligns with the kind of things that I do. Actually, I got to introduce him to SAS, which was really fun. So that's kind of a little feather in my cap.
Starting point is 01:14:18 But yeah, anyway, he's got the, he's got his, he's got his podcast that he does. Why did I just forget the name of it? I'm subscribed. Shop Talk.
Starting point is 01:14:28 Shop Talk. Thank you. I just couldn't. I just need to think of some banjo music, and then I'll remember Shop Talk show. So, yeah, he's got that. He's doing just he's putting out a lot. And, you know, whenever I'm searching for something about CSS, he's got stuff written about it that is very helpful to me. You can't do a search for css
Starting point is 01:14:45 of anything and not somehow land on css tricks funny aside to that is when we were originally going to do the sasway.com uh we had considered uh sas tricks oh and we even considered like sas hyphen tricks.com it's just like just a jab in the side no we can no no it's more of an homage than anything oh yeah yeah you know it was never like hey we're taking your thunder i mean who could take css tricks thunder right um but it was you know because the original tagline for it was like uh which is why we called it the sass way is also an homage to the Ruby way and the rails way, you know, and, and Obi and all that good stuff,
Starting point is 01:15:27 you know, but it was like, you know, you're writing and you can probably attest to this too, Brandon, because when we were originally trying to like get people excited about SAS, it was like we were speaking foreign languages and no one understood what the heck we were talking about.
Starting point is 01:15:42 Yeah. And I remember talking to you, Brandon. I was like, we need to do a SaaS podcast. This is actually just before, I think, just before we created this show, The Change Log. That's crazy.
Starting point is 01:15:52 Wow. Wow. Thinking about that. But it was like, you don't have to write CSS that hard anymore. There's a better way. It's called the SaaS way. And so that's why the name stuck. Yeah, and then it turns out that eventually CSS Tricks also became SAS Tricks.
Starting point is 01:16:08 That's true. Because if he's writing a style sheet on there, it's probably going to be sad. Yeah, that's right. That's right. Well, Brandon, I've got to say, man, it's always a pleasure to have you on the show. You have our full support in every way we can. Listeners, please help Brandon in any way you can. If you're an Octopress user or just a Jekekyll user try out octopress get a ferrari stop uh driving a civic not the jekylls
Starting point is 01:16:31 a civic without without it's not it's just like it's like taking your engine and like putting that aftermarket chip in it right like the the stock chip is really great and it'll do great there's an aftermarket chip and it's totally free that's on github well i will say the one of the things that um people will ask is so all this stuff works with jekyll why are you calling it octopress anymore and i was like wait a minute it always worked with jekyll and there's there's this unfortunate and i talked about this in that post there's this unfortunate concept that Jekyll and Octopress are separate communities. And I so badly want to destroy that. And the reason I'm using Octopress is because I can name gems whatever I want to with an Octopress prefix.
Starting point is 01:17:14 I don't want to use Jekyll prefix and steal stuff from them. I don't, you know, it's kind of like I get to have, you know, this is branded as something that I am building or people who understand what it's like to build great stuff on top of Jekyll are building. You know, other people can build an Octopress plugin. But it's, yeah, so that's, it is as much as I can possibly embrace Jekyll's community. That's what Octopress is. Well, Brant, like I said, it's great having you on the show.
Starting point is 01:17:43 We're here to support you however we can. Octopress seems really awesome. I feel far more enlightened's great having you on the show. We're here to support you however we can. Octopress seems really awesome. I feel far more enlightened now than having you on the show talking about it, where before I was like, what is it? How is it going to work? Now I totally get it. We're good. Jared and I, our lights are on.
Starting point is 01:17:56 We are home, so we're excited about it. We do have an upcoming show that's pretty cool. The next show we're doing is with Peter. I'm not sure how you're going to say his last name. I think it's Burgoyne, B-O-U-R-G-O-N. So I'm going to say Burgoyne. He wrote this thing called Go Kit. It's Go in the modern enterprise.
Starting point is 01:18:18 As everyone knows, Java is dying or should be dead, and Go is the new hotness, and this is a measure to bring go into the enterprise and take over the java world so there you go go kit awesome that's the next show coming up but uh for now let's say goodbye see ya bye everyone We'll see you next time. you

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.