The Changelog: Software Development, Open Source - Ordered List, RailsTips.org, and MongoMapper (Interview)
Episode Date: January 29, 2010John Nunemaker joined the show to talk about open source, improving your craft, building a business, and how MongoDB has changed his life. ...
Transcript
Discussion (0)
Welcome to the ChangeLog episode 0.1.1. I am Adam Stachowiak.
And I am Winn Netherland. We've got a great show today. Interviewed John Neunemaker of Railstip.org fame and MongoMapper fame.
Soon to be Harmony fame.
Yeah, a lot of fame.
A lot of fame.
And you got a chance to see Harmony for the first time.
Impressed?
Yeah, I was really impressed with what you could do with that.
A lot of the details he shares in his podcast is pretty good about Harmony, I guess.
One thing to also mention is that, you know, while
Harmony isn't open source, it's because of open
source it's even possible. So, you know,
hat tip to John and
Orderlist and Steve on being able to
pull that off for sure.
John is IMME as we speak, saying
he keeps refreshing the changelog. He's dying to see
the episode. So, we'll have to get
this one out there. You know, John's work stands
on its own merit as
far as his contributions to open source. But, you know, anytime that we've got guys on that
are talking about their fresh and new open source projects, you know, if they want to plug what
they're doing to pay the bills and keep the lights on, we're all for it.
Yeah, absolutely. Of course. And I guess, did we hear back from Sea of Clouds?
We have not heard back from Sea of Clouds in the Fix Me contest.
I hear he's got a winner, but just no details to share yet, right?
He's trying to keep it in suspense.
I guess he doesn't want to follow Defunct or Jay Nunemaker on the changelog.
He probably wants to wait for a way of a slow news day so he can fill that vacuum.
Gotcha, gotcha.
I guess some things to mention too that we released last week.
If you didn't hear, head to tail.thechangelog.com.
It's something very cool we put out there where you can actually watch open source and GitHub in real time.
Yeah, and kind of tune in to the events in GitHub that you want to see.
You can click the gears down in the bottom left and filter out all those events that you don't want to see, namely the push.
If you remove the push events, it takes the feed down substantially
and it's a little easier to follow.
And also, filter just by those languages
that you care about.
If you're a Python guy,
just unselect everything but Python
and just watch the open source flow.
And we're also on GitHub now too, right?
GitHub.com slash explore.
And that still amazes me
that just after 10 episodes
we found ourselves there
at the epicenter of open source, which I think
GitHub is. We're really tickled
and honored to be there.
It was our first point release. I think what's cool about that page
too is maybe they don't even know
so maybe we shouldn't mention it, but 66%
of that page is changelog content.
That's awesome.
You know, and I don't know if you looked at the stats.
The last episode with Chris is now our second most listened to all time
and about to be number one just after a few days out.
So kudos to Chris for bringing the followers.
We appreciate it.
Yeah, absolutely.
Anything else you want to mention, Will?
Yeah, I should reiterate, if you want to mention, Will? Yeah, I should reiterate
that if you want to follow Adam or myself,
you can follow us on GitHub or Twitter
at AdamStack or
Penguin, P-E-N-G-W-I-N-N.
If you want to keep up with
the show directly, go to twitter.com
forward slash changelogshow.
Absolutely. Alright, then I guess we should get
on with the episode then. Let's get to it.
Alright. Absolutely. All right. Then I guess we should get on with the episode then. Let's get to it. All right.
All righty.
We're joined today by John Nunemaker, Rubyist and purveyor of Railstips.org.
Welcome, John.
Hi.
Why don't you tell everybody who you are and kind of what you do.
I'm John Neunemaker.
I work at OrderedList.com.
It's a web consultancy, I guess, for lack of a better word.
And basically we do websites and web applications and stuff like that.
And I like to blog, blog at a lot of places, RailsTips the most.
And I love being inspired and doing open source work.
I think you're probably best known for Railstips. How did that site come about?
Actually, it's kind of a funny story. I randomly met this one other person that did Ruby in South Bend near where I live, and they were like, yeah, there's this site called Railstips,
and this guy's giving it up. He doesn't want to manage it anymore. And he were like, yeah, there's this site called Rails Tips, and this guy is giving it up. He doesn't want to manage it anymore.
And he was like, I think you should do it.
And I was like, I don't know.
And then I just hit the guy up and started blogging there and then slowly kind of found my rhythm.
And, I mean, that's pretty much it.
But, yeah, I didn't register the domain originally or anything.
I just kind of took it over.
The guy literally just pointed it at my site and gave me a dump of the content and I was good to go.
So John, I didn't realize that you didn't start Rails Tips, which is quite amazing considering
the success you've had, especially recently, that by your own admission, you have no talent.
Yeah, I didn't start it at all. There's actually, you can still even now go back,
like on the smorgasbord page and there's probably 20 or 30 of the first posts that, they say they're written by me just because I was too lazy to import.
The previous guy, I believe it was Bill Turner, I think was his name, and I think he's on Twitter and everything still, and I think he's doing Ruby still.
But yeah, he was doing it, and he just got tired of doing it.
He was doing it more like a news site, and so I started it kind of as a news site.
And then I realized like lots of people do news, so I should probably do something different and unique.
So I just started writing my own stuff as I learned it.
For those guys that don't know, I'm not calling John talentless.
He's said this by his own admission on a recent blog post.
So why don't you talk about that post because I understand it was quite popular.
Yeah, it struck a chord evidently i don't know
i it was actually one of the few posts that i wrote probably in a flurry of like not not even
anger or anything just like i had a couple people lately i see a lot of rubius that you know that
say or even just a lot of people that are that start starting out and they're like oh i wish i
could i could be like you know you're like you are not me in particular, but like, I wish
I could be like X person. That's really awesome. And it was, it was just always like, you know,
I, I wish I could be great. I wish I could be great. And I finally just got fed up. I'm
like, you can be like, if you want to be really good, you just have to practice a lot. That's,
that's, you know, if you have a general competence level, then all you need is hard work, you know.
And if you put in the time and you work hard and you enjoy it, like, A, it's not going to feel like work.
And B, you're going to get better.
And eventually you're going to get to a point where, you know, you feel a lot better.
And so I guess I was just trying to remind people, like, you can be as good as you want to be.
You just have to work for it.
And if you're not where you want to be, it's probably just because you're not working hard enough or you haven't had enough time. That's it. You know,
it's not, it's not like some people are just blessed from the, the coding gods to be able to,
you know, break out threads or something. I don't know. So, I mean, for me, it was just like,
I just kind of got tired of hearing, hearing it from, from various people kind of more in the
beginning stages that they wish they could be
really good. And I just wanted to remind everyone, you can be. I was horrible like a year ago,
maybe two years ago. I mean, not that I'm even great now. I'm just, I keep getting better.
But I mean, you just have to compare yourself against where you were and not against like the
people that have been doing this for a long time. I like how you mentioned that because you mentioned
in that post about your GitHub profile
and how stuff will encode it.
From your past that you don't want to delete, it kind of reminds you of where you were.
And I look back at that as like, this is where I came from.
So it's always helpful to push you forward.
Exactly.
Yeah, it is.
It's extremely helpful.
I mean, I like occasionally going back to projects and I'm just like, why did I do that?
Not even the code, just why did I even start this project?
That's so weird, but you learn with every one of them.
The flip side of that is when you turn on a lot of open source like you do,
you tend to collapse into the weight of your own work,
and you're having to find folks to take over certain projects.
I know I've been thrilled to be able to help you out maintaining the Twitter gem. And you're probably best known for the Twitter gem among other things
like HTTP Party and Crack and some other projects you've turned out. But one that I'd like to
highlight that perhaps folks don't know about is MongoMapper. You want to talk a little bit about
how you came to Mongo and why you fell in love with it?
Yeah. So this is going to be a hat tip for Wynn,
or maybe even a hat tip for Jerry Richardson,
a guy that I am in a Ruby group with.
He was, you know, we were at RailsConf.
Was that in Vegas? I think it was in Vegas.
And I came down for breakfast one morning, you know, tired and barely awake,
and I saw Jerry at the table, and I was like, I'll just go to Jerry. Like, I'm not even ready to talk to anyone, you know.
And went to Jerry and then you guys happened to be there and he introduced, you know, he said,
oh yeah, these guys do a lot of Twitter and stuff. And then you and Jim, and I think there was maybe
another person there. And you guys were like, oh yeah, we use the Twitter jam. We love it. And we use it with this database called Mongo. And I was like, crazy. And, uh, then I went, you know, after,
after that, I remembered it. And I, so I went back and checked it out when I got home and I
literally spent like a week reading the entire website that they have, which is really great.
And Mongo is just a, it's a phenomenal database. And the first thing that I got frustrated with
when I tried to use it is there, there was active record like uh i mean active record is great it really
takes a lot of pain away and there was nothing like that for mongo that i was satisfied with um
and so i just started playing around and i was like yeah i can make an orm or a mapper and i
started kind of hacking away and i you you know, got a few things done and
thought it was like awesome. And looking back now, I realize how naive and small it was. But,
you know, I just started making something that I could use and just mostly for intellectual
purposes. I just thought it was kind of fun. You know, Mongo was different and, you know,
interesting and there wasn't really anything out there. And I've always been kind of curious about
how the guts of Act Record and things like that work. And so I just started
kind of hacking on it and did a lot of code reading on DataMapper and SQL and ActiveRecord
and all those Ruby projects that map relational databases and kind of just started going to town
on MongoMapper. And now it's getting to a point where, I mean, we use it on some projects and
stuff, both for clients and for ourselves, and it's getting pretty cool.
I mean, it still has a long ways to go, but it's getting better every day.
How has Mongo changed your approach to web development, especially with Rails?
That's a good question.
It's changed.
I would say it hasn't necessarily changed my approach from the outside, but from the inside it's changed a lot.
Because every – so the reason we even need mappers is because we don't have a way to store our objects.
So anytime you do anything with the web, you have data and you have to have some way to store that data.
And you can't just store Ruby objects and then pull them back out. You can't do that. So you have to store them somewhere.
So a database makes sense and, and there's tons of, you know, good relational databases.
So that's where you store it. Um, but the thing that I think has changed the most with,
with using Mongo is that it, it takes like another layer away from, another layer of work off that normally
you would have to do in order to fit your Ruby objects, your like domain model into the database.
So, because databases don't, you know, they're SQL and they're relational and foreign keys and
constraints and all this stuff, but your Ruby code is just objects. So you have to like, you know,
you have to convert them into something that can store in a relational database. So I think the biggest change, you know, is Mongo takes away
another layer because it has things like array keys. So you can store collections of things in
Mongo and also hash keys. So you can store, you know, like associative arrays and PHP or hashes,
dictionaries, structs, whatever you want to call it in whatever language, you can store those
also in the database.
And I think that's the biggest difference that it made for me is like things that normally
in Rails I might have made like a join model for, you know, and do a has many through type
thing.
Now I can just store, you know, an array of IDs on, you know, the site model or on the
user model or something like that.
And it takes a lot of complexity out of the code.
I don't have to have a whole nother database table, a whole nother, you know, um, model set up to do that.
I can very simply just kind of make it work. Um, so I think that's the biggest change that it's,
it's made for me as it kind of opened up my eyes and like, uh, and the one, the other thing that I
think is really big is like rails has this golden path, you know, that they tell you to follow.
And like, if you don't, so you get used to following that, and then all of a sudden,
you start with something new that doesn't have a golden path like Mongo.
There's not a thing out there that says,
this is how you should do things in Mongo.
So at first, you're like, I don't know how to program anymore.
And then you start kind of just figuring out, well, what will work?
And so you think through your problems in different ways than you would have if you would have just followed the golden path.
So I think the golden path is great to have this, you know, these set conventions and things like
that, but you still need to sometimes branch out and try this other, you know, new thing so that
you can see if there's conventions that you're missing out on, uh, that, that could be really
good. And I think that's the biggest change that, you change. I think in one of the posts I mentioned,
it's like taking the pill and the matrix or whatever.
You kind of have to free your mind and there is no spoon kind of thing.
Then once you do that,
then there's a lot of opportunities for making things a lot more simple.
I know we switched from MySQL to Mongo on a project,
and I feel like our code is a lot lighter and easier to understand,
maybe because we weren't as good with MySQL or something like that, but I think
it's more just Mongo kind of takes away some layers that you don't really need anymore.
It's excellent for what I call stashing the hash, you know, calling a third-party API
and just grabbing a hash of values and just stuffing it, especially if you don't have
to worry too much about CRUD, although MongoMapper does provide a lot of great validations and familiar approaches
when you're dealing with the data.
Last episode, we announced our TAIL application, tail.thechangelog.com, and should tell everyone
that it's running on MongoMapper, and it's also running on MongoHQ, which is hosted Mongo
for those that haven't tried to install MongoDB for themselves,
even though it's quite simple.
But I understand you're a MongoHQ customer as well?
Yeah, I just have a real tiny Node app, and I mark things to read later, bookmarks,
and I call it textual.
I literally just store text stuff in it.
It's my kind of way of keeping track of stuff that I don't want to be social.
And so, yeah, I'm using that with Heroku and MongoHQ.
So, yeah, it's great.
I really have not had any problems.
I mean it's zero traffic because it's just me and my wife storing grocery recipes and things like that.
But it works wonderful.
Now I'm looking at your GitHub page for MongoMapper.
And that's at github.com slash jnewtomaker slash mongomapper.
661 watchers and 128 forks as the time of this interview.
So talk a bit about how GitHub has influenced how you run your open source projects,
and especially with MongoMapper, something that's been forked 128 times.
I mean, what does that number really mean for you?
Let's be honest.
I ignore the forks.
No, I'm just kidding.
So I think what GitHub has done for me the most,
I was one of those people who, like,
I jumped on the open source bandwagon, like, right away. As soon as, like, before I even should have.
Because I was like, this is so cool.
I mean, I can share code and things like that with other people.
But I think, so I had, had like an SVN repo on DreamHost
where I first started sharing my Rails plugins
that were horrible and no one used.
And it's probably still running somewhere
just so I can embarrass myself every now and then.
But I think the thing that GitHub has done that's so great,
I mean, everybody, most people know GitHub is great,
but I think the thing that's awesome
is it makes it so easy to share back and forth. So the upside is like, you know, with the network graph and the 4Q and some
of those things, it's really, really simple to have people contribute to your project.
So that's the upside. The downside of it sometimes is that you get people who, you know, only want
their specific thing. And so they'll, because it's so easy, they'll fork it, add their specific thing,
and then kind of expect you to pull it in. So that's kind of one thing that's been a little bit,
I wouldn't say it's a downside. And it's just kind of like, you have to be a little more forthright
about what you let into your project, because they're going to go away eventually. And then
you have to maintain that. So that's kind of one thing that I've caught. But yeah, I mean,
GitHub's great. It's so easy to get your project out. They do a lot of good work pushing open source too, I mean,
along with you guys. So I mean, it just makes it really easy to share that code, to get it out.
And the awesome thing is it's free. I mean, if you just want to share open source code, like,
I mean, I have, I mean, you can see my GitHub page. There's a ton of projects on it. I don't
think I'm even at like 5% of the free account.
That's just – it's stellar on their part to offer that.
A lot of forks, most of those forks are like people fork the project and then never touch it again.
So if you go to the network graph, it's a lot smaller because that pretty much only shows the forks that have done something.
But it's definitely sometimes overwhelming. If you get a project that gets to a certain level
of popularity, there's a lot of commits out there and stuff like that that you kind of have to sift
through. And the ForkQ helps with that a lot. But yeah, so I mean, GitHub's great. I mean,
it's totally changed the way I do pretty much everything open source-wise.
It just makes it so much easier to share and to kind of get a community wrapped around real quick and get people working on stuff.
So you mentioned that you're using MongoMapper for some internal projects.
I think I know what those are.
Do you want to talk about Harmony app, this app that's greatly anticipated in the CMS space and what problem you guys are aiming to solve and where
it's at? Yeah, I would love to. So Harmony app, if you haven't heard of it, it's harmonyapp.com
and Harmony, just like it sounds, and then APP. And basically, so Steve and I both worked at the
University of Notre Dame for several years. And while we were there, we built a content management system that we called Conductor.
So it was Rails, Conductor, obviously that same line.
And it worked really cool.
It was kind of like a little bit of a mutation of Mephisto, I mean, written from scratch.
And it was multi-site.
It allowed us to add a site in quick
and, and just really shortened our development time. And so, and then we both left Notre Dame.
And so then we were like, oh crap, it would be really nice to have Conductor again, but
Conductor was owned by Notre Dame. So we can't just, you know, take that code and use it.
And we kind of thought we would probably do a few things differently. And so what Harmony is,
is it's basically, we haven't found a content management or, you know, more specifically,
something just for managing websites out there that we've really been satisfied with. And so
Harmony is like, is that. It's what we want from a content management system.
And basically what that is, is something that a developer can go in and like customize everything and make
everything not, not like expression engine, customize everything. It's more,
you know, more like, you know, you,
you can define what fields content people will see and stuff like that in just a
real simple fashion.
And you can put your own markup and things like that around it.
But the main goal is to separate. So we're both, real simple fashion. And you can put your own markup and things like that around it.
But the main goal is to separate. So we're both, we were both kind of front end developers that kind of migrated to backend and then stuff like that. And the main thing that in front end
development is you separate the markup from the presentation. So how it looks from what it is.
And what we are trying to do in Harmony is separate the data you store from how it gets marked up. So it's kind of like another layer on top of that. So we say,
you figure out how you want to store your data and you store it that way. And using Mongo,
it's really easy. And then from there, you say, what is this markup? What is this data? So you
mark it up with your HTML templates and things like that for the web. And then you add your presentation files. So your theme files,
which are like style sheets and JavaScripts and things like that, they give it a certain
look and feel. And so it's just kind of like another abstraction on separating your markup
and your presentation and separating your data from your markup. And what it makes for is,
you know, content entry, you know, you don't have to know HTML for, I mean, you have to know how to
put in like a text field or you have to know how to put in a description or things like that,
but you don't really have to know a lot of HTML like this div makes this go over here or those kinds of things.
What we've found is most content management systems are a title and a big description box,
and that is just not how websites work.
Websites are lots of tiny pieces of, you know, each page is lots of tiny pieces
of data that just gets, you know, melded together into a page by a developer. And so that's really
the push. The push is developers who, you know, don't have the time to build a whole content
manager system or designers who can't build one, but can learn how to, you know, how to do a little
bit of programming to do some template stuff. Um then they're making sites for themselves and for clients who can't do all the HTML and things like that themselves.
And they just want to put, you know, their tiny little pieces of data, an event title or a date, stuff like that.
And so that's really the big push is I guess that would be kind of the target is those kinds of people.
You mentioned Expression Engine in there.
Is that one of your – what other CMSs do you have experience with using
that kind of led you down this path besides the one you mentioned when –
Sure.
Your previous –
So the first one that I got in touch with that probably everybody gets in touch with is WordPress.
Right.
So that's – I mean, I started in PHP.
I can admit it.
And nothing wrong with PHP.
I just always like to tease.
But so, yeah, so the first one was WordPress.
I mean, I had a WordPress blog, like, basically, like, as soon as I was out of college.
And, you know, I hacked something together and got going with it.
And WordPress is great for blogging, but they kind of bolt on pages.
And so then, you know, we tried Mephisto when TechnoMedia came out with that.
Bless his heart.
And it's, you know, Mephisto is great.
It really, you know, it was better than WordPress, but it still wasn't quite what we were looking for.
But it was a lot closer.
And we've dinked around with Expression Engine a little bit.
I wouldn't say that either of us has – I work with one other person, Steve Smith.
And I wouldn't say either of us has really hacked around on it a lot enough to give an educated opinion.
Just our initial impression was that it was really complex. Like you can do anything you want, but it just seemed
like it was a lot of work. Yeah. I've had some experience with it. It seemed like every,
every, um, I, I too came from PHP. I think we all came from PHP, right?
Back in our past, we can't hide that. But, uh, I had a lot of experience with building
expression engine sites and I probably have done at least
15 or more and it seemed like
every new project was just
you couldn't really build the framework that you could do with
Rails. You could build a Rails template
or now we have engines
and stuff like that but
you just couldn't do that with
at least I couldn't. I didn't have
enough skill set to do it and that was the pain point.
Each project took so much start time and it was just a pain in the butt.
Yeah. I mean, I say yes and that I can relate with that. Not in that I've, you know,
ran into that with Expression Engine, but I mean, that's, that is the thing. Like you want to make
it like most websites are very similar too, you know? So, I mean, we're going to have,
and pretty much the whole website in Harmony is driven by the theme.
So you have a theme and then you have themes have templates and, you know,
includes and they have style sheets and JavaScripts and templates have fields
and fields kind of define what the form looks like.
It's kind of like a form builder, you know, for a content person when they go to the content area.
And so, I mean, what we're going to do is have theme export and import and stuff like that.
So you can really easily, you know, create a site that's a certain way, you know, like products,
blog, you know, et cetera, stuff like that. And then you can very easily dump that and,
and re-import it somewhere else. Or literally we even have, if, if sites are in the same account,
you can copy a theme directly from another one. And so you have, you can kind of get a little bit
of a framework going and just kind of dump it in real easy. Um, but yeah, I mean,
the main goal is just, we just want to make content management fun again. I mean, we're just
finding a lot of people that like, they get frustrated with their various, you know, software.
And so then they don't, they don't blog or they don't. That's my problem. That was my problem for
a long time. It was just that, uh, you know, the right tool. Like you said, you haven't found the right tool to get you into it and make it fun again.
Exactly.
Again, with WordPress, you have custom fields and with Expression Engine, you have options for stuff like that too.
But you get so deep into the customization of it that it gets lost and you kind of go away from the mainstream of who's using the app.
It gets really difficult.
Totally, and that's the strength of Mongo.
I mean, we had Harmony 95% of the features that are in Harmony right now.
We had it 95% done in MySQL, and it was just turning into a mess in spots.
And it was getting really hard, and we were like, you know what?
Let's just bite the bullet, and let's just switch hard and we were like, you know what, this, let's just
bite the bullet and let's just switch to this crazy new database Mongo and see what happens.
And we literally switched the whole site over in like a week or two of kind of nighttime
hacking.
Um, and now we have this incredible flexibility, you know, like we literally built Harmony
from the ground up with custom fields.
Like that's, we're like, this is not something we're going to tack on.
This is what everybody uses.
Everybody wants to say like, here's the content on my page.
And then, you know, uses some kind of template or something to mark it up.
So, I mean, that's just awesome.
Yeah, it's, I mean, yeah, I think it's really cool.
So, I mean, I mean, we've got a long ways to go before it's, you know,
going to take over the world or anything like that.
Let's hope, right? Let's hope for sure.
Yeah, let's hope.
So you said a little bit earlier that you jumped on the open source bandwagon a long time ago.
And obviously in Harmony, you've used lots of open source stuff.
But how has open source really fueled your business?
Oh, man. Well, it's, so it'd probably be two ways. One, it's fueled in that, you know, we use open
source for client projects. So, I mean, that's, that would be the first way. And then the second
way would obviously be that because of, you know, open source projects that I've had and, you know,
getting, getting the name out there and stuff like that, we've gotten business from that. So I mean, there's kind of two ways that it's fueled it.
It's one, we use it. And two, by creating it and getting involved in that, work comes in
because people are like, oh, I saw you worked on this. Can you help us with this?
And especially with MongoMapper now, I think we've noticed that a lot because a lot of people
are really curious about Mongo. So I would say it's really in two ways. It's filled our business like that. And probably the
biggest way is using it in client projects. I mean, Harmony is like, there's nothing paid in
that thing. I mean, we're using, I mean, I could probably just run through a list. We're using
Moonshine for like setup and deployment and stuff like that, which is built on top of Puppet,
which, and we're using all open source OS, obviously for the servers and stuff like that, which is built on top of Puppet, which, you know, and we're using all open source, you know, OS, obviously, for the servers and stuff like
that.
We're using Navi for jobs.
We're using Mongo for the database.
We're using Ruby.
I mean, everything from the ground up is all open source.
And so, I mean, it's completely driving our business, I guess, would be the best way to
say it.
I think it's so awesome how that happens, you know, how the community comes together
and, you know, GitHub starts two years ago and Git
becomes more and more prevalent and we all start to social code and now everything you do is powered
by what is out there from the social sphere of us open source developers. Yeah. And I spent some
time in, you know, in other languages. I mean, like I'm sure we all have and not all other
languages have this kind of open source mindset you know i mean we
spent at notre dame you know we spent probably two years in cold fusion um before hopping on
the rails bandwagon and i mean cold fusion doesn't i mean there is definitely an open source movement
in cold fusion like don't get me wrong but like almost everything you want to use like back in
the day at least you know 2006 or whatever it was all paid like you had to like you know pay 50 bucks
here or 100 bucks here there was nothing that was just like free. It was really hard to,
uh, to do that. So, I mean, I, I think there's a massive benefit to releasing this free,
getting the whole community involved and making everything better and totally agree with that.
Well, it's amazing to watch, sorry, it's amazing to watch, you know, the, um, one business that
releases a by-product of their business as an open source project that another business will then take that and run with it.
Liquid, you're using that for template markup, right?
And that came out of Shopify.
And so how many apps have been built on top of Liquid?
I think I've built just some personal projects myself.
It's just amazing how the sum is greater than the parts, right?
Totally. I can't imagine that we would have ever built conductor or harmony without liquid. I mean,
I, I don't know what we would have used. Liquid is just great, especially it's a little bit
mind bending at first, but once you really dive into it, it's, it's really simple. I mean, we've,
there's actually a few spots where we kind of even tweaked Liquid just to do a few more things that we wanted to do.
And it was not hard at all, you know.
So, I mean, that's a really great point.
Cool.
All right, John, we're at the point of the show where we normally ask folks what's on their open source radar.
So, you know, what's got you excited?
And it doesn't have to be Ruby, of course.
What's out there that just has you excited in the world of open source?
Ah, good question.
Well, I would say, first off,
I'm turning into a bit of a,
I don't know what the word is,
but like I love non-relational databases
quite passionately.
And, you know, my wife's okay with it,
but it does make for some awkward times.
But it's, I would say Redis, awesome.
I mean, really cool.
So like Rescue, I've been really curious about that.
We were real tempted to try it, but we're kind of trying to stay simple with one database right now.
But Redis and Rescue I think are really intriguing.
So, yeah, I'd say Redis and Rescue are big.
There's a ton of really cool – React or however that's pronounced.
It's like an HTTP JSON database that I think looks really cool.
Persevere is like an interesting JSON database.
I think it's more of a graph type thing.
Or no, there's another one that's like a graph type database.
But there's a lot of NoSQL databases out right now that I just think are really, really interesting from an intellectual standpoint in that I don't understand how they work at all and I want to play with them.
So, I mean, I think databases are kind of the biggest thing on my radar right now just
because, you know, we're moving into a time when it doesn't always make sense to do everything
with SQL.
So that's probably what's been on my radar the most.
I've been kind of interested in, like, testing as well.
Like, interesting.
So, like, Nanotest is a project on GitHub.
I think the tagline is when all you need is Ruby.
And so you literally just assert something and then use Ruby, like, you know, array.include.
And so you're just, your last line of the test always has to return true.
And if it returns false, then it's a failure.
So that's kind of an interesting idea.
So, yeah, I would say mostly databases are on my radar.
And then there's a few testing things that I think are really interesting as well.
No, John, I think it's cool that you're – that doubt into open source.
I think it's – we didn't start this podcast.
We didn't start this blog and what we're doing because –
Well, we had an excellent name that we just could not turn down that's true but you know there's people out there like you and and
like uh marshall culpepper from abcelerator and the people that started uh mongo i mean those
people need to uh have someone chime in for them and i think this is awesome to hear you talk about
open source so passionately and also to reflect back on your business and this application called
harmony that you're doing and and how much has fueled what you're doing. It's awesome.
Very cool. Yeah, I couldn't agree more. I mean, it's a great time. It's literally the best time
to be involved in web stuff right now. I can't think of a time that it would be more awesome.
I mean, there's just so many cool things happening right now. It's, it's, uh, you know, sometimes I just sit at, you know, awake at night thinking about all the crazy stuff that's happening and, and
jealous that I have to sleep to be able to perform the next day. Well, one last plug for Harmony.
I've seen it. I've kicked the tires. It's a, uh, it's a great app. I can't wait to use it. I'm
trying to decide which of our, our sides we want to bite off first with it. Uh, any idea when a
public beta might be available and
guys listening can uh can jump into harmony yeah i mean right now you can you can go to the
harmonyapp.com and there's a signup form at the bottom uh and we'll notify people as far as the
public beta we have a couple things we feel like we kind of need to to get uh wrapped up like a way
to import your sites and stuff like that um so some kind of an
api and then um i don't know that we'll really ever honestly to be to just put it out there i
don't know if we'll have a open beta we're probably just going to have kind of a smaller one and just
keep letting people in and keep letting people in and eventually we'll just open the doors um
so i don't know that we'll that we'll really have it we're really hoping uh we're big south by
southwest fans so we're really hoping to we're big South by Southwest fans.
So we're really hoping to be launched like around there.
We'd love that.
But just – it's a side project that we're putting a lot of time into, but it's still a side project.
So we'll see.
We're also averse to deadlines.
So it's hopefully in the next couple months.
I would say that is the most specific thing I can give, which is not very specific.
Well, thanks for joining us today, John.
We, um, we want to give a hat tip to all the projects that you mentioned today.
We'll be sure and do that in the, in the show notes.
But I think the takeaway is that if you're building a business, you know, and you've got an aspect of, of a product that you could release and give back to the community, please do so.
Because you never know that the next, uh, entrepreneur that's going to be standing on those shoulders.
Absolutely. Thanks a lot. It was a lot of fun talking to you guys.
Yeah, absolutely. Thanks for coming on the show.
Thank you for listening to this edition of The Change Log.
Point your browser to tail.thechangelog.com to find out what's going on right now in open source.
Also, be sure to head to github.com forward slash explore to catch up on trending and feature repos,
as well as the latest episodes of The Changelog.
Safe in your arms as if no passion shown.
What's mine alone? Thank you. Bring it back, bring it back to us.