Interview with Rochak Chauhan - Innovation Award 2010 winner (0:38)
Is PHP loosing popularity to Python and C#? (17:46)
PHP Programming Award nominees of December 2010 (34:22)
The good and the bad of the PHPClasses site according to Rochak Chauhan (42:37)
Manuel Lemos: Hello, welcome to the Lately in PHP Podcast, this is episode number 9. I'm Manuel Lemos the regular host, as usual I have here with me Ernani Joppert. Hello Ernani, how are you doing?
Ernani Joppert: Hello, Manuel, glad to be here, I'm doing great.
Interview with Rochak Chauhan - Innovation Award 2010 winner (0:38)
Manuel Lemos: And today we have a special episode because we are interviewing the Innovation Award winner of 2010, Rochak Chauhan. Hello Rochak, how are you doing?
Rochak Chauhan: I'm fine, it's an honor to be here, thank you.
Manuel Lemos: I hope I have pronounced your name correctly. I'm not sure how to spell your surname.
Rochak Chauhan: It's Chauhan, Rochak Chauhan.
Manuel Lemos: Chauhan, I could never guess it. OK, anyway just a brief introduction about why we are interviewing you. As I mentioned you were the 2010 winner of the PHP Programming Innovation Award.
This award is organized is organized by the PHP Classes site since 2004, and since about a few years ago the site started compiling annual rankings. Basically every month there are a few classes that are nominated and then the users vote and the winner of the votes gets some points. And adding all the points accumulated in each year we get to a winner, and this year, Rochak was the winner of the annual Innovation Award, so congratulations Rochak.
Thank you, thank you very much.Manuel Lemos:
As prize for this award, Rochak is getting a nice elePHPant. As you all know the elePHPant is the symbol of PHP, and he is getting an elePHPant plush toy. As I already commented, his prize is in the mail and he is going to get it in a few weeks.
Well, I have to say that your participation in the site has been outstanding, not just in the last year. So for those that have not yet checked Rochak's participation, so far he has submitted 44 packages, classes, that perform all sorts of functionality useful to PHP developers, and 12 of them were nominated to the Innovation Award throughout all these years in which Rochak has been participating.
And actually in the last year 6 packages that Rochak submitted were nominated. Throughout all these years Rochak has won the monthly awards 3 times. This is quite an impressive record. Rochak can you just comment a bit, not about all, but at least the last packages that you submitted that were nominated on this award, what they do?
Sure, sure. First of all the pleasure is all mine. What I do is, I get immense pleasure like I just want to share things with people.
Now about these classes, there was one of them was Twitter Auto-publish
. If you remember Twitter changed their API. So using the user name and password you are not supposed to update your status now without authentication. So I tried to find a way out using Open Source classes, Open Inviter
, I used that class to login and then used the same method to update the status, so it worked. So this was a small task one of my clients asked me to do and I wanted to share it with everybody.
Manuel Lemos: So a workaround, right?
Rochak Chauhan: It was a workaround. It's not illegal but we're using the user name and password from the user and posting to the Twitter Web site without using the authentication, that's all.
Manuel Lemos: Yeah, but is this something that Twitter approves or is this a less known API that you used?
Rochak Chauhan: Well, it's another package called Open Inviter. What it does, if you open the source code, it takes your user name and password, it's a login to the website using that, so I use that, not to take any credit from them, I use the authentication, the login process from that. The only thing I added was a method to update the status because the main purpose of Open Inviter is to use the authentication and get the contacts.
Manuel Lemos: Right. It seems it solved the problem of many people that all of a sudden had their Twitter based applications broken because they could not add OAuth support as easily.
Rochak Chauhan: Exactly. And that takes huge coding for both sides because you have to create an application on Twitter and then use the same code on the website. It was tedious so this one helped a lot and many of my clients thanked me personally, so that was a nice feeling. That again that's one of the things that keeps you motivated, right.
Manuel Lemos: Right, and what about the other nominated classes last year.
Another one was again similar, one was Facebook, again, similar thing I used on Facebook and then another one was PHP Duplicate Files Finder
. Now, again, this is a very common problem with every developer. We make updates, we save the backup and then after we have lots of duplicate files, that could be an image file or PHP. So I use basically an MD5 checksum to find the duplicate file names.
Manuel Lemos: Yeah, I remember actually we commented about it in a previous podcast, actually the month when it was announced as one of the winners. And there were six, right, you commented on three or two so far?
Rochak Chauhan: I have. It was again what I basically did was if you rename the file, like say abc.php and I can save it as xyz.php but the content's the same. So it basically finds not the name but the content.
Manuel Lemos: That's interesting, and what about the other classes?
Another one was PHP Search MySQL Tables
. So there is something like you have grep in Linux. You can search files and file contents, but when there are many, automatically you need to find out from the tables the fields where exactly the is coming from, where exactly the label is coming from, so I use this class to do that, search from the text field, search from the label of all the databases.
Manuel Lemos: Yeah, it's a sort of brute force solution to search the whole database, right?
Rochak Chauhan: Right, right, something like grep for MySQL.
Manuel Lemos: Yeah, I see.
And there was Text Spinner
which was more like used for SEO, like you know if I write an article and it has 1,000 words, if I post it again it won't count as a different article, so this basically Text Spinner changes synonymous with each other.
Manuel Lemos: Oh, I see, I remember we also commented on that. Do you think Google would consider that legal because it sort of works around their methods to find duplicate content?
Rochak Chauhan: You can use it that way, like if I want to write multiple articles and I don't want the changes something like I'm going there, I can say that he went there so he can change it, and I have online demos for that, it's not always illegal, you can use it for legal purposes also.
Manuel Lemos: Well, when I said legal I didn't mean in terms of law, I mean in the sense of Google determines how pages may rank or not either being duplicated or not. OK, what about the other classes?
And this is again just to add Text Spinner can also be used for like multiple emails, if you send multiple emails you can change the subject and the content of the body without changing the actual meaning.
And then there was Compare Strings
. Compare Strings is more like your Levenshtein function we have in PHP. It's used to compare strings in how much they are related, Compare Strings, and so again it was most of the intent. And then there was PHP MD5 decrypter
, this was highly I could say illegal, it was getting from a Web site which now has a CAPTCHA, so this is not working at the moment now, but this is really just it uses the MD5 checksum...
Manuel Lemos: Yeah, to check existing dictionaries to...
Rochak Chauhan: Exactly.
Manuel Lemos: Yeah. Maybe they use CAPTCHA because of your class, so many people are using it.
OK, this is quite an interesting collection of innovative classes, and I'm sure that many users of the site have appreciated them. And what I was going to ask you next regarding all these great contributions is what exactly motivates you to write so many innovative classes?
Rochak Chauhan: Number one is how I write it is basically when I face a problem like one of my developers face problems like this cannot be done, this gives me, cannot be done is like things I don't like that to be said, so I have to find you can use some API or save some mashup but it obviously can be done.
So once I can place something I just want to share it with everybody, like you can say for testing also get the comments and best part to share, that's what the whole purpose of Open Source is, so that's what keeps me motivated.
Manuel Lemos: So we could say that your inspiration to contribute innovative classes is the challenges that you get from people telling you that it can't be done or is also things like needs from your work?
Rochak Chauhan: It's both, like once some clients come up with a specification this is very difficult like I'm not sure if it can be done, first of all I make it complex somehow using some API or mashup, and then it's again you want it to be recognized also so I just use the PHP classes as a platform to share it with other developers and get their comments and feedback.
Manuel Lemos: So I imagine that all these classes that certainly were downloaded and used by many people get you great exposure, did you get better work opportunities, jobs, just because you published all these classes?
Rochak Chauhan: Of course, it is a very, very helpful thing, like many people are coming back to me like I used your class, it's a nice class, now I want to implement it on my project or something, and they offer me as a job, so it's again helping me as a professional services big boost.
Manuel Lemos: Yes, that's what I imagine because it's quite a lot of great classes that you developed, and you probably have many people asking you for further support on them.
Rochak Chauhan: Yes, of course.
Manuel Lemos: OK, and what would you say to motivate other PHP developers who participate in PHP Classes site to also get recognition and better opportunities like you have been getting?
Rochak Chauhan: I guess my first one would be like what I would do is get information like if they find out some new class, some new function or some method to do something, it's better to contribute back to the society, back to the developer society and share it so that way they're doing themselves a favor by getting the feedback, getting the recognition, and then you can always share and in return you also get some return, like I've also learned lots of new things from these PHP Classes.
It's something like you have your online repository, you contribute to them and you get everything, the best part it's all free.
Manuel Lemos: Right. And well I can see that you somehow have been also inspired by others, by the work of others, and it's great to see that with so many classes I hope that you are also inspiring others to also contribute with more great classes.
Ernani, I wonder if you have any other thing interesting to ask Rochak?
Ernani Joppert: Yes, I have two questions; one is if you have had any problems submitting packages that you have written for other tasks, if you have found that people that you work with are afraid of sharing their code and if you feel that this is a common difficulty.
And the other question is as you've had the opportunity to share the classes that you provided if you would be to inspire others that are listening here, what would be your final words to inspire people to contribute and at least get some exposure and get some other material from the sponsors and everything else?
Rochak Chauhan: Of course. The answer to your first question is I don't think I face any problem regarding that. If somebody is very reserved in sharing their code I would like to tell them it's something like knowledge, you share knowledge it grows.
If I'm writing some code, I'm writing a class, I might be doing something wrong, maybe there might be some better way to do it, now if I share it with people you get feedback, people will tell you that I've got lots of things to learn like this, so the constructive feedback you get is the best thing for you to have done as a developer, as a knowledge, so you share and you learn more.
Ernani Joppert: Oh, yes.
Rochak Chauhan: The answer to your second question is again I would like to tell them if I can inspire that's great, but I would like to tell every developer that whatever they learn share it with other people. It not only will give you confidence but it will give other people too, they'll give you feedback and you learn in the long run.
Ernani Joppert: Very good, very good, thanks Rochak.
Rochak Chauhan: You're welcome.
Manuel Lemos: Okay, well basically this interview is practically ended, I just wanted to ask you Rochak is there anything else you'd like to say regarding this award besides what I have asked you?
Rochak Chauhan: I guess I only have praise for this award. This is a very, very like innovative and advanced in a way because this not only gives you recognition but it gives you a way of PHP is getting now. It has lots of innovative things, what people don't imagine that PHP can also do, like face recognition and we have these AI things going on and it's amazing stuff. So it just shows the potential of PHP not only as a scripting but as an enterprise level solution and application, it's really great.
Manuel Lemos: Right. Well, we are glad that you are enjoying it and I hope you can continue contributing with more innovative packages.
Rochak Chauhan: I will do that, I will do that. It's my pleasure, I will do that.
Manuel Lemos: Well, thank you again for this interview.
Is PHP loosing popularity to Python and C#? (17:46)Now moving on to our next section of this podcast, I would like to bring up a topic, actually a comment, some comments that were posted in the latest TIOBE Ranking system.
For those not familiar with this system, it's basically a way to evaluate, I mean sort of evaluate because I'm not sure about the accuracy of the conclusions that we can get, but this TIOBE ranking evaluates the popularity of languages.
And the latest rankings I would say for the last 6 months they sort of show that PHP popularity is dropping in favor of languages like Python and Ruby. Well, did you guys see those charts and the comments they produced there?
Rochak Chauhan: I did. I did. Let me just add on to that because I think this is you can say momentarily Python is rising due to the Django and other frameworks coming up, but that doesn't mean PHP is losing any popularity.
Again, it's in my opinion, because PHP has lots and lots of support like we have lots of framework CMS support and best support API's, even like Google, Facebook, everybody is giving PHP code and API's.
So I don't think rising of Python we need to worry about, as a PHP developer I'm not even worried about this losing the popularity because PHP is I guess closing the gap between scripting and enterprise level solution for an application like ODesk and Facebook has proved that PHP can be used for an enterprise level application also.
So I think the rise of Python and C# momentarily, it's just a moment, I'm not worried about that.
Manuel Lemos: Right, well, I think it would be important to understand this ranking, how it works. From what I could gather looking at their explanations of how they reached the numbers of popularity of languages, it seems that they go on the search engines and search for things like the name of the language and the programming.
For instance, if they want to evaluate the popularity of PHP they search for PHP programming, and then from the results they evaluate I think the first results and see the popularity of the sites that come up in the Alexa site, which is basically a site that shows statistics of traffic.
And I think it's more complicated than this, I'm trying to simplify it just so you'll have an idea, but the way I see it people searching for PHP programming does not mean that it's every PHP developer.
So whatever these numbers show it seems to me if I interpret this right, the fact that the number of people searching for Python or Ruby or whatever is increasing does not mean that the number of people using other languages, PHP, or whatever, is decreasing is happening. For instance if you already know PHP you won't be searching for PHP programming. And it's a bit odd.
And other than that you already mentioned that Python is probably becoming more popular because of a framework like Django and Ruby becoming more popular because, Ruby on Rails, but mainly Python I think there may be a different point of view to justify its popularity.
And that could be related to the fact that there are lots of developers that dream to work at Google. And since Google only works with a few languages like Python and Java, C++ and C, obviously many of them hope to learn Python to someday fulfill that dream of working at Google.
Obviously one thing may never lead to the other but at least they can hope, and that justifies the increase of popularity. And namely since the launch of the App Engine, for those that do not know, App Engine is the cloud computing solution provided by Google, and one of the project leaders is precisely Guido Van Rossum, which is they Python creator and I suppose lead developer, if there is such a role.
And all this I suppose it influences developers to become interested in Python, but that does not mean that the increase of Python fully justifies a decrease in PHP because just like we think about Google we can also think about Facebook which is a very large site and employs hundreds, I don't know if you can say thousands, but at least hundreds, it's fair to say that it's probably a number of engineers that they have there working with PHP. So I don't think that could justify any drop.
There may be other reasons that may not be obvious for this ranking to suggest that there is an increase of popularity in Python and Ruby at the expense of decrease in popularity of PHP. And as I mentioned before I do not think that the way they compute these rankings really reflects the real popularity.
Ernani Joppert: And there is nowhere they published, explained how do they find this.
Manuel Lemos: Actually that is there, that is what I was explaining before. They are performing searches for name of the language followed by programming, searched it on Google and then take the first results and evaluate the traffic of the top sites in the Alexa site ranking and then they perform some calculations. This is roughly how I understood it works.
Manuel Lemos: Right, it's all to say that there is no serious conclusion you can take from this ranking. And for those people that I see commenting they are sort of alarmed that they thought that PHP was no longer as interesting as in the past, I think it's kind of a silly conclusion.
And another comment that I would like to make is that in my opinion the greatest popularity of PHP comes from its killer applications. And by killer applications I mean applications like WordPress and Drupal, Joomla and many other ready-to-use applications that make PHP very popular.
And they have their own ecosystem and their communities sometimes are quite, I wouldn't say closed, but I'd say they work pretty much all the time with just themselves. For instance the WordPress community works almost all the time with WordPress. They probably could not care much about general PHP programming outside of the WordPress platform.
So this is something that should give the creators of the TIOBE ranking a lot to think about if they really intend to have their rankings be taken seriously.
And by the way, talking about WordPress, WordPress 3.1 I think, was just released. and by coincidence, or maybe not, it was named... the codename of this release was Django. And when people... I saw comments of people assuming just because the release was named Django it was related to Python.
For those not familiar with Django, Django is a very popular Python framework. And in reality this Django codename was inspired by the author of WordPress, I mean the creator of WordPress, Matt Mullenweg, he's a big fan of jazz music and there is a jazz musician named Django... I forgot his last name, but that's where the Jango name came from.
And I don't know if Matt named this release Django on purpose just to make a joke. Actually I met Matt Mullenweg in 2008. Actually we invited him to come to our free software event here in Brazil. And I met him personally and I know very well that he likes to make jokes. He's a very nice person and he's always happy with his life and he likes to make jokes.
So I wouldn't be surprised if naming this WordPress release Django was to just make fun of whoever could suppose that it could be related with Python, and obviously it doesn't. It just could be somebody suggesting there is some relation.
And, well, basically that's all you have to say about this TIOBE ranking, if anybody was concerned that PHP would really be losing popularity in favor of Python and Ruby, personally I don't believe it, but I'm sure that those languages, Python and Ruby, are increasing their popularity, which is normal for the reasons that we've discussed before.
Ernani Joppert: Yeah, just one point, just one point on the subject, there was a very smart comment on the idea that most of the people are familiarized already with PHP, so they have their go-to places.
And by having Ruby and Python interest and there are also new developers coming forward and Ruby is a very, let's put it this way, academic language because the concepts are object oriented and stuff. So it could be that people are also trying to follow that approach, and with Ruby being very... tends to be used in startups it could be that this is the reason that it's ranking up.
But the PHP world has a lot of other technologies on top, as Manuel explained, but I guess that your clarification on the TIOBE Ranking, it's pretty much what I think it is as well. Tt means that people are searching more for Ruby content or Python content than PHP because PHP has a mature state already, so that's my thoughts on that.
Manuel Lemos: Right. But, okay, I'm sure other people will have also their theories and opinions to justify these rankings. And for those that are listening feel free to post your comments to give your opinions about this.
PHP Programming Award nominees of December 2010 (34:22)But moving on with our podcast now towards the end, we are going to comment about the latest classes that were nominated for the Innovation Award in December 2010, and they were voted in January, and in February the results came out of those that were more voted.
Rochak, in your opinion which classes would you like to comment on that you think are more worth mentioning?
I think that two of them are the first and the bottom one. The first one was Tic Tac Toe
by Amin Saeddi. I really liked how he took up this simple game, used this alpha beta search algorithm. That was the best part. I guess this is one step closer to, like I was saying, PHP moving to AI.
And one of the implementations he can use can demonstrate using the simple game. And you can always use this algorithm to make a complex games like Chess maybe Scribble with PHP. That's again a good start.
The second one I really liked was it has really, really good implementation is twzCronChart
. I have myself this issue like when you look into cron chart. It has lots of text but to present that in Gantt visual impact it's very easy to find out which cron is run. I think this is a very exceptional attempt, very innovative and very exceptional, very useful.
Manuel Lemos: Right. As you mentioned, this Tic Tac Toe class which is using the alpha beta search algorithm it shows that developers like Amin Saeddi from Iran are demonstrating that there are many developers that have advanced knowledge on advanced topics like artificial intelligence, as you mentioned.
And not only that but it should also be inspiring to other developers also to come up with their own artificial intelligence solutions in PHP because as it just demonstrated that not only it's possible but it can be useful.
In this case it's just a simple game of tic tac toe, but it could be something else more serious not just a game, although it doesn't mean that games cannot be serious. And as you mentioned, the other class twzCronChart just shows a nice effect that you can do with data from crontab files that define basically the schedule of when certain tasks should be executed.
And using a Gantt chart you can get a pretty good idea, a visual representation of when those tasks should happen. And I think it's quite useful.
But other than that, Ernani, any other classes that you would like to mention?
Oh, yes, I have two picks. One would be the Proxy Connector
from Ska-Man in Italy. And basically it's used to retrieve remote Web pages under the TOR network. And sometimes you have the need for that and it's very innovative, so I would give him my congratulations.
Manuel Lemos: Probably it would be interesting if you could explain what is the TOR network for those that are not familiar.
Ernani Joppert: Yeah, the TOR network, it's pretty much a peer to peer network which is encrypted and it's based on hopping architecture, so you have one entrance, one point of entry and it's pretty much randomized the way you reach your ended target.
So let's say if you're browsing through the Web you are pretty much anonymous because of the amount of hops that you do when you're requesting a webpage. It pretty much can go ten times around the world and reach the point of entry which is let's say near your house but you went a long way to get back to the reaching point that you wanted.
So it's good for anonymity and it's also good because there are the needs for whistle blowers as Wikileaks have proven. So sometimes you have to extract information and you don't want to be identified for some reason. And the usage of this class if very clever and it's very innovative, so that's why I would give my vote for them.
And the other one would also be the Gantt chart because sometimes a picture is worth more than a thousand words. So it's very nice to know that Tony from Australia has come up with this idea and proven that visually representing some information is what it needs.
And I guess most PHP Classes users would be using this sooner or later, at least for documentation purposes and to visually represent some batch operations that are run on those servers.
Right. Well, for me I also like to comment on a couple of classes. One is this Search by Relevance
by Carlson Soares from Brazil. What basically it does is to implement a sort of sorting algorithm.
And what it does is basically have a result, have a series of results, and analyzes the keywords that are used in those results and sorts them according an algorithm relevance. And this could be useful for many purposes of finding what is more relevant in a set of information that could be retrieved for instance from MySQL databases.
And the other class that I would like to comment on just briefly because I'm not an expert but I think it is interesting, is this AllowHTML
by Simon Emery from England. And what it does is to filter insecure HTML according to OWASP Anti-Samty rules.
For those not familiar, OWASP is an organization that is focused on promoting security, implementation of security norms, rules, practices in general that will help make applications more secure and eventually more immune to abuses and all sorts of security attacks.
And this is basically the two classes that I would like to mention.
The good and the bad of the PHPClasses site according to Rochak Chauhan (42:37)Manuel Lemos:
And now practically ending this podcast just a final section, since we have a guest, Rochak, when we have a guest we usually ask, in your case because you're a PHP Classes site user, to comment about one good thing and then another bad or not so good thing about PHP Classes site that you think to be worth commenting on.
Rochak Chauhan: Sure. One thing I really like is the indexing, the way you have sorted down in the categories, and sub-categories, it makes life for a developer very, very easy. I really love the indexing, that's number one.
And one thing I would like you to add, one thing you can improve is have some section where people can post which class, which package they're looking for, something like a wish list. So if that is there it will make it very, very effective, more effective.
Manuel Lemos: Actually, that is one thing that is my wish list for many years. And unfortunately I was not able to get it sufficient priority to actually implement it. There are many, many things that could be done to improve the site and I never stop. Once I implement something I move on to the next.
I understand that is an idea that would be interesting because it will also be helpful for developers looking for ideas to implement innovative classes. And one thing will sort of marry with the other and the need for a solution for a problem that was not yet solved and the search of developers that are interested in developing innovative classes to get there.
So, just so you'll be sort of happy with this I'm sure I will implement it sooner or later, I just don't know when, but sooner or later I'll get there as every other thing that people have been asking over the years and I ended up implementing. It just did not come the turn of that idea but it's actually in my wish list for many years already.
Conclusion (45:22)Manuel Lemos: OK, I think we have reached the end of our podcast. Rochak, I would like to thank you for your presence and also your participation in PHP Classes site. I hope you can continue to submit more innovative classes.
Rochak Chauhan: I'll do that. The pleasure is all mine like I said.
Manuel Lemos: Great. And I think for me that's all, Ernani?
Ernani Joppert: Yes, I would like to thank Rochak for participating here, also for contributing and to give his overviews, it was a very clever interview.
And it's nice to see that we are coming to a global world where it doesn't matter where you're from, it just matters your interest level, your intentions to contribute and your intentions to learn.
And this expressed most of our character and that's what we want to have in the IT world because we want to have people with hungry minds to learn with potential to provide good solutions, creative solutions, and as well have a good community, a community of people everywhere in the world with different cultures.
So I would like to express that and thanks everyone for listening, and I'd like to listen to more feedback from the community here.
Manuel Lemos: That would be great. Okay, I think that's all for now, bye.
Rochak Chauhan: Bye, thank you.
Ernani Joppert: Bye, bye.