PHP Classes

PHP and JavaScript Innovation Award Report September 2014 Edition - June 2014 nominees

Recommend this page to a friend!
  Blog PHP Classes blog   RSS 1.0 feed RSS 2.0 feed   Blog PHP and JavaScript In...   Post a comment Post a comment   See comments See comments (0)   Trackbacks (0)  

Author: Manuel Lemos

Posted on:

Categories: PHP Innovation Award, Lately in PHP Podcast

The Innovation Award is an initiative that aims to distinguish developers that publish innovative packages since 2004.

Starting this month, Manuel Lemos and Arturs Sosins are recording a dedicated video hangout and audio podcast to comment about the outstanding features of all the past month nominees and winners PHP and JavaScript packages, the prizes that the authors earned, starting with the nominees from the month of June 2014.

Listen to the podcast, or watch the hangout video, or read the transcript to learn why the nominated packages were considered to be innovative.


The PHP Innovation Award is a monthly initiative started in the PHP Classes site in 2004 with the goal to distinguish authors that publish innovative packages.

The JS Classes site is the brother site of PHP Classes. It was started in 2010. In 2013 it was also started the JavaScript Innovation Award with the same goal of the PHP Innovation Award, except that it distinguishes authors of innovative JavaScript packages.

Usually some of the winners and nominees of the awards mentioned in the Lately in PHP and Lately in JavaScript podcasts.

Since those podcasts can only comment on a few packages to not time too much time, starting this month there will be a whole audio podcast and video hangout to comment on all nominees of a past month.

You may listen to the audio recording, or watch the hangout video, or read the transcript below.

On this first episode we talked about the nominees of June 2014. We comment only on past nominees to avoid influencing the voting results. That is way we are only talking of packages published already in June. The nominees of June were voted on July. In August the results were announced.

JavaScript Innovation Award Nominees of June 2014 (0:20)

1jQuery Contextual Menu
Show a context sensitive menu help plugin
Daniele CrucianiItaly50.00%2One downloadable e-book of choice by O'Reilly
Send server requests via Websockets, AJAX or XDR
Jason GerfenUnited States50.00%2One book of choice by Packt

JavaScript Innovation Award Rankings of 2014 (5:31)

PHP Innovation Award Nominees of June 2014

1Unified Archive
Manage archives in the ZIP, RAR, TAR, GZ formats
wapmorganRussian Federation27.27%9PhpStorm IDE personal permanent license
2PHP Online Help System
Get site help topics from file defined with macros
Mark Cole22.73%8
3PHP Nearest Neighbor
Find nearest neighbor of a set of location points
Chi HoangGermany13.64%7One copy of the Zend Studio
3PHP Solr Client
Index and search content using a Solr server
Enrico AnelloItaly13.64%7One downloadable e-book of choice by O'Reilly
5PHP Push Advert
Display ads on pages that self-update regularly
Er. Rochak ChauhanIndia9.09%5One downloadable copy of PhpED Professional
6PHP Price Calculator
Calculate prices using arbitrary precision math
Sergii PryzUkraine4.55%4One subscription to the PDF edition of the PHP Architect magazine
6Prefix Converter
Convert a number to a string appending a prefix
Alex F. BustosColombia4.55%4One downloadable copy of Komodo IDE
6Magic PHP Auto-Instantiator
Include and create objects with a single command
Andoitz Jordan MarmolejoSpain4.55%4One book of choice by Packt
Generate PDF reports of links in Joomla content
Josť Filipe Lopes SantosPortugal<1.00%1

PHP Innovation Award Rankings of 2014 (22:08)

Conclusion (24:30)


Listen or download the podcast, RSS feed and subscribe in iTunes

Watch the podcast video, subscribe to the podcast YouTube channel

Read the podcast transcript

Click on the Play button to listen now.

Download Size: 24MB Listeners: 1143

Introduction music Harbour used with explicit permission from the author Danilo Ercole, from Curitiba, Brazil

View Podcast in iTunes

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.

Watch the podcast video

Note that the timestamps below in the transcript may not match the same positions in the video because they were based on the audio timestamps and the audio was compacted to truncate silence periods.

See the Lately in PHP podcast play list on YouTube and Subscribe to this channel there.

Read the podcast transcript

JavaScript Innovation Award Nominees of June 2014 (0:20)


Manuel Lemos: So we are now going to one final regular section on which we comment the Innovation Award winners, in this case, of June.

In June, the activity was sort of low. Everybody was paying attention to World Cup soccer, so only two classes were sent.

Arturs Sosins: Football.

Manuel Lemos: Yes. Football, soccer, it depends...

Arturs Sosins: On perspective.

Manuel Lemos: ...who prefers. Maybe there are some Americans that are listening and they say, "Oh, football, that thing that we play with hands. Oh, that's right. " It's soccer to make it obvious that you play with your socks.


Manuel Lemos: Or not.

Arturs Sosins: Boots.

Manuel Lemos: With some boots, of course, on top of your socks.

Arturs Sosins: We should call it booter.

Manuel Lemos: Yes, that's probably a more accurate name. But here, we're talking about JavaScript, so that is totally a side topic.

Arturs, which of these two components would you like to comment this month?

Arturs Sosins: I'm already trying to share my screen, but it seems a part of the... working, screensharing is not. Let me try it one more time. OK, now, it's opened something. Yup, it works.

The one I would want to comment is a class by Daniele Cruciani from Italy. He implemented a plugin to show context sensitive menu.

I don't know if it could be counted as something really special or not, but I really like his approach, easy approach. Let me show you the code a little. So, basically, you have some functions, and then you just name the options and parse this functions to the plug-in.

What it does, it creates the context menu with the options that you provided, and the specific function. The interface is pretty simple and easy to use. Of course, as he mentioned in his code, there are some things needed to be worked out and may not work in all browsers. But yeah, it's a great idea. That's why I really like it.

Daniele Cruciani received a book of O'Reilly for it.

Manuel Lemos: Yeah, that's great. Let me switch to the other screen here. I'm not sure if this is looking well, because I zoomed it.

Arturs Sosins: Oh, you mean, it's not responsive?

Manuel Lemos: I mean zoomed it in a different place.

Arturs Sosins: Oh, I see, it's you. OK, now you're out.

Manuel Lemos: OK, the other object that I'm going to comment, this one was sent from Jason Gerfen from the United States. It's called comm.js.

It's a component that seems to do something that seems common, which is to send AJAX request, Websockets request. But it provides a unified solution that also works not only with the Websockets and the AJAX, but also with XDR's XDomainRequest. It seems this is something for Internet Explorer or something, because I have never heard of XDR before until I saw this component.

Arturs Sosins: Yeah. All I know is XHR. Right?

Manuel Lemos: Yes. But it's different. It's XDomainRequest. I suppose this is for sending cross-domain requests because AJAX request do not work across domains, unless you are using, I think, AJAX 2 that with some permissions to enable that from the sender domain, I mean, receiving domain of the AJAX request. It's either that or I'm switching the order of the words.


Manuel Lemos: Anyway, this is somewhat unusual, so congratulations to Jason for this contribution. For that he picked a prize which is a book of choice that he picked from Packt.

Packt is also a book publisher like O'Reilly. They have many books that are specific to many topics that are not general topics, I would say.

JavaScript Innovation Award Rankings of 2014 (5:31)

Manuel Lemos: As for the Innovation Award ranking of June so far, and also considering the winners of July that were already announced, the positions have not changed so much by author, because only two authors that were yet very well ranked scored some points.

So the main leaders of the ranking by author remain practically the same. So far, Andoitz Jordan Marmolejo from Spain leads with 2 package and 10 oints. Jimmy Bo from Canada follows with 3 packages and 7 points, and then several other authors with 1 or 2 packages and less points.

By country, we can see that Spain is leading now, actually sort of increased its lead... thanks to points by Tony L. Requena from Spain in the July already. Spain so far has 3 packages and 12 points, followed by Italy with 3 packages and 8 points, then Canada, also, with 3 packages and 7 points.

Then, we see Sweden has already increased its ranking, with 2 packages and 5 points. And then, several other countries follow with one package and less points.

PHP Innovation Award Nominees of June 2014 (7:14)

Manuel Lemos: With this, we practically end the podcast on the part of JavaScript. But we are going to take the chance of this recording to start doing a separate recording, which in practice will be the same, on which we comment both on JSClasses and PHPClasses nominees.

This month of June, we have nine nominees. OK, let's take a look at this. Arturs, would you like to start?

Arturs Sosins: Let me share again. Share my screen here. Yeah, I'm sharing that right.

So first one I would like to comment is the class by wapmorgan. It's probably a nickname, who is from Russia. He created a really useful package that allows you to manage different archives like ZIP, RAR, TAR.

It's really useful if you know how to upload archives, its multiple files content and then you need to manage them like uncompress them to the files on the server. You would have to use a different library for each one of them and this manages it all together, so that's basically useful.

Manuel Lemos: Yeah,

Arturs Sosins: And wapmorgan received a PhpStorm IDE personal license for it. IDE, Integrated Development Environment. You know those languages have several editors.

Manuel Lemos: Over here we just call them editors.


Arturs Sosins: Like this. OK.

Manuel Lemos: I don't know why they put... Yeah. People use those complex names, but then, in the end, we just call them editors.

Arturs Sosins: Yeah, well, they're more than that. They can profile debuggers and stuff like that. But yeah, editors, OK, works with me.

So next one I want to comment is Mark Cole that implemented a way to parse some specific markup and generate an HTML code for that. Basically, it's more meant to be used as a help file generator.

I can try to show that now. I already have that open. So basically, you have a specific markup that can generate help files. Let me check.

So, Mark Cole is from Great Britain, and he did not select his prize. Interesting, but why?

Manuel Lemos: This one?

Arturs Sosins: Yeah.

Manuel Lemos: Well, that's good that you mentioned that, because sometimes authors either do not receive the messages, we notify them, so that they do not reply. Usually, I try to insist for a week, and after that I move on.

And in this case, I'm not sure. But sometimes, authors also said, "Oh, no, I'm happy to participate in this award, but I would not like to get a prize." And that's OK, it's always great that people participate, because they are having fun. Actually, I think it's awesome that they're already having fun with prizes or not.

But I'm not sure, I do not remember this one, because there are so many winners getting prizes that I'm not sure if it was the case.

Anyway, this one, Mark Cole, Mark, if you are listening to this, for some reason, you did not get the message to get your prize, feel free to contact the site. You may still get the prize if you want.

Arturs Sosins: The next one is Chi Hoang. This misleading name was the package PHP Nearest Neighbor, because it's basically an algorithm to find similar sets by comparing features. But in this case, it is a way to find the closest location from geographic points. So, it's like finding nearest neighbor in the real space, not at some dimensions in the machine learning stuff. But that's still an interesting package and can be useful.

Manuel Lemos: Yeah. In this case, it's that Chi Hoang seems to be working a lot with a geo applications, so he has a lot of geo components.

Arturs Sosins: And he's from German and he got a Zend editor, right?

Manuel Lemos: Yes.


Manuel Lemos: OK. Zend Studio, I think.

Arturs Sosins: Oh, now, it is Studio.

Manuel Lemos: No, Zend Studio is the name of the product, but it's an editor.

Arturs Sosins: Of the editor. OK, I got it.

The last one I wanted to comment is a package by Enrico Anello from Italy. Basically, it's a class that send HTTP requests to a Solr server which is full text search server.

So basically, it will do some full text searches. It usually store it in a separate server, Solr server in this case, and you can send HTTP request to search it, and wait for results.

You probably don't use a Solr server, Manuel, right?

Manuel Lemos: No. Well, I know Solr is based on Java which makes me very reluctant, based on that. Still, that is a reminder of a topic. The current search engine using PHPClasses and JSClasses site is not very good, because it uses a very old approach of crawling the actual page rather than going directly to the database. So I'm planning to switch it to something based on Sphinx.

Arturs Sosins: Sphinx, yeah. That's what I'm going to suggest.

Manuel Lemos: That's it. I don't know, did you try Sphinx?

Arturs Sosins: No, I haven't used it. So... like about it, that it's really simple.

Manuel Lemos: Yeah, Sphinx seems to be very flexible, it can work with MySQL databases or NoSQL database, or even flat files. It's still a server that you connect to it, and whatever it is using to index your content, it's transparent. Well, that's what I know from looking at the documentation, because I haven't tried it anyway.

It also allows you to use a sort of a SQL-like language, to query your indexed content, which looked pretty cool to me.

Actually, I've recommended it to somebody else that implemented it who was very happy, although, I did not try it myself. I was just not very happy with the idea to having another... putting a Java virtual machine just to run Solr.

Arturs Sosins: Yeah, I get that.

Manuel Lemos: It seems such a hog of memory that I feel discouraged. It doesn't mean that it's not a good solution, right?

Arturs Sosins: Yeah, exactly.

Manuel Lemos: It's a good solution as long as they have plenty of RAM.

Arturs Sosins: So, Enrico Anello got an O'Reilly book. Yeah, OK.

Manuel Lemos: Yes, that's great. Since O'Reilly lets you pick the book that you want, it's always a great prize.

So on my behalf, I'll comment on the remaining five packages starting from this one, PHP Push Advert from Rochak Chauhan from India.

He has been a great contributor. He has sent 52 packages, which makes him the top contributor in terms of number of packages. He also is currently one of the top users with more downloads.

Anyway, back to the class itself, it is used to display ads that self-updates somehow. It could be using a meta tag, and you can configure the period of time by which the ads are refreshed, and it also use cookies to prevent that same banners show again for some time.

Arturs Sosins: So, it's pretty similar to what mobile devices does, like AdMob and stuff like that.

Manuel Lemos: Yeah, I think that's... Well, although this is meant for HTML not really, I think, it's more to embed on actual applications.

Arturs Sosins: Yeah, yeah. It's a similar...

Manuel Lemos: Yes, exactly. So, he probably have to implement something for a project of his, and then he submitted the package to the site, which is great.

So the next package that I wanted to comment is another one and in this case, from Sergei Pryz from Ukraine. I hope all is fine in Ukraine, and he is not affected by the wars with Russia. I hope he also can continue to send interesting packages like this.

This one is for calculating prices. For instance orders on which you have multiple items of certain product. And then, it performs calculations. In this case, he uses arbitrary precision in math to avoid losing precision when you perform multiple operations that could result in loss by rounding.

So, this package is interesting precisely because we don't want to start losing money, just because the rounding errors propagate. So kudos to Sergii for his contribution,

And this case shows as his prize, one subscription to the PHP Architect magazine, which is a very nice prize. That is a magazine that has been in the market since the very early days of PHP.

I remember it was launched by Marco Tabini in the past. Nowadays, he handed over the business of PHP Architect to Eli White, who is a great well-known developer in the PHP community.

After this, I'm going to comment this time of another package that is somewhat related with the previous because it also deals with the rounding... Sorry, it's not rounding, it's converting and formatting numbers.

In this case, it provides a solution that is very flexible. Not only you can configure the prefixes, actually it's suffix. But they call them prefix, but maybe there are some confusion, but Alex Bustos from Colombia meant this to work in different languages, like for instance Spanish, which is his native language.

So kudos to him for this contribution. In this case, he chosen as his prize a copy of Komodo IDE, which is also another interesting editor.


Manuel Lemos: OK, moving on to the next prize, this time I'm going to comment about somewhat unusual package by Andoitz Jordan Marmolejo from Spain.

Basically, what it allows is to create objects and actually load the classes with a single line. Let me see if I have an example here.

OK, usually you do this, include the class and even using an autoloader. And then, you create the object and then call a function of that object.

Nowadays, you can just do this using a trig that implement it. You'll just paste a sort of a namespace here in your code.

This seems to cause a syntax error in PHP, but actually, it triggers an error handler that will do the magic. That's why he called it Magic PHP Auto-Instantiator.

So, this is a very creative solution. Kudos to...

Arturs Sosins: That makes it more like Java.

Manuel Lemos: Yes, exactly. Might be he also has to work on Java in college or for some other tasks and he prefers that. For this, Andoitz picked a book from Packt and that is a nice prize.

Now, moving on to one final package. This one is somewhat unusual. It's very specific. It's called ALGPDF. It was contributed by Josť Filipe Lopes Santos from Portugal.

What it does is basically to generally reports about the articles of content management system, in this case Joomla. So, you can now see what articles refer to other articles. It's probably useful to understand how, if I remove this article, are there any related articles that will get broken links? Probably that's the purpose of this component.

So, it's an unusual package. Kudos Jose for his contribution.

PHP Innovation Award Rankings of 2014 (22:08)

Manuel Lemos: As for the Innovation Award ranking for PHP, since it has many more authors contributing to this ranking, the positions seem to have changed a bit.

So, by author, we can see that Chi Hoang from Germany is leading so far, with 5 packages and 21 points, followed by Andoitz Jordan Marmolejo from Spain with 3 packages and 16 points. Then comes Orazio Principe from Italy with 2 packages and 11 points, then Roger Baklund from Norway with 3 packages and 9 points. Then there are several other authors with only one package and less points.

As for country, so far, Spain is still leading with 6 packages and 27 points, so thanks to the contributions of several authors. It's followed by Germany with 5 packages and 21 points. These are mostly all the packages of Chi Hoang, which alone has been helping Germany to rank in the second position.

Tied with Germany, there is Italy with 21 points, but only for packages. Then, Brazil follows with 3 packages and 17 points, Russia with 2 packages and 13 points, Romania with 2 packages and 10 points, then Norway with 3 packages and 9 points, Great Britain with 1 package and 8 points, India with 2 packages and 7 points, and Latvia with 1 package and 7 points.

So the PHP Innovation Award ranking for 2014 is getting quite hot with many countries and authors competing to see who will be the winner for this year. Let's wait and see what the coming months will get us in terms of evolution of this ranking.

Conclusion (24:30)

Manuel Lemos: With this, we reached the end of the list of nominated packages and authors of the Innovation Award.

I would like to comment that starting this month, we are going to have a separate recording just for mentioning the Innovation Award. And we'll mention them together, JSClasses and PHPClasses.

I would like to invite every other author that was nominated, even authors that were not nominated in this specific month to come and participate in the Hangout. And if you are watching this and would like to participate, just mail me at info at, so we can schedule a good time for everybody to participate so you can also come.

If you have nominated packages, it would be great that you could comment on your own packages. If you did not have nominated packages, you can also comment on other people packages and make this more interesting to present more opinions from different people.

So with this, we practically end this Hangout. I'd like to thank you, Arturs, for coming. I don't know if you had any final remarks. Anything that you wanted to mention?

Arturs Sosins: There are some interesting developments here. It's quite possible I'll be back in JavaScript world pretty soon.


Arturs Sosins: Yeah, we could probably discuss it more on the next podcast. I could tell about it more when I get more details.

Manuel Lemos: Yeah, it showed that at least both in JSClasses and PHPClasses, there had been lots of good contributions, not only in quality. I'm talking about the nominees of the Innovation Award, but also in quantity.

I have long queue of packages to approve. As you may understand, packages have to be reviewed just to understand what they do, so I can elaborate clear description. And that takes time, that's why I cannot approve them all at once.

So I hope those authors that have packages in the queues, please be patient, they will be approved as soon as possible. So keep sending your package, the sooner, the better. The sooner you send them, the faster I can approve them, because they're entered in the queue.

Well, with this, we end this recording. On my behalf, that is all for now. Bye.

Arturs Sosins: Bye.


You need to be a registered user or login to post a comment

Login Immediately with your account on:



No comments were submitted yet.

  Blog PHP Classes blog   RSS 1.0 feed RSS 2.0 feed   Blog PHP and JavaScript In...   Post a comment Post a comment   See comments See comments (0)   Trackbacks (0)