Download Size: 27MB Listeners: 2063
Introduction music: Harbour by Danilo Ercole, Curitiba, Brazil
RSS 2.0 feed compliant with iTunes:
In iTunes, use the Subscribe to Podcast... item of the Advanced menu, and then enter the URL above to subscribe to this podcast.
Upcoming PHP 5.4.1 (1:03)
PHP Development Migrated to Git (2:52)
Why is it better to develop in PHP with classes (OOP)? (9:15)
PHP Programming Innovation Award of 2011 (21:26)
PHP Programming Innovation Award of January 2012 (55:51)
Manuel Lemos: Hello, welcome to the Lately In PHP Podcast, I am Manuel Lemos always the regular host of the podcast, and as always also my regular co-host I have here with me Ernani Joppert. Hello, Ernani, how are you doing?
Ernani Joppert: Hello, Manuel, lots of things to be done, lots of exciting stuff happening, and glad to be here.
Manuel Lemos: Great. Well, today we have sort of a special episode, not specifically about general PHP topics, mainly related with PHP Innovation Award that PHP Classes site organizes every month, but we'll get back to that ahead.
Upcoming PHP 5.4.1 (1:03)
Manuel Lemos: First we're going to comment on the latest topics, latest happenings in the PHP world, PHP development. Well, we can start talking about just briefly because we already talked a lot about PHP 5.4, it was finally released after a long period of development and a large number of release candidates that were released throughout the latest months.
And sort of about one month of delay it was finally released earlier in March, and the development continues, the core developers are already working on PHP 5.4.1, and the first release candidate was just released just a few days ago, and I'm not quite sure what were the enhancements in this release, maybe the usual bug fixes.
As we have talked before this is something that happens right after a major release, which is a new release with bug fixes because, one, the new version is exposed to do the world out there, it gets a greater number of developers to start testing it.
So this is normal to happen, and I did not see anything else other than bug fixes to be incorporated in this new version that is still in a release candidate.
PHP Development Migrated to Git (2:52)
Manuel Lemos: But there were also other somewhat interesting PHP developments that we are just going to comment about a bit, like the migration of the PHP development to Git.
Git for those that are not familiar is a version control system that allows distributed of version control process, allows developers to go from isolated groups to work on their branches and make it easier to perform merges of work.
And in this case of PHP previously they were using Subversion, in the past they used CVS, and since Git allows certain features that make it more flexible to accept contributions, finally PHP we hope that it will be making it easier for non-core developers to submit what they call pull requests, which are basically requests to incorporate patches that are also hosted in a Git repository.
And despite of PHP has its own Git repository, there is maybe I should call it an integration with GitHub which is a different repository system. PHP is not on GitHub, I mean the main development, it just I will call it a fork, well maybe fork is not the right name to call it, but what happens is that if somebody submits a pull request in GitHub the PHP core developers will be notified and will be able to integrate those pull requests if they accept them, if they are interesting.
And we'll see if this will influence the number of contributions, the motivation of outside developers to submit patches to the core PHP development.
Ernani, do you use Git or do you have a different preference for a version control system?
Ernani Joppert: Yes, I do prefer Git, I've been using it for seven months already. In the past I used to use Subversion, and to me so far since in my repositories it's only me that is committing it's no big changes other than the benefits of merges and having different branches and merging between branches, etcetera.
But that saves a lot of time, and for PHP itself it's a huge win, I see it as a huge win because it could facilitate lots of issues, forking repositories, and anyone can do it, and I guess they already have integrated it with GitHub as well which means a lot, so it seems it's in fully sync with the GitHub version, but there are a few things to notice about it, but other than that it seems a huge win. Git is growing very fast, it was done by you know who?
Manuel Lemos: Really? Who, who?
Ernani Joppert: Linus Torvalds and you know that's...
Manuel Lemos: His wife Tove.
Ernani Joppert: Yes, he's beyond any comparison and it seems when he puts his hands on things they just work, and everybody's moving to Git or Mercurial which is a sort of similar distributed version control system, and for PHP I see this as a huge win.
Manuel Lemos: Right. So do you think you will be motivated to submit patches for the PHP development or maybe not?
Ernani Joppert: Yes. The thing is it's very hard to get those things submitted into the PHP core, but other than that I think I have enough bad karma in my life, just kidding, just kidding, but yeah, it facilitates everything, so if I get the chance to find any bugs and I have the time available to contribute for sure I will.
Manuel Lemos: Right. Well, I think it's exactly as you said, just because you can submit pull requests it doesn't mean that those pull requests will be accepted.
In the past there was always the chance for outside of the core developers to submit patches, but it would be sort of a manual process, the patches would have to be sent in the form of a diff format output, and it would be awkward.
Well, now with this Git pull request system it will be possible to make that process simpler and actually see how many pull requests are pending, what they do, and...
Ernani Joppert: Maybe within this way it's easier to get to Suhosin better integrated with PHP.
Manuel Lemos: You wish.
Ernani Joppert: Yeah, I wish, but...
Manuel Lemos: Don't count on that. Anyway, we already talked about that, I think the problem has no solution because the parties do not agree.
Anyway, we already talked about that, but back to this Git integration, as I mentioned it's like you said, just because you can submit pull requests it doesn't mean that they will be accepted, but at least now you know that there were pull requests, and I think, I'm not sure but probably they will be browsable somewhere, I'm not sure if it will be in GitHub or in the Git, PHP Git site.
Well, we'll see if things actually change in terms of acceptance of the patches that outside developers are submitting to the core.
Why is it better to develop in PHP with classes (OOP)? (9:15)
Manuel Lemos: Well, moving on with our podcast, now I would like to comment just briefly about an article that actually I published in PHP Classes site blog, which was mainly about a topic that, well, it was not really meant for exactly every kind of PHP developer, it was mostly meant to target those developers that for some reason are not writing their components, their PHP applications, in object oriented fashion.
And I felt it was necessary, first, because I actually participated in replying to a question that was submitted to a Quora. Quora is a question and answer site that is relatively new, well, not so new, but it's one of the latest that has appeared and has more success.
And in the PHP section of that site there was a question about if it would be better to develop PHP using classes, and how would the developer that has written their code in form of global code, being that in global functions and global variables, how it would need go to to migrate to classes, and so have their project more object oriented.
And then I felt it would be interesting to extend what I have written besides the actual answer that I posted in Quora. and it was interesting because of the repercussion of this article was quite intense, there were like over 60 comments from people with the most varied points of view.
There are those that were in favor of using object oriented programming, but those did not quite manifest. Those that actually manifested are those that are against for some reason, and those that are in favor that are actually criticizing the article for being too superficial.
The article only tried to justify why object oriented programming is better than developing with just global code. I particularly focused in the aspect of encapsulation of functions and variables in the same container which would the class is basically a container.
And I tried to explain that in very simple terms that would be easy to understand for people that do not have a background in programming, which are those that are not really programming object oriented programming because it's too abstract, it's too hard for them, and they really quite do not understand why the classes can be better.
Not that the site, actually the article, advocates always the use of classes. There are situations in which their use is not really necessary or there will be no benefit in using them.
And, well, I tried to focus mainly on these types of people because other than those that do not program in object oriented programming fashion in PHP because they do not quite understand the concepts, there are those that although they have a somewhat vague idea what it means they are against because they feel it's something bad.
There were some developers that defended that object oriented programming is necessarily slower. Well, you can write slow code in either object oriented programming or not, and that's not really the reason.
One thing that I have noticed is that there are people that sort of have a passion for being against object oriented programming probably because everybody else is commenting about it and they are sort of upset, they are bored with so many people praising object oriented programming as if it is a panacea, and that's not the case.
Ernani did you follow the repercussion of this article, what did you think about it?
Ernani Joppert: Yes, I've been looking into it; it was somewhat fun to watch the argumentation of people.
Manuel Lemos: Right.
Ernani Joppert: And, yeah, the main concern is your intentions here were to at least bring the topic into table and what it is about it, what is the big difference and why should you migrate it and what would be the benefits of it.
Manuel Lemos: Right.
Ernani Joppert: But people tend to be very much specific on things, and they want you to pretty much explain the whole thing, if you would, you would have to write a book about it and not an article or a blog post.
And the point is there are a lot of twists about it, people getting confused, people trying to complain about it, and the point is nobody's focusing on benefiting PHP, or as I can see, right, I don't see many people talking about the benefits, the pros versus cons about PHP functionality.
Manuel Lemos: Right.
Ernani Joppert: And that was the main point in my understanding, and I feel frustrated that some people have enough time to complain and not take the good part of it.
Manuel Lemos: Oh, yeah, that's true. Actually there was an amusing argument because I tried to put a very, very simple example of migrating a global code to a class, and I just declared the variables with var instead of public, private and protected.
And there were very religious people that came to the site, and also Dzone, which is another site where the article was posted, and they were complaining about using a var, and var is a PHP 4 thing. Well, var is a PHP 3 thing, but it doesn't matter because it still works in PHP 5, and it was beside the point, because as in the article I mentioned I'm not going to extend in this article...
Ernani Joppert: and bring Martin Fowler here and talk...
Manuel Lemos: Right, and talk all about design patterns. And I think very few basic concepts that were presented in this article are already hard enough for some people that do not have a background in programming to grasp.
So if I go entering also aspects like inheritance and polymorphism or...
Ernani Joppert: Class loading, etcetera.
Manuel Lemos: Right, access and protection methods, modifiers, and if I would go there, as you mentioned as well, it would take me a very long article, actually a book.
Ernani Joppert: Right. And then you could do it in a different manner with a more visual feel, or write sort of a little book.
Manuel Lemos: Or spend my life forever talking about the subject, but we have to be pragmatic, and as also mentioned in the article there are authors, developers, that want to contribute to the PHP Classes site, but since they do not quite grasp the object oriented programming they do not know basic things like those that were explained in the article.
And they think the site is named PHP Classes because it's classes in the sense of teaching classes, not classes of objects. And there is that ambiguity in the name of the site, and they think anything they submit to the site that could serve as a class, as a teaching class, would do.
And the site rejects code that is based on global code like global functions, global variables, and there is no object oriented approach, there is no encapsulation of the code, because as I tried to explain in the article the main point of encapsulation it's to make it easier to use, avoiding collision of global names being functions or variables, and object oriented programming classes address this concern.
But still I could follow several people trying to force, "No, but I can do that and with just global code avoiding name collisions".
Ernani Joppert: Even personal attacks directly to you, people don't know about your story, right, about your Metabase contribution.
Manuel Lemos: Yeah, well, I have submitted so many packages, well, this is why I actually avoided to comment because those are clearly trolls, and you know what you should do about trolls is to not feed them because they are just trying to be offensive, they are not being constructive at all, they are just to be "I'm superior, you are inferior" what a waste of time.
This site was meant to be useful to everybody, not for somebody to promote himself at the expense of putting somebody else down, they really do not get it, the spirit of community.
And, anyway, it is interesting, it was actually very constructive, lots of people expressed they were sort of grateful for being clarified because they really did not know all these basic object oriented programming concepts, even because they do not have this background, and I think they really can from now on appreciate the concepts, try to learn more about them, because there are plenty more to learn about object oriented programming PHP.
And, well, hopefully we start seeing some objects, some components of those people that learned the meaning of using classes, and actually why the site is named PHP Classes, because it has all to do with reuse of code.
If you do not submit components that are reusable they are useless to others because they cause all sorts of problems combining components of different sources.
And, well, hopefully this has been helpful to more developers that will start contributing.
Talking about that, I actually noticed a rush, a surge I would say, in the number of classes that are being submitted by developers that never submitted new classes before.
I don't know if it is related with this article, it's possible but, well, if that's the case great, a goal was sort of achieved promoting the reuse and encouraging people to share code that is useful for them and for others.
PHP Programming Innovation Award of 2011 (21:26)
Well, this was an interesting topic, but now moving on to a more specific topic of the PHP Classes site is related to the PHP Programming Innovation Award, which for those that are not familiar is an initiative that is being organized by PHP Classes site since 2004, every month we nominate classes that do something innovative.
And the idea is to encourage developers to submit components for which there was no other component in the site for that purpose, and thus making the site even more useful than it is.
And this is a very successful initiative, as I said, it has been going on since 2004, and since the latest four years there is an annual initiative which aims to distinguish the developer that had the greatest participation in the past year.
And this year, I mean this year 2011, the winner was Richard Kaizer from the Netherlands, he has been submitting very good classes that do quite unusual things, and actually some do things that are very sophisticated, that require a great knowledge.
And Richard unfortunately he was not available to participate in this podcast. He was invited, but since he could not make it at least he was able to give an interview in which he answered a few questions about his participation and his classes, what were the motivations to develop those classes and also to participate in this award.
Ernani did you read Richard's explanations about the purpose of his classes, what did you think about his participation?
Ernani Joppert: Yes, he is a very solid contributor, I've read about the interview and really liked it, it's nice to see people willing to contribute and as well to seek to for improving the whole community throughout your web site.
And it seems that this is a common ground, everybody wants to compete in some sense as well as to contribute, and the way you provide those things in your sites it's something very, very positive.
Manuel Lemos: Right. And actually he was invited to comment a bit about his classes, and I mean those that were nominated, because so far he submitted like seven classes.
Ernani Joppert: Oh, yes, in which one... although the 100% PHP Uploader was brought to my attention in my previous episodes, and the Namespace-aware autoloader as well, which we can give some details here to the listeners if they wish, otherwise on the show notes we could add this as a topic for people to read about.
But he created a component which is a True DOM Abstraction which creates XML documents using extensible DOM elements. And XML is very powerful, and having such components written the way he did brings to the table the quality of PHP as a programming language, and the quality of components that can be found within your web site, so it's very nice to see this going forward.
Manuel Lemos: Right. That particular class, True DOM Abstraction, what he did is something that he had to find a workaround on extending the DOM element classes of the PHP DOM extension to give them enhanced behavior.
He actually gives some examples in the package itself, and you can create sort of custom XML nodes using this extended class. You can encapsulate the behavior of those XML nodes, how they will be represented in an XML document.
Let's say if you have a car you can have a class that represents that car properties in an XML document, and it can I would say serialize those properties to XML using an extended XML DOM element class that manage to make it work using this package.
Ernani Joppert: And this can be used for several things other than persisting information, right, but as well as generating code and documenting code throughout some annotations or PHP docs.
XML is very powerful, and having this the way he did brings to the table that PHP could benefit a lot from it, as well as we see components very, very powerful around your sites and motivating people to provide those components.
Manuel Lemos: Right. Well, other than that class, from the five that were nominated, as you mentioned, there is the 100% PHP Uploader which is basically a solution to give an upload progress bar that shows how much of a file is being uploaded to the servers, and he developed a sort of web server that will take the upload file and somehow can provide the progress information back to the browser so it can display it.
The Namedpace-aware Autoloader is basically a solution to autoload to simplify the automatic loading of classes and that is aware about name spaces support since PHP 5.3. And this class can take in account the definition of namespaces to determine how to proceed with autoloading.
And there is also Swype for PHP, which is basically a simple decoder of swype stream of keys that are being sent using that swype keyboard for those that have Android devices. I think it's just Android that supports swype, right? Ernani you are more familiar with that.
Ernani Joppert: Yes, currently only Android. There are some ways to get this working on the iPhone, but you had to go underground.
Manuel Lemos: Right. Well, this is not really exactly about the swype keyboard itself, but rather how to integrate the key touch information that is being sent to a web server eventually.
And, well, but my favorite which I left to comment for last is the class called Pragmatic BNF Parser. Basically for those that are not familiar, BNF this is basically a syntax for defining the syntax of programming languages, so it's sort of a meta-thing.
BNF is a text format, you can define the syntax of a language, let's say if you wanted to parse some code written in a certain language. In the case that motivated Richard to develop this class is to parse SQL strings, SQL queries.
And what this class does is to generate the parsers in PHP code to be able to parse I would say a string that is in some language. And this is quite interesting because actually I'm not sure, I do not quite remember if it generates code, I don't think it generates but actually does the parsing, which consists in taking the tokens of the language and returning a data structure of the language that is being parsed.
And this is useful if you want to parse SQL strings as in the example that Richard gave, or some other language, you can develop parsers of more complicated languages.
And to develop a class like this it requires a good knowledge of programming languages and how they are processed compilers, parsers, and it's not everybody that has this knowledge, not that it's something that is too hard, but usually something sophisticated that you learn if you take a computer science degree.
So Kudos to Richard for this and all other classes that he has submitted. He promised to submit a new class that will also be innovative, so we will be waiting for any new classes that he sends.
But other than Richard's participation, probably it would be unfair just to mention Richard's work. He was not the only one to submit a reasonable number of innovative classes, actually he was invited to comment about other classes that he was most impressed.
He mentioned one class named Reingold Tilford by Stefan Löwe, and it really demonstrated things that require somebody to be very mature, very experienced to develop a class like this that does some things sophisticated, like showing the trees of data structures in different ways in several formats.
And sometimes those developers that are not so aware about programming topics probably they will not value classes like this because they don't know, they probably would not be able to figure what could these classes be useful for.
And that was one of the goals of the Innovation Award Initiative which is to explain why this class is useful, and in the case of these innovative classes that are nominated, every time there is a nomination that nomination will appear in the page of the class explaining why it was nominated, so people understand why it was considered innovative.
And other than that there was another package that Richard liked which is APIQL by Temperini Mirko, I'm not sure if this is the right way to pronounce his name, if not sorry, I apologize, I'm not sure what is the right way to pronounce it.
But this class does also something that is sophisticated and useful for those that are developing API's, for instance, for web services and similar purposes.
And this is just to mention a couple of participations of authors besides Richard that did great, but other than that, Ernani, any other class from all those tens of classes that were nominated in 2011, which class or classes did you think were more outstanding and got your attention more than the others?
Ernani Joppert: Right. I could say a lot of those, but I will stick to one which is to me very, very interesting, it's an author from the United States, his name is Nathan Bruer, the name of the class is Web Socket Service.
It goes to my selection because first it's a service, and it's also a Web Sockets functionality, so it's nice to see things being created like that within PHP, and hopefully later on with Apache becoming a more eventful Web server the way Node.js was done.
It's good to see those things coming through and to see Web Sockets growing fast you see the benefits of having it, most of the applications that I could see going with Web Sockets brings to the Web a very good approach to notifying people about events or the ability to avoid the browser to query the server to get an answer back, and it's very, very nice to see this going forward.
Manuel Lemos: Actually this class we have already commented on before Web Socket Service, because it basically does something that is not very trivial since it is all done in PHP. So Nathan actually built a whole web server to handle HTTP requests that make PHP be able to handle Web Socket communication.
Basically Web Socket are used for bi-directional communications like a regular socket but they work on top of HTTP, so they will work in all networks that support the web, and so it will enable interactive communications with web servers, in this case one that is totally done in PHP.
And this certainly was not a trivial effort, so I think it was a good catch that you mentioned this class.
And other than that, one class, well, several classes impressed me a lot from those that were nominated in 2011, but from those I would like to mention one that is called Sound Regex by Thiago Luiz Alves from Brazil.
And what it does not only is not trivial, but it also reveals a lot of imagination from Thiago. And basically what it does, for those that are familiar with the soundex algorithm, which basically transforms a word in a string, usually smaller, that has a similar... it just represents sort of a hash of the sound of a word, so if you have similar words that sound the same they will result in similar...
Ernani Joppert: It goes with a phonetic search, right?
Manuel Lemos: Right. Well, I was just trying first to explain the soundex algorithm that is for that purpose. Now what this class does, and we have talked about it before but we went to just review it once more just to clarify why I think it was really outstanding, is that if you have a large text and you want to search for words that have similar sounding to certain such words that this class can serve that purpose.
And what it does basically is to create regular expression from the words you are trying to search so it can find matches in the large text with words that sound similar. And this is a very clever, well, at least in my opinion, what do you think Ernani?
Ernani Joppert: Sure, yeah, I really agree with you, there are lots of applicabilities on this, I'm sure that Google in any sense does some of these kinds of searches within their own...
Manuel Lemos: Yeah, although they do not use so much a straightforward algorithm to just use regular expressions to find text, they have to index the whole world, but it's certainly very interesting for...
Ernani Joppert: For sure.
Manuel Lemos: search for texts that are probably misspelled but the sounding of the words are maybe similar.
Ernani Joppert: Exactly.
Manuel Lemos: Well, I would love to talk more about all the nominations that were done in the last year, 2011, and unfortunately we do not have time, but just to comment on several authors that have done not only innovative contributions but they have submitted many of them, like Artur Graniszewski, I'm not sure if this is the right way to pronounce it, my apologies if that's not the case, but he is from Poland, he actually submitted four classes.
There is also Pashkov Denis Igorevich from Ukraine, and Arturs Sosins from Latvia, which this is very interesting because all of these are authors from Eastern Europe. I don't know if this is a coincidence or there is a reason for this concentration of authors in Eastern Europe that submit innovative contributions. And there is also Jacek Lukasiewicz that is also from Poland, yet another contributor via Eastern Europe.
And there is also Omid Zarifi from Iran with two nominations, and several others that have sent one or two classes. Well, unfortunately as I mentioned we do not have time to mention all of them, but I hope next year, actually this year, they continue to submit their innovative contributions because they are well appreciated.
Ernani Joppert: Exactly. And the contributor will benefit from the prizes and we can't forget about it, there are lots of nice prizes for the winners, and myself included I wish I could have the time to compose some nice components to at least get the chance to grab some of those prizes myself.
Manuel Lemos: Yeah, then you come to the podcast and brag about them. Well, other than that just to close the subject, just to comment briefly that the United States this year 2011 was the country with more nominations, 13 packages from authors from the United States, followed by Poland with seven packages.
Actually I'm listing the ranking here that is sorted by points because what follows Poland is Germany with 11 packages. Despite they had more nominations that did not score so much, but this does not matter, what matters is that many authors of those countries are participating.
Then came Iran with six, the Netherlands with seven, Ukraine with five, Brazil with five, United Kingdom with six, Turkey with three, France with four.
Well, kudos to all the authors of these countries and others that we did not mention but certainly had a great number of contributions. I hope all can continue and submit more packages this year.
Well, other than this, I just would like to make just a brief comment regarding the interview of Richard Kaizer, as usual I invite authors, the top author that was nominated for the Innovation Award, to come to this interview, and other than that there is a big prize, well, it's just symbolic, which is basically an elephant, the PHP elephant, which is a plush toy and it will be sent to Richard as a symbolic prize for being the great winner of 2011. Actually this year...
Ernani Joppert: Symbolic but very, very...
Manuel Lemos: Appreciated I hope.
Ernani Joppert: Yeah, yeah, exactly.
Manuel Lemos: And what I wanted to mention is there is a slight change this year, in the past years you used to send an elephant, it was based on the design of Vincent Pointier of France, that he had this idea of using an elephant as a symbol of the... as a mascot for PHP.
And what happened differently this year is the company that used to produce these elephants for some reason are not being able to deliver them. I don't know if they are still producing them or if they are producing and they do not have anymore elephants to send.
I have talked with them for several months, and at a certain point they stopped replying, so I don't know if they are still open, the company, or for some reason the employee that was taking care of that has left.
Ernani Joppert: They could at least have told you, right, because you rely on those.
Manuel Lemos: Yeah, and this is a bit...
Ernani Joppert: And thankfully the PHP Classes users are aware of this, if they aren't we are trying to let them be aware of this, it's not your fault.
Manuel Lemos: Well, I'm sure many of them are looking to buy these elephants, and if the company that is to produce them is not to do that anymore it's sad, that's an unfulfilled demand, but the PHP Classes site would not hold back the winners that are entitled to these elephants.
And so this year what is different is that I decided to take care of the production of elephants myself. It is not going to be the original elephant designed by Vincent Pointier, there's nothing wrong about it, it's just that in 2010 there was this design contest that the site organized, and the winner, winning design, actually included a new elephant.
It's a bit different, some people seem to like it more, it's also a cute elephant, and so I had to seek a different company to produce the elephant. And the first prototype already arrived, it's not yet good enough, it still needs work to look as faithful to the original elephant designed by Ifat Amit from Intergraphic Designs, that won the design contest, to be as faithful as possible.
Ernani Joppert: So another good motivation, right?
Manuel Lemos: Yeah, and actually since I'm already taking care of the production the good news is that I will be able to order more elephants, and faster, so hopefully... I have not yet decided what I am going to do, but hopefully I'll be able to send more elephants to not just the year winner but probably other authors that send outstanding contributions. These elephants are not exactly for sale, that was not the purpose, just for them to be a symbolic prize.
Ernani Joppert: Which makes it harder to get.
Manuel Lemos: Well, actually the idea was not to make it hard to get, it's a bit complicated process to take care of the production, so I cannot spend too much time on this. So I just produce a good batch and send them out to whoever is entitled, but I'm not going to tell much about this, but I certainly intend to send some to other people that have been helpful to the PHP Classes site somehow, not necessarily just authors, but people that have been useful to the site and helped.
Ernani Joppert: Yeah. But the harder points I just wanted to put into observation here is it's not something that money can buy, it's only something that's contributing to the site that you can have, so it makes it harder to get it.
Manuel Lemos: Yes, that's the intention, although it's a symbolic prize it has a good meaning, a great meaning for whoever will get it, and well I hope this is another motivation for other people to continue to contribute.
And other than that I'd just like to close this topic just to mention that Richard Kaizer actually made a few suggestions about certain improvements that he would like to see, namely he would like the site to promote a better cooperation between different authors that will eventually cooperate and develop certain classes.
And this is somehow already possible because now the site makes it possible for developers to import packages for version control repositories like Git and Subversion and CVS.
So although that was not exactly the purpose, the developers that hope to have other authors to contribute directly to those repositories, they can just list in the related links section of each package what is the URL of the original repository so they can encourage other authors to contribute directly to their packages. So this somehow already addresses the suggestion that Richard made.
And he also commented about the PHP specialist forum that he feels that is not necessary because the site... there are other question and answer sites out there on the Web, but what I actually explained in the article in replying to his comments in the interview is that the PHP Classes site is going through lots of enhancements, and in the future it will have a section more like those question and answer sites that you see out there.
It's not meant to compete with them, it just rather have something integrated with the site and make it possible, for instance, one thing that sometimes is disallowed in those question and answer sites is because the moderators of those sites do not allow it which is, for instance, if I have a developer class that does something useful that somebody is asking how to solve and the class addresses the problem, you can promote the class and there is no problem about it.
And if go to those question and answer sites the moderators tend to ban users that sort of plug their work, and PHP Classes site there will be no such problem because it was created precisely with that intention, the developers plug their work, show their work and have their work being shared and have feedback on it. And if it will go through question and answer forums that is also a good idea to promote it, and in PHP Classes site there will be no such restriction on that.
And we don't have much time because this podcast has already been long, but I think you can comment on at least one class. Ernani which class would you like to comment about on JS Classes site?
Ernani Joppert: This was already commented on by you latest on, but I'm trying to summarize the year overall of the JS Classes sites, and the most impressive package to me was the HAAR object, it's from a Greek author and his name is... let me try to find it foo123.
Manuel Lemos: Yeah, I think he wants to be anonymous.
Ernani Joppert: Yeah, but it's very nice to see.
Manuel Lemos: I hope he just does not invade the site because he's anonymous.
Ernani Joppert: But, yeah, it's using some Viola Jones object detection framework, OpenCV, and it just detects certain types of features and images.
Manuel Lemos: Actually he also submitted a package to do the same in PHP Classes site.
Ernani Joppert: Yes, so this is where my vote goes, and thanks for providing this, and I'll probably be using it later on.
Manuel Lemos: Yes, this is very interesting, although it's basically an implementation algorithm from what I understood, I'm not a specialist on this, OpenCV is a separate program that generates some data structures that define values, parameters that are passed to this object to be able to detect certain shapes in the case there are already some data structures to support the detection of moths.
For instance, we have a picture, you can look at the picture, I mean the algorithm will look at the picture and it will be able to detect if there is a moth in the face of somebody that is on the picture, and this is quite interesting.
Well, on my part I would like to comment on a class again sent by Arturs Sosins, our top contributor of the JS Classes site, he's also a great contributor of the PHP Classes site, and I hope he continues to be.
But in this case I'm talking about Gestures, which is basically an object that does something very, very sophisticated, and probably one of the most impressive classes ever being published in the JS Classes site, which is basically to recognize gestures defined by shapes that you can configure.
If you are a developer you want to, for instance, detect if the user is using his mouse to draw a square or a triangle or some other shape. This object can listen to mouse events and detect when the user has drawn those shapes that you defined and invoke a callback function to tell you user has just drawn a square.
And what is most impressive is that the shapes are not hard coded. The shapes that it can detect are not hard coded. It can detect any shape that you define by passing some parameters of points, of edges of the shape, I mean vertex points of the shape, and this is very, very impressive.
Well, that's the list of a few classes that we have time to comment on in the JS Classes.
PHP Programming Innovation Award of January 2012 (55:51)
Manuel Lemos: Now finally we're going to move to the last section now that the time is almost ending, but we have still time to comment about a few classes.
The latest edition of the Innovation Award, the monthly edition that was basically of January, so the classes were nominated in February and voted by the users, in March the results were announced. Ernani which classes would you like to mention from those that were nominated that month?
Ernani Joppert: Yes, I picked one particular class from... it's basically it's from Iran, from an author in Iran, his name is Amir Keshavarz, it's very hard being a native Portuguese speaker to pronounce those names.
Manuel Lemos: For anybody outside Iran it would be hard.
Ernani Joppert: Yeah, yeah, but it seems to do a very good job in monitoring VMware ESX/ESXi servers, and with the world of cloud computing or multiple instances of servers this helps a lot to see if at least the instance is alive, the data amount, the data storage, to suspend, or shutdown or reboot the instance. And to me... and all this done through SSH which can also benefit if you understand the concept, you can pretty build your own cloud environment.
Manuel Lemos: Right, well, VMWare is quite popular among virtual server systems. And with this package it can help and many possibilities to control VMWare instance remotely via SSH as you mentioned.
And on my part I would like to comment on a package that also does something that is quite sophisticated named the Complexity Analyzer by Philipp Strazny from the United States.
And what this package does is basically to evaluate from the tests that you already have built for testing the behavior of functions of your classes, it can provide a summary of tests that you have provided and let you know which packages, which classes, I mean which functions of the classes still need tests, and actually it sorts them by complexity.
And all this done in a single package is far out, it's very sophisticated, and kudos to Phillip for this great contribution, I hope he can continue to send more sophisticated contributions like this.
Manuel Lemos: Well, unfortunately we do not have much time to comment on the others. We had a long program this time, commented on a lot of interesting PHP topics, and as well the PHP Programming Innovation Award that has its year edition results announced.
And we had the pleasure to talk with Richard Kaizer, the winner, and I hope he and all the others that have been nominated contribute to send more outstanding classes to the site, and we will always have the great pleasure to talk about them, so on my behalf that is all for now, bye.
Ernani Joppert: Thank you, bye, bye.