PHP Classes

PHP and JavaScript Innovation Award Report October 2014 Edition - July 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)  


Viewers: 3

Categories: PHP Innovation Award, Lately in PHP Podcast

This is the October edition of the Innovation Award podcast hangout recorded by Manuel Lemos and Arturs Sosins 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 July 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.

Loaded Article


This is the latest podcast hangout episode on the PHP Innovation Award about the nominees of July 2014.

We comment only on past nominees to avoid influencing the voting results. This way we are only talking of packages published already in July. The nominees of July were voted on August. In September the results were announced.

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

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

1Javascript Function Profiler
Measure the time a function takes to execute
Tony L. RequenaSpain75.00%2
2JS and CSS Resource Loader
Load cached JavaScript and CSS from localStorage
Thomas BjörkSweden25.00%1One book of choice by Packt

JavaScript Innovation Award Rankings of 2014 (4:27)

PHP Innovation Award Nominees of July 2014 (7:33)

1PHP Vehicle Routing Problem
Compute routes of trucks delivering client orders
Chi HoangGermany37.93%7PhpStorm IDE personal permanent license
2PHP Image Based Login
Authenticate users using colored images
Alexandru OcheanaRomania24.14%6One copy of the Zend Studio
CAPTCHA validation using geometric shapes
Francisco del AguilaSpain13.79%5One downloadable copy of PhpED Professional
4Fuse Array
Manage arrays with read only properties
Thomas BjörkSweden10.34%4One downloadable copy of Komodo IDE
5PHP Function Profiler
Measure the time a PHP function takes to execute
Tony L. RequenaSpain6.90%3One downloadable copy of CodeLobster Professional
6PHP SPL File Find
SPL iterator to find files with different criteria
Ravi KumarIndia3.45%2One book of choice by Packt
6Bin String
Manipulate text with mbstring extension functions
Asbjorn GrandtDenmark3.45%2One downloadable e-book of choice by O'Reilly

PHP Innovation Award Rankings of 2014 (22:37)

Conclusion (24:30)


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

Watch the podcast video, subscribe to the podcast YouTube channel

Click on the Play button to listen now.

Download Size: 24MB Listeners: 512

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: Now, it's time to talk about a regular section on which we comment on the Innovation Award winners of, in this case, July. Actually those were voted in August, and then in September, the results come out. So, we can start talking about them. First, we're going to talk about the winners of JSClasses.

Arturs, which ones would you like to comment? There's actually two, so just pick one.

Arturs Sosins: I would comment about a really interesting component. So, when you execute your code, sometimes there are bottlenecks. It's working slowly and you don't know why, and you need a way to identify where is the bottleneck, which function is the one that slows the code down.

This package does exactly that. It profiles the function and measures its execution time, so you can the divide your code in this component and measure, trying to find out where is the bottleneck.

There is a simple example provided with the class. There are functions. We simply provide them to the profiler with the parameters we want to pass to the function. In Demo, we could see how it performs. So it started at specific times, and then ended at a specific time, and how long did it take for this function to execute.

So this kind of component really eases the task to identify the bottlenecks of the code. And the component was created by Tony L. Requena from Spain. Probably, you would know better how to pronounce the surname.

Manuel Lemos: No, that's great.

Let me switch here to the other package that I will comment. Starting the screensharing if it works. OK, the other package that I would like to comment, this one is from Thomas Bjork from Sweden. He has been a great contributor. He sent several packages. From the five that he has sent already, four were nominated to the Innovation Award.

OK, let me scroll it to the right position.

This basically is an optimized version of a component that could load JavaScript and CSS from remote servers. The advantage of this approach is that it uses the localStorage to cache previously loaded JavaScript CSS or even images, because once they are stored on the browser, next request they are needed, they will take no time to load, and this is awesome.

Somehow we commented about this in a previous JavaScript podcast, this possibility. It's great to see an actual component that implements this approach of caching of these assets in localStorage or SessionStorage, depending whatever is available on your browser.

So kudos to Thomas Bjork for his contribution. And for that, he was entitled to pick one book of choice from Packt.

JavaScript Innovation Award Rankings of 2014 (4:27)

Manuel Lemos: Now, I am going to mention about the rankings of the Innovation Award winners of 2014. So far, Thomas Bjork is leading as individual author with 4 packages and 15 points, and he is followed by several other authors like David Castillo with 2 packages and 13 points, then Andoitz Jordan Marmolejo with 2 packages and 10 points, and then several other authors with one package, some with more but with less points.

On the ranking in terms of countries for 2014, so far France is leading with 3 packages and 17 points. It is followed right after by Sweden with 4 packages and 15 points. Those are the same from Thomas Bjork. And then, Mexico, with 2 packages and 13 points, those are the packages of David Castillo. And then, Spain, with 3 packages and 12 points, followed right after by Italy with 3 packages and 8 points; Canada, with 3 packages and 7 points, and then several other countries with just one package and less points.

As we may see, the competition is heating up. It is interesting. Actually, the JSClasses site has somehow been affected by Google Search ranking updates in the last two years, and that sort of brought less users to become potential contributors.

The number of contributors that had been sending packages, at least in the first months of the year was very slow. The increase in packages was very slow. But since, I think, June, Google did an update on the search rankings and the traffic to JSClasses improved a lot, and that allowed to bring many more packages.

As you may see below, I mean, actually, above, in the next month that we see here, I think it is August, we already see many contributions. I hope these contributions keep coming at this pace because at JSClasses, the potential is to grow a lot, and it just depends on the users to participate.

PHP Innovation Award Nominees of July 2014 (7:33)

Manuel Lemos: So given that, let's move on to the PHP Innovation Award. And talking about PHP, first I would like to make a few comments on several interesting scenes before we talk about the actual nominees.

First, there were a few glitches that were fixed this month. One, it was the fact that the site has considered at United Kingdom and Great Britain would be actually different countries. I know that to be accurate, it's not exactly the same thing, but in practice, the users from United Kingdom were being moved to state that they were from Great Britain.

So we could see on the rankings that United Kingdom and Great Britain would appear there as if they were separate countries, and that would change the rankings of United Kingdom as a whole.

So the problem was fixed. it was due to the fact that the list of countries that the site uses comes from the CIA World Fact Book and they considered Great Britain and United Kingdom as separate regions. Well, to be accurate, they are separate regions, but the actual users are from the same country. So, that was one issue.

Another issue is that the site, in reality, allows nominees, winners to vote on themselves. If they on a certain month, they go there on the voting page, they look at the winners, and they think that their own package is the one that deserves to win, they can vote on themselves.

But there was a glitch that prevented that to happen. That problem was fixed. So, if you are a nominee and you would like to vote on yourself, you can.

And this was a thing that was implemented to allow all authors get some votes. Because sometimes when there are many nominees, most people tend to vote on the same few and there are some nominees that do not get any votes. So, if they do not get any votes, they are not entitled to pick any prizes. So from now on, at least you can vote on yourself and increase your chances to get a prize.

Given that, now, let's talk about the actual nominees, actually winners, that were from July.

Arturs, which ones would you like to comment?

Arturs Sosins: The first one, I would like to comment on is something that really interests me. While in the university, I had written a research work about alternative ways of how to authenticate user, and about different interesting ways like using kick bot using rhythm of typing and stuff like that. And here, Alexandru Ocheana, from Romania, provides another interesting way.

Basically, upon registration, it generates the image. Yeah, here we can see that image. It generates an image that represents your registration, your account. And then by providing this same image, you can authenticate yourself. So, it's basically like a key card that only you have and you can authenticate using it. That's why I picked this package first.

For this package, Alexandru gets a Zend editor, right?


Manuel Lemos: Yeah, exactly. No, it's a Zend Studio editor, to be accurate.

Arturs Sosins: Zend Studio editor, OK, yeah.

The second package I would like to comment on is by Francisco del Aguila from Spain. While the most common CAPTCHA implementations are of making texts unreadable, unfortunately to both bots and users, then I usually try to follow what other interesting ideas, and one of the ideas is now provided by Francisco.

So what he does, he generates geometrical figures and inputs the number to them. And then, he provides the correct geometrical figure. So you need to input all the numbers that are in this provided geometrical figures. So it's something you need to figure out, and it's not unreadable text. It's much easier. And basically, that's why I liked it.

Francisco gets PhpED Professional editor. It was an editor, right?

Manuel Lemos: Exactly. ED is for Editor. PhpED is probably one of the oldest editors like Zend Studio. So, it is a great prize. Typically, the prizes that are picked by the first winners are IDEs, as you actually can see here. Like the five first prizes were IDEs... editors.

Arturs Sosins: Yeah, editors. That's right.

OK, another package that I wanted to comment on is by Chi Hoang from Germany. And it provides a way to compute routes, in the example provided for truck deliveries, so it's like logistics for truck drivers. You set up coordinates and it computes the route.

As we can see, this is the PHP file from provided coordinates. This is the result generated. So there are lots of combinations how this route can be fast and it provides most optimized ways that you do this for trucks. So it is a great application for logistics and delivery companies.

Manuel Lemos: Actually, that solution was... There was another package also nominated to the Innovation Award that provided a similar solution but it was a different approach, so this one was also nominated.

Arturs Sosins: I think that Chi Hoang also provided other packages related to geo-locations, so it's probably what he does best. And it's great.

Manuel Lemos: It's good, because every month, he sends us great packages that relate to geo-location and other topics. I'm going to comment ahead, but that is helping him to lead the Innovation Award, the rankings.

Arturs Sosins: Yeah, and he got PhpStorm IDE personal editor.


Manuel Lemos: Yeah, exactly.

Arturs Sosins: Editor is much easier to pronounce that IDE because I always want to say... Yeah.

Manuel Lemos: How to say it.

Well, on my behalf, I would like to also comment on a few packages. Let's comment about this PHP Function Profiler by Tony Requena from Spain. Basically, it's a package like several others that exist that allow you to measure the time that PHP code takes place.

But this one is a big difference because it can profile in the individual functions. It's somewhat different from many of the codes that exist, they rely on you to call the benchmarking class to take note of the time that it took to execute. And this one forks, the other way around. It's the, actually, class that calls the codes that you want to benchmark.

So kudos for Tony for his contribution. And for that, he picked one downloadable copy of CodeLobster Professional, which is also an editor. It is interesting that Tony has been one of the PHP developers that has been helping Spain to rank better, but we'll comment a bit about that ahead.

Other than that, I would like to also comment another package, nominated to the Innovation Award. It was developed by Asbjorn Grandt and it is called Bin String. It is to manipulate text using the mbstring extension.

This is interesting because PHP does not have a really nice and elegant solution to deal with Unicode text. And you need to rely on extensions like mbstring. But at the same time, we would like to use the original string manipulation functions.

So, depending on whether that extension is available or not, you would have to call one set of functions or the other. So Asbjorn provided a solution that wraps that decision in calling one set of function or the other in the class. And then, you just call the class and you don't have to put any conditions in your code. So, it's a much nicer solution for this problem of localization.

And for this contribution, Asbjorn got a prize which was an O'Reilly book. O'Reilly are type of prize that is picked very, very frequently.

Arturs Sosins: You know what they say, if you don't know what to give to someone as a present, give him a book.

Manuel Lemos: In this case, it is more like a downloadable book. It's even easier to give, although it's not physical. But O'Reilly books are often very good, and they are very popular.

The next one that I would like to comment is again by Thomas Bjork, which is also a contributor of JSClasses, as I mentioned before. And this time, he submitted a class that works as an object, an array, but it allows you to set properties that are read-only.

So if you want to pass an array to some code that you don't want it to be changed, this package implements an array wrapper that throws exceptions if some application attempts  to change the values. This can be interesting to prevent some bugs.

And for this, Thomas picked one downloadable copy of Komodo IDE editor.

And then, finally, the last nominee that I would like to comment, the last, but not the least, is an interesting approach to find files but using SPL iterators.

Arturs Sosins: What is SPL?

Manuel Lemos: SPL is... You don't know SPL? Well, I would not blame you, but personally I do not use it, but some people sort of like the standard template library of C++ and implemented it... something inspired on C++ for PHP.

So, basically a bunch of classes that you can hack for different purposes. One of them is iterators. So if you have a set of values that you want to iterate, for instance, a list of files in the file system, you can use iterator to retrieve one file at a time.

This solution that Ravi Kumar implemented implements a means to search for files matching a certain criteria, and instead of some complex class, implemented it as an iterator. So you call that object and pass some parameters, it search for a file and only returns the files that matched the criteria that you have given.

This is an interesting solution that Ravi Kumar from India provided. For that, he picked one book of choice of Packt. Packt also publishes very interesting books. So it was a great prize choice.

PHP Innovation Award Rankings of 2014 (22:37)

Manuel Lemos: Now that we've covered all the winners, let's talk about the current standings of the Innovation Award rankings for 2014 in PHP. Currently, the rankings had been evolving a lot because many, many packages had been submitted. The current ranking that show already include the winners of August. So those are the ones that we are going to mention next month.

So far, Chi Hoang from Germany is leading individually with 6 packages and 27 points. It's like he sends one new package a month, and since he tends to send innovative packages intentionally, so he's really participating in the Innovation Award, not just by occasion but...

Arturs Sosins: Consistently.

Manuel Lemos: Yes. He really wants to win the Innovation Award. It's great because he'd been sending some very interesting contributions. Now, he's leading. But falling right after him, Orazio Principe from Italy with 3 packages and 24 points. So he's following him right behind, despite he submitted only half of the packages.

And then in third position is Andoitz Jordan Marmolejo from Spain with 3 packages and 16 points, then Asbjorn Grandt from Denmark with 2 package and 12 points, and then, several authors with just one package but less points.

By country, this seems to have changed a bit because of a detail there. There was user that, I think it was Patrick Laso, he formerly said he was from Spain, but now he says he's from United States. Probably moved there recently.

So with that he switches all his points to United States, which formerly would have gone to Spain. So this is an unusual situation but it's totally legal. It was a not a trick. It was something that happened.

But still, in  the ranking, Italy is leading with 5 package and 34 points. It's a bit ahead of United States and Germany that are now tied in the second position with 27 points. United States has only four packages, Germany and Spain with six packages.

Then, right behind them, there is Iran with 3 packages and 26 points, then, Brazil with 5 packages, 25 points. Then, Russia with 3 packages with 23 points, and then, there is United  Kingdom, Denmark and Romania with two packages and less points.

Now, you can see that United Kingdom is showing up on the ranking, thanks to coalescing of the points from Great Britain, which in the end would be from the same country.

This is the ranking considering the winners of August, although there are still four months to be considered for the Innovation Award ranking of 2014. I think there is still great chances of this rankings to change. What do you think, Arturs?.

Arturs Sosins: Sure, as we're seeing before then, some countries are suddenly popping out and then going down. It changes constantly in every month.

Manuel Lemos: Yeah, I think it is great because, thanks to this Innovation Award winners contest competition... Well, it's an healthy competition. It's not really people are beating each other. Each user participates individually, so they do not sort of fight other users directly. They just try to be their best.

And so far, this has been contributing to great submissions. Actually, recently, typically, at the beginning of the month when the Innovation Award results are announced, there is a mailing that goes out telling each author how they rank and how their country is standing in the rankings, and they feel motivated to participate in this Innovation Award.

Right in the days that followed, there is a surge of packages. I think the record that I got so far is like 24 packages in the queue. And this has been giving me a lot of work because I need to make an effort to approve them, the packages, faster so the authors do not have to wait, to watch for the package to be approved.

But all this is positive. It's a lot of more work to me but I do not mind. It has been a great initiative and I hope it continues to be so, because everybody is winning. The authors are getting more exposure to their work.

They are also having fun because they are sort of collaborating with the other developers from the same countries, in order to make a better performance for the country to eventually win the big prize by the end of the year. This has been very exciting, and I think it continue to be so.

I'm not going to comment much about what will happen in the next weeks. There's a new big feature about to be launched. I'll get back to that next podcast, but all that will foster further the Innovation Award because it will give ideas for new packages to be submitted. But I'll get back to that next month.


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

1,613,993 PHP developers registered to the PHP Classes site.
Be One of Us!

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)