The Changelog: Software Development, Open Source - Octopress 3.0 (Interview)
Episode Date: June 26, 2015Brandon 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)
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.
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,
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.
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
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
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
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
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.
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
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
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.
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
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,
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.
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,
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.
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
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.
Well,
you know,
it's not in your voice.
It's on your phone.
Oh,
the autocorrect.
Yes.
Well,
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.
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
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?
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.
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.
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
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.
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
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
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.
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.
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.
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
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
that is...
That's a lot of build.
Yeah,
I thought it'd be fun
to have...
Because,
you know,
all these...
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
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,
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
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
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.
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.
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.
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
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
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.
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
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.
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,
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
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
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.
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
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,
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
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
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
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.
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.
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.
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
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.
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,
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.
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
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.
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
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
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?
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.
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
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.
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,
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.
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,
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
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?
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.
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
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
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
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.
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
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
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.
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,
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?
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,
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,
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
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,
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
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,
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.
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
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
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.
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.
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.
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
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.
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.
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.
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.
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,
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
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.
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,
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
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
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
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.
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,
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
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
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
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.
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.
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.
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
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.
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
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.
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
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.
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
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.
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,
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
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.
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.
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.
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
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
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?
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
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.
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
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.
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
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.
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 –
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.
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
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
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
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.
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?
Well,
they can try,
um,
installing the Octopress gem and just work with the new,
uh,
command lines and,
uh,
command line tools.
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.
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.
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,
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.
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
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.
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,
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.
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?
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.
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.
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
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,
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.
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.
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.
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
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.
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.
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.
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.
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