CMOS #11: Mohammad S. Anwar - Contributing to CPAN every single day
Interview with Mohammad Anwar on his contribution to CPAN. Mohammad has released a Perl module to CPAN every single day in the last 699 day and he still going strong.
Hear him talk about the inspiration.
Transcript
Mohammad, can you stay until 8:00 or 9:00?Nobody going to tell you. So you come in at 9:00, leave at 5:30, nobody asks any questions. So, yeah.
And also, for me, English was not my first language, so coming to London was another language barrier for me. I had to start from scratch, so to be able to communicate and to be able to understand, what is asked to do. I had to understand the language, I had to understand the accent, English accent, is completely new to me. And luckily I had a very good people, who I worked under, they were very friendly, very cooperative, and very communicative, so yeah, I was very lucky.
Okay, let's do something and let's add something to CPAN.I had absolutely no clue what to do. I mean, anything that comes to my mind, I see someone's already done it. I don't know where to start and I keep thinking about it.
And one day I was just looking at the London Tube map, and I think I remember that day, there was some strike, some Tube strike, and I said, Oh my God, how am I going to go back home?
So I started looking around the map, and I said, Let me find the shortest route, or try to avoid the route that's not working, or there's some trouble in that route.
And that's where I started, I said, Okay, I'm going to write a Perl program, just write a script to see if I can find the shortest route, avoid a particular line, or do something.
So that's how I started, it came to my mind, I said, Okay, I don't think anybody has done this!
But there were already a few algorithms and I thought I'd use one of those sesarching algorithms and try to find the shortest route, using those algorithms.
Not having the computer science background, I had to try a little bit harder to understand all those algorithms, search algorithms.
So I started looking around the Google, to see if I can find any paper where it explained to a non-computer science background, how it actually works.
I came across one, a case-study by some Australian university student and he explained, in very simple language, so I could understand.
And from there I got the idea how it actually works, and I started using, implemented it and tried to solve my shortest route problem through London Tube map and that was my first contribution.
So I started with it and pushed it to CPAN.
I got a couple of positive feedback from different people, and they came up with a few additions, and that's how I started.
And a few people also came along and joined me and started working together.
So that was my first thing.
Okay, write a program to play a game of Domino.So for me, that was the first time I had ever heard of the game of Domino. So for me, before even I can think of designing this module, I had to understand how the game works, how you play the game. As I said, I had to start from scratch and I couldn't finish it in time. So whatever I did, I sent it as it is, to them. And as I expected, I didn't hear from them, so probably they didn't like it. Once I got a feeling that my answer was not accepted, I said,
Okay, I'm going to spend more time now because now I've got a pleasure to go back to the design board, I understand how you play the game of Domino, now I went back and re-did everything from scratch.I said,
I'm going to share it to my Perl community on CPAN, so other people can have a look,that's how I started. So I pushed it to CPAN and said,
Here's my game of Domino.So I'll remember, even when I get old, that was the first game I did using Perl.
Okay, I want to use this JavaScript thing and convert it into Perl.But then I said,
I need to do something different that's not there on the CPAN already.Then I said,
Okay, I'm going to do something like on a console, I'm going to display a colorful calendar, where you can have a colorful text and dates announcing, nice and fancy, color-coded calendar.So I used the JavaScript code, converted it into Perl, and then started with varous different calendars. For example, Bahai calendar, or Islamic calendar, Hijri calendar, or different type of calendar, using this JavaScript code, and I converted it to a color-coder so you get a nice colorful calendar on your terminal. So that's how I started that Calendar thing.
Okay, I'm going to reserve my own webname,so I came over to manwar.org, just to follow him, the way he did neilb.org, so I said mine was going to be manwar.org. So I decided first thing, was my domain. And then I thought,
What am I going to do?So let's see what Neil Bower is doing. On his website, one of the sections is where he mentioned his various stats, like how many people uploaded to CPAN on a daily basis or weekly basis or yearly basis, kind of data, I said,
Yeah, very nice.But I said,
I'm not going to copy what he did, I'm going to convert that into a different format.Exactly the same data, but in a different format. I'm going to convert it into some kind of a graph, using HighCharts Free Graph JavaScript thing, using JSON data, converted that into a friendly chart, so that's how that all started.
So I try to keep that and that's how I also got into, I came across that Neil Bowers had started this other trend, where he used to push one change to CPAN on a daily basis and he did that for 101 consecutive days and after that he stopped it.
I think he had some kind of challenge among his friends and some other people in his group started doing that, and he was like a leading and then he stopped after awhile.
And I said, Oh wow, I wish I could do that 101 consecutive days.
And that's how I started and since then I've been doing it 692 days, today's the 692 consecutive day I've been pushing one change every day to CPAN.
And then I came across Barbie who did, I think, 370-some odd days, consecutive days.
I thought whether I'm going to beat Barbie or not but I'll try and Barbie even mentioned in one of his blogs, saying, I'm going to stop it after one year, I'm not going to carry on, it's too much.
But I think Mohammad is going to carry farther from me.
He said, good luck to me.
I'm carrying on, I don't know how long I'm going to carry on.
I have nothing more to do.So I need to go and see if I can adopt some of the most popular modules so I can do some kind of contributions, so I'll have something to push on a daily basis. So that's why, yeah.
I wish I could do a bigger project in Perl,for example, there's a Dancer project going on and for example, MetaCPAN, the group of people who are working on that. Those are big projects. My ambition is, my next target is one day, I would like to be part of the core team for those so I can do something very interesting. Whatever I do so far, I don't think is anywhere near them, so I wish one day, I can go and join that core team of Perl developers and contribute in a big way.
Published on 2016-09-26