Colin Jones

★ Transcript Available Jump to transcript
Duration: 9 min · Published: Nov 26, 2012

Transcript

Hi, I’m Mike with Yugotastic here again at SCNA. I’m sitting there with Colin Jones, also known as Tripped Jones. TRPT-Con. Tripped-Con. It’s one of those days. Actually, kind of a funny story of how what is Tripped mean again? It means trumpet. It’s an abbreviation for trumpet. He’s a trumpeteer, but he’s also a Clojurist. He’s the core maintainer of the Clojur-Cohens. So can you tell me a little bit, real quick, for people who might not know, what is the Clojur-Cohens again? Right, so the Clojur-Cohens are a set of exercises that sort of walk you through the basics of the Clojur language. They start from basically assuming no experience, teaching you how the syntax looks and how different functions like equals, function application, starting at the very base level and walking you up through knowing a little bit more about that language. You’re not going to be a master when you finish. But you’re going to have touched most of the major syntactical structures? Yep, and you’re going to sort of, yeah, and the idea is for it to be very, very stepwise and to teach you the Clojur language. And you know, how did, how did you, have you always been into Lisp, or how did you come to be involved with the Cohens? Right, so I think it was maybe like 2009, like mid 2009 or so, I’ve been seeing a lot of people talking about Lisp and structured interpretive interpretations of computer programs, that book, famous book from MIT. The SICP book. Right. People talking on Twitter about how great that was and stuff. And I had never done any LISP. I didn’t come from a background in computers. So I decided to start learning some LISP. Along the way I heard about Clojure. It was this LISP that was actually supposed to be useful in real life. Not that other LISPs aren’t useful. It’s a practical LISP. But that was like the core. But it’s on the JVM so it has the libraries and all that. Exactly. The value proposition that I was presented with. So I was really interested and we watched the peep code that Phil Hagelberg put together as a company and then we went through Stuart Holloway’s book, Programming Clojure. I believe it’s that one, not Clojure Programming. The first one that came out. So I was learning the language in that way. And then Aaron Bedra from Relevance, formerly from Relevance, now Groupon, put out a call on Twitter. That he was starting this project called the Functional Coins and he wanted people to add things for Scala and Fsharp and Clojure and stuff like that. I was like, huh, that might be an interesting way for me to contribute. I’ve always been interested in getting into open source software and contributing. But at that point my Clojure knowledge was pretty small. So I figured I’d see what they had going on and maybe I could learn the language better by writing some of these small exercises. So that was basically one of the big ways I learned the language. Right. It’s not like a library. It’s actually let’s learn while we create. Yeah, exactly. Exactly. And I think that was still during my apprenticeship at 8th Light. So I was sort of like very much in the mindset, and I still am to some extent, but very much in the mindset of, okay, I’m just going to learn, like just learn things about this new language. So yeah, that was kind of the approach I took was just to learn about the language by writing elements of the Clojure Coins. And so I, you know, sent Aaron a few pull requests. Yeah. And he was just kind enough to merge them in and give me some, you know, a step up there. Yeah. So he helped you learn a little bit better while you were contributing and building. Yeah, absolutely. And then eventually like he got busy and I was writing more than he was and he just gave me the commitment on the project and things went from there. Yeah. So yeah, the site was relaunched and it’s heavily, I mean, even the sites, the Clojure Coins sites is written in Judo. Yeah, yeah. It’s actually written in Clojure. We actually had, ClojureCoins.com is the place you can go to learn more about this and also the GitHub page, but ClojureCoins.com will link you to the GitHub page. And yeah, the site was actually done by an apprentice, Mark Grant, did most of the work on that, most of the design stuff. And then we had some more design apprentices come in and refine some of the design elements. So yeah, it’s been really great to see it go through an evolution. And finally get launched publicly just a few weeks ago. So has it been something where, so you were able to come in and contribute and work with Aaron and get learning from him. Has there been a lot of people coming to the Clojure Coins to learn Clojure that you’ve been able to communicate with? Yeah, I think that is the case. I think we see a lot of people who, maybe people who have heard of the Ruby Coins before, which is kind of the inspiration for the Clojure Coins. People who are familiar with the idea of using these sort of exercises as a way to learn, looking for something like a Coins exercise. And I think by word of mouth, I see on Twitter a lot that people go through them just with a group of people unfamiliar to the language. And people seem to enjoy them. So that’s really gratifying to see. Have you heard back from anybody who’s gone from zero to actually able to use the language through the Coins? Yeah. No, I haven’t heard of, I haven’t had anybody like explicitly like email me and say, okay, you know, I started the Coins last year and now I’m writing production code. We’ve certainly had apprentices who have done that at 8th Light. So you’re even using it internally as a teaching tool? Yeah, generally when we have an apprentice who we want to learn Clojure, one of the first things we do, maybe not the first thing depending on who they are, but yeah, usually we’ll recommend that they just go through the Coins. I mean, it takes probably, you know, anywhere from like a focused two or three hours, to like, you know, spaced out over the course of days or something like that. It’s not a huge undertaking to complete these. We’re always adding more to them. So by the time you see this, you may. Are you taking patches and contributors? Oh, absolutely. Yeah, yeah. Love, love getting patches. Gotten a lot of really great contributions, people writing whole new files. And on the GitHub site, there’s an idea board for things that we want to implement, things we want to add as exercises, but we just haven’t gotten around to it yet. And Aaron alluded. He alluded to the fact that it’s now more of a Coins engine now than, like, what does that mean? That’s right. So Sam Rishi from Twitter had, he works on the Caskalog project. Caskalog is like a sort of Clojure interface to Cascading, which, Clojure interface and sort of logic engine around Cascading, which is a Hadoop thing. But it’s this really awesome thing that they’re working on. And he wanted to use something like the, Clojure Coins to help people learn Caskalog. Right. So he extracted the bits of the Clojure Coins site that were, you know, dedicated to making them work. He extracted those from the, the actual exercises themselves. Right. And so, yeah, he put in a ton of great work on those. So those are, those are ripped out. So now people can, you know, write Clojure Coins for, not just Clojure language, for people to learn things, you know, core.logic, core.match, all kinds of Clojure libraries. We haven’t seen, you know, a ton of people using it. I know Casklog’s using it in those two libraries I mentioned, but, yeah, we’d love to see more. But to see somebody, like, see what you worked on. So you handed it, you know, kind of took it over from Aaron, worked on it, and then somebody else saw it and said, “Hey, I can make it better.” And it contributed it, contributed to the project, and now it’s just better, you know. Yeah, yeah, absolutely. It’s one of the great things about GitHub and open source software in general, just seeing that kind of thing. And just something that’s more context-based, earlier, Corey Ford, was talking about the progression of using some of these tools, the concepts of Akadai. It’s basically an exercise that you just repeat over and over and over again, versus Coins, and where Coins are very out of context. You’re just writing a data structure. You know, is that something that you might have seen? Because I’ve worked with mentoring people where I gave them the Coins first, thinking that that was a great thing, but they didn’t have the context. Yeah, and I think there’s a lot of people who, the Coins way of thinking about, you know, here’s the syntax, learn the language, you have to be motivated in a very specific way, I think, and that’s sort of the way I learn, is to think about syntax and all the bits and stuff, and I already want to learn the language for something. But there’s lots of people who prefer to learn the language by, and I was talking to a guy yesterday who’s writing a Clojure service now, and he just really likes just jumping into an app and having, you know, having all the context as you said there for him, right? He wants to know the reason he’s writing these things, and he’s not really necessarily interested in learning for the sake of learning the language itself, but he wants to use it immediately to do things. And I think that’s a really, I mean, different learning styles. It’s really interesting how people– But it’s just one more tool in the toolbox that people can pull from. Sure. Well, thank you very much for working with Clojure Coins and for speaking with me today. Absolutely, my pleasure.