Open Source And Project Maintenance: Mike Hall Interviews Andy Lester | ChicagoWebConf 2012

Open Source And Project Maintenance: Mike Hall Interviews Andy Lester | ChicagoWebConf 2012

UGtastic Archive
Full Transcript Available
Andy Lester, a prominent figure in the open source community, shares his experience in creating and maintaining tools like Ack and Mechanize. He discusses the importance of open source contribution, emphasizing that everyone can make a difference, and highlights the collaborative nature of maintaining projects. #openSource #community #contribution #maintain #perl
The Interviewer

Mike Hall

Interviewer, UGtastic

The Guest

Andy Lester

open source and project maintenance

The Conversation


Mike Hall Interviewer, UGtastic
Hi, I'm Mike. I'm with UGtastic here at Chicago WebConf. I'm sitting down with Andy Lester. You might have used some of his tools, www. mechanize or Ack. He's also formerly ran the Chicago Perlmongers out in the suburbs. He's written quite a bit about job hunting and how to be a good citizen inside of the open source community. Thank you for sitting down with me, Andy. Can you tell me a little bit about what your experience has been working with Ack and mechanize and all the other tools that you've created and kind of put out there? Sure.
Andy Lester open source and project maintenance
Most of what I do is, like a lot of open source projects, is scratching an itch. Something like Ack scratched the itch of me needing to search through a code base that was multiple different languages together and I needed an easy way to filter out certain languages. I scratched that itch and it grew from there. Something like www. mechanize, the Perl module, started from we needed a way to do automated testing of web pages, make sure that logins worked and didn't work in the proper way. Found an existing module, forked that off and grew that. But what's great about that model is once you start the original itch and once you talk about it and once you start talking about "hey, here's something that I've done" and a lot of people, I don't think, talk about their projects enough. When other people start to use it, the role of me as a maintainer, in most of my projects, has gone from the original creator to shepherd of the ongoing maintenance. So something like Ack, people add features. Or Mechanize, I've probably written maybe a third of Mechanize. And the other two-thirds are all things that have come from the community. So it's more of the vision, you've got more of like a product manager at a certain point. At some point, yeah, I do. And part of that also comes to where you need to hand that off to other people. So for instance, Mechanize, I've handed off because I've not been able to do the maintenance on it that I need to put the time into it.
Mike Hall Interviewer, UGtastic
Right.
Andy Lester open source and project maintenance
And there are other people who have those, have the skill, have the time. And so now, that's going to be part of the core Perl LWP, core modules. Also, it's actually going to be part of Perl itself. Not of, well, not of Perl, but of the LWP, which is pretty common.
Mike Hall Interviewer, UGtastic
Okay. Is that like your standard lib? Yeah.
Andy Lester open source and project maintenance
Yeah, it's one of the standard libraries. And so, that kind of ongoing maintenance, you can pass off. I said, "Hey, you know what, I'm not able to put all the time into it. " Also, there were issues that I was not qualified to deal with. I'm horrible at internationalization. I don't understand the issues that go into dealing with all the different kinds of character sets. And so when I handed that off to Jesse Vincent, who does a lot of work across multiple characters sets. I mean, he does a lot of stuff with Asian languages, I know. I said, "Okay, he's going to know how to deal with this. " I handed it off to him. So, it is product management. And I try not to be, you know, in some extent, I have to be the benevolent dictator, but I also have to bring people in. I have to encourage other people to contribute. So, it's not just, not just about product, it's about encouraging, fostering a sense of, you're bringing something to the table. Even if it's, I know you were trying to get somebody to generate an ASCII art for, for the Cathy, for the ACK. Right, right. Because, in America, the character Cathy says, "Ack! " And she wants chocolate. Right, and it's just a silly thing. It's just a silly thing, but there are so many ways that we can contribute. One of the things that I try to talk about, whenever I can, is that there are so many ways we contribute to open source. I wrote an article called "14 ways to contribute to open source without being a rock star. " If you go Google it, you'll find it. And the point is that you don't have to be one of these huge brains. You don't have to be a DHH or a Larry Wall or one of these guys who just has fantastic vision and coding chops. Because I'm not that guy. I just, but I try to contribute where I can. And everybody has a way that they can contribute. Whether that's, whether that's fixing a bug, whether that's just verifying a bug in the code, in the bug tracker. Or saying, "Well, you know what, this happens on my machine and it's different on this other machine. " Just little things like that can make a world of difference when it comes to development. And so one of the things I try to talk about is how you don't have to be a rock star. Everybody can contribute in some way. You don't have to devote hours and hours and hours every week. But just every little bit that you can do helps. And I try to think, I talk about how open source is kind of a quilt. And some people add big squares to the quilt. And some people add little squares to the quilt. But everything is just little stitches. And every little stitch that you can add helps the entire community, the entire project, helps the understanding of open source and why open source is so important to what we do in computing.
Mike Hall Interviewer, UGtastic
Yeah.
Andy Lester open source and project maintenance
And it also goes beyond just code contributions. You know, you do the Bobby Tables and the Pearl.
Mike Hall Interviewer, UGtastic
Right.
Andy Lester open source and project maintenance
BobbyTables. com is a great example because I read Stack Overflow all the time. Stack Overflow. com is a question and answer question. And so many questions, so many questions were people coming and saying, "Well, how do I get around SQL injection? " And of course, Bobby Tables is a reference to an XKCD cartoon about SQL injection. And people understood that. And, but they didn't really have, a lot of these newbies were coming in and didn't understand all the issues.
Mike Hall Interviewer, UGtastic
Right.
Andy Lester open source and project maintenance
And I found myself getting so tired of saying the same thing over and over again, that I just set up a website. And what I did though, is I just scraped all the answers from everywhere on Stack Overflow. And I said, and it just took the best answers of everything and just put it on the website. So then I can just make it super simple to make the barriers to helping somebody so low and just say, go to BobbyTables. com and there's the answer for you.
Mike Hall Interviewer, UGtastic
Yeah.
Andy Lester open source and project maintenance
And the, I think the important differentiation of what you did and some of the other scrapers is they're mostly trying to get click throughs. You're just trying to catalog and make these common answers more accessible.
Mike Hall Interviewer, UGtastic
Yeah. And is this something that like somebody could just go and contribute directly to an answer to?
Andy Lester open source and project maintenance
Well, and that's the other beautiful thing is that the source code for Bobby Tables is on GitHub.
Mike Hall Interviewer, UGtastic
Okay.
Andy Lester open source and project maintenance
So anybody can go and fork the code on GitHub, make a patch and send me a request and send me a pull request. The beautiful thing about that is that now there's a German translation of BobbyTables. com. So more internationalization.
Mike Hall Interviewer, UGtastic
Right.
Andy Lester open source and project maintenance
Which I have no idea. I don't know German, but there's now a German translation. There's a Russian translation. And it's all hosted on Bobby Tables. So the guy who came along and said, I'd like to do the German translation, set up the code for me and did a lot of the translation. But now I have this framework.
Mike Hall Interviewer, UGtastic
Right.
Andy Lester open source and project maintenance
So when the guy who came along who wanted to do the Russian translation, just added a language to it and now he's able to contribute. That's one of the, that's one of the, that's one of the, that's one of the beautiful things that GitHub has done is that they've made the barriers so low, it's so easy to fork things, to make, to make comments on, on issues in the issues database, where the, it's so simple to do contributions.
Mike Hall Interviewer, UGtastic
Yeah.
Andy Lester open source and project maintenance
And that's the converse to what Linus was saying about his frustrations with Linux is they have very high, like in order to contribute to Linux, it's an extremely high threshold to be able to contribute to the core. But for most projects, you would just need, you need help.
Mike Hall Interviewer, UGtastic
Right.
Andy Lester open source and project maintenance
You just need somebody to help. You just need little bits of stuff.
Mike Hall Interviewer, UGtastic
Yeah. Right.
Andy Lester open source and project maintenance
And just, you know, and, and that applies everywhere. That applies whether it's running a user group meeting, you know, you come in and you make coffee.
Mike Hall Interviewer, UGtastic
Right.
Andy Lester open source and project maintenance
And anybody can do that. And it's simple. Or you clean up afterwards so that, you know, your sponsors don't find a mess that.
Mike Hall Interviewer, UGtastic
Right.
Andy Lester open source and project maintenance
It sounds so, it sounds so small.
Mike Hall Interviewer, UGtastic
Right.
Andy Lester open source and project maintenance
But it's not. It, because every one of those is a little stitch in the quilt.
Mike Hall Interviewer, UGtastic
Yeah. Yeah. I can, I cannot say how much I appreciated at, at SCMC, a Software Craftsmanship in McHenry County. I don't often plug my own group. McHenry, McHenry County represent. Yeah. Yeah. MC. Um, but, uh, turning around and seeing that the people who came had already cleaned up all their own stuff. Sure. And I don't have to run around chasing it. And so, I can talk to people and make newbies, uh, to the group feel more comfortable. Sure. And welcome. It's, it's, and it's, so it's all part of, uh, an ecosystem. Yeah. You know, that when you pick up your own plates, I can talk to somebody who's there for the first time and make them feel more comfortable. So that way they'll come. Right. And then we get bigger and bigger and, and it, it, it has to be, it has to be ongoing. Because so much of what we do, uh, is, you know, we, we think of, we sit here and we're in awe of these great technical brains. Mm-hmm. That do amazing things. And yet, there's so much other things that need to get done. And they're not any worse. It's not like they, you know, they might not have the glamour, but they're still just as important. So on the Parrot project, for instance, Parrot is the, uh, virtual machine that is underpinning Recudo Pearl, which is the main implementation of Pearl 6. Mm-hmm. So there's an entire virtual machine, uh, that there's some incredible brain power going into creating a virtual machine. And that's way beyond my pay grade. I don't know. I, I, that's way beyond me. I don't understand, you know, sitting here comparing garbage collection algorithms. That's not, that's not, that's not my thing. You're back. Right. Right. But I can do, but what we do have is what's called the Parrot Cage Cleaners. Mm-hmm. And the Parrot Cage Cleaners are the, are the guys who go and, uh, they might look at a test, part of the test, so we can go, "Oh, this is, this is redundant to this other test here. We'll go and remove it. " Or we'll find, uh, some code that for some reason is indented incorrectly. Or a comment that's out of date. Mm-hmm. Or we'll go look in the book, in the, uh, the, uh, ticket queue. Mm-hmm. And go clean stuff up. Jim Keenan out in New York is amazing. The, the number, uh, some days, they'll just be a dozen closed tickets where Jim has gone through and said, "Oh, this is fixed, this is fixed, this is fixed. " Yeah. Six months ago. And help clean those up. Yeah. All that kind of scut work is absolutely crucial to a successful project. And that helps the people who are building the core not have to have a mess, not have to, so that way they can produce the thing, which feeds back into the people who are using it. Right. So when you're using it, you pay for it by helping do some scuttle work, and then it feeds back and comes a cycle. Absolutely. Absolutely. Everything that we do, anything that you do that helps an open source project is, is valuable. Even just talking about it. You sit here and you write a blog post about, "Hey, look, I found this project. You know, I, I, I found, you know, this foo project that I, that saved me an hour on something that I was doing. " Mm-hmm. Save, spend 10, 15 minutes writing that in your blog. And, or tweeting about it. Or posting it to Facebook. Or whatever it may be. And tell people about it. Mm-hmm. Because otherwise, people don't know about it. Right. And, you know, one, one of the things, it's funny because I have people come up to me at conferences sometime and they kind of go, I, you know, I'll say, "Well, tell me about what you do. " And they go, "Well, you know, I'm not, I'm not as famous as you. " And I say, "I'm not as famous as you. " And I say, "I'm not as famous as you. " And I say, "The only reason I'm famous is because I have a big mouth. " Right. And I talk about these things. I'm not any smarter than you are. I'm not any better programmer than you are. I just talk a lot. Yeah. And, and, hey, here we are now. Yeah. Um, so that kind, we, one of the things that, that geeks tend to not do is they don't like to talk about themselves. They don't like to brag. Yeah. They don't like to, and that's not just a key thing. People in general don't like to. And that's one of the problems, of course, that, that they have when it comes to job interviews because they don't like to talk about what they've done. They don't like to brag. But part of this is we need to brag. Not that we're bragging about how cool we are that we did this, but that this is useful. So something like ACK, I talk about ACK not because I want people to somehow, you know, adulate me, but that I want people to use it because I think it's helpful. Right. I want people to find useful things. So, and now, you know, so ACK, ACK has a website called, the ACK website is called better than grep. com. Right. Because I wanted people to have other things that are better than grep for searching source code. And there's actually a page on there where I talk about other kinds of tools that are there. Yeah. And now, so now, somebody has come along with a website called better than ACK. com. Building on top of that. Yeah. And I couldn't be more delighted. I love that we build off of each other. That, and, you know, it's not competition. It's not, it's not like, you know, people are- You're going to take away my earnings. Right. That's one of the tricks with paid software is, you know, collaboration is desired with a competitor because they're going to be taking away your profit. Right. Whereas when it's open source, it's just, hey, you just made something better. Right. Hey, now I can use it. Now my life is better. It's the difference between a scarcity mentality and an abundance mentality. Scarcity mentality thinks that everything's a zero-sum game. Whether it's adulation or love or time or everything is just zero-sum. And an abundance mentality says that the more people that come in, the more we have, the more we have to give. And so that's why I want to bring in as many people as I can to work on open source, to use, even if you just use it, that's great. Because that helps all of us. So that's my philosophy behind it. Okay. And just to kind of bring us to an end, with your talks and your writing about finding jobs, do you mention it all or do you have any experience on using user groups and conferences to help find jobs?
Andy Lester open source and project maintenance
Well, actually that's funny because I also wrote, I just wrote another article on leveraging, I believe it's called, "Leveraging your open source experience in the job hunt.
Mike Hall Interviewer, UGtastic
" Where I talk about, where I talk about, you really didn't know this in the softball?
Andy Lester open source and project maintenance
Yeah, no. No, no, that one actually, I didn't know this one. Okay, well, it's a great softball. Because I talk about how these are all contacts. People that we know day to day, that we know, our colleagues in open source, help us when we're trying to find other jobs. They help, and we can use our open source experience on our resumes.
Mike Hall Interviewer, UGtastic
Right.
Andy Lester open source and project maintenance
Because it is work experience. Work experience on your resume doesn't have to be paid.
Mike Hall Interviewer, UGtastic
Right.
Andy Lester open source and project maintenance
And so just as if you organized, you know, say you organized your kid's baseball league, that's worthwhile to put on your resume because, and you can tie it into a business need. Absolutely, the things you do in open source should go on your resume. And you can talk about that and say, "Hey, look, you know what, these are the things that I've done on this project. " So, for instance, on my resume, I talk about the parent project and about how I've gone through and done these sorts of clean up things, about how I instrument the code for doing static analysis, and I treat it as if it's a project that I got paid for. I didn't, but in the eyes of the reader, that's still valuable work experience. And it's different collateral. Yes. In a way, you do get paid, but it's not through money.
Mike Hall Interviewer, UGtastic
Right.
Andy Lester open source and project maintenance
It's through recognition, through use, through-- Recognition and gratitude. Through people contributing back.
Mike Hall Interviewer, UGtastic
Right.
Andy Lester open source and project maintenance
Recognition and gratitude are the currency of what we do. And so the other thing I like to say is that we need to thank each other more. We need to recognize each other more. We need to, you know, if, not only should, if you get something, if you find this tool that saves you a couple of hours of work, not only should you write a blog post about it, but you should send mail to somebody and say, Hey, you know what, I just used this, it saved me an hour, and I want to thank you for it. And that one minute, I can't even tell you how much that means to software authors. To let you know you're not in isolation.
Mike Hall Interviewer, UGtastic
Right.
Andy Lester open source and project maintenance
Yelling out into the dark void.
Mike Hall Interviewer, UGtastic
Right.
Andy Lester open source and project maintenance
That people are actually using this and appreciate it. That is absolute gold.
Mike Hall Interviewer, UGtastic
You want to sit here and encourage open source? You want to encourage people to write these tools?
Andy Lester open source and project maintenance
Encourage them directly by letting them know. And that, and just, you know, the last thing is that, what you're saying is I have a friend, who, Igor Polevoy, who I will interview, who does several Java projects. And every time he would get something, I worked with him at Groupon, every time he would get an email, or some kind of contact saying, somebody used my project, and they have 20 million records in their database, and they're using it, they said, it's no problem. Yep. The sense of, of the good feeling you could just see coming from him. Yep. Was, you know, he'd done this thing to scratch his own itch, but somebody else got used from it. He didn't, he's not thinking about, oh, I should have charged for that. He's thinking, that's really great. And it's funny. It's a very different mindset. It is. And it's funny because our day jobs don't pay us than that. It's not often, you know, sometimes at the end of a big project, upper management will say, hey, look, we're going to, and bring in a couple dozen pizzas, and everybody has pizzas in the lunchroom.
Mike Hall Interviewer, UGtastic
Yeah.
Andy Lester open source and project maintenance
And thanks for God, you know, for a job well done.
Mike Hall Interviewer, UGtastic
Yeah.
Andy Lester open source and project maintenance
And that's kind of gratitude.
Mike Hall Interviewer, UGtastic
Yeah.
Andy Lester open source and project maintenance
But not the same as an email from somebody who goes, I just discovered your, your website, and it saved me X amount of time, and, and it made my life so much easier. Thank you for doing that. And so we all, we all owe it to the other authors, to open source, to, to help encourage that. And that's, that just comes back. That's just paying it forward because it's going to come back for everything that we've done.
Mike Hall Interviewer, UGtastic
Well, thank you very much for taking the time to come with me. Thanks. I appreciate it. Thank you.