Author: Manuel Lemos
Updated on: 2014-12-04
Posted on: 2014-11-20
Categories: PHP Innovation Award, Lately in PHP Podcast
Listen to the podcast, or watch the hangout video, or read the transcript to learn why the nominated packages were considered to be innovative.
We comment only on past nominees to avoid influencing the voting results. This way we are only talking of packages published already in August. The nominees of August were voted on September. In October the results were announced.
You may listen to the audio recording, or watch the hangout video, or read the transcript below.
Animate page elements using Finite State Machines
|Emmanuel Podvin||33.33%||8||One book of choice by Packt|
|1||Google Maps Big Route Optimizer|
Get optimized routes between many locations
Get the Zodiac sign for a given date
|Pierre FAUQUE||33.33%||8||One downloadable e-book of choice by O'Reilly|
|4||Node.js Background Jobs|
Run background jobs using Node.js modules
|4||jQuery Lazy Load Gallery|
Plugin to show gallery of images loaded via AJAX
|4||Google Maps Big Distance Matrix|
Get Google Maps distance matrix for many locations
Shorten URLs using szort.us API
|4||jQuery Load Favicon|
jQuery plugin to load an image as page favicon
Award Winners by Author of 2014
Award Winners by Country of 2014
PHP Innovation Award Nominees of August 2014 (14:57)
PHP Innovation Award Rankings of 2014 (29:14)
Award Winners by Author of 2014
Award Winners by Country of 2014
Download Size: 28MB Listeners: 994
Introduction music Harbour used with explicit permission from the author Danilo Ercole, from 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.
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.
Manuel Lemos: Now, it's time to actually talk about the nominees for the Innovation Award of JSClasses.
Arturs Sosins: Or PHP. Which ones first?
Manuel Lemos: First, we talk always of JSClasses because we just want to open more space for JSClasses to be promoted, since it is a much less popular site than PHPClasses.
So, Arturs, which ones would you like to comment from August? There are, wow, eight nominees, many nominees.
Arturs Sosins: Let me try to share the screen if Google allows it.
Manuel Lemos: Yeah, we have to beg. Please Google, please Mr. Google, let me share the screen.
Arturs Sosins: Something like that. So, I don't know, do you see anything?
OK, the first one I wanted to mention is... It has an interesting name.
Manuel Lemos: If you can zoom...
Arturs Sosins: OK, let me try to zoom it. Better? More?
Manuel Lemos: No, it's fine.
Arturs Sosins: So, it's an interesting name. It's jQuery FSM, animate using Finite State Machines. Actually, not so complicated as it sounds because usually when you have an animations like define a movie clip probably or some timeline of the images and there are different animations like running, jumping.
And so, you are just looping in one animation and jump to another, and this one implements it in an easier way to, probably there should be an example, define states and from which states, animation can travel to the next state.
So, yeah, it's an interesting solution. What it does, it implements the things that's mostly jQuery animations, like fading and slide-down and stuff like that.
This class was developed by Emmanuel Podvin from France. He chose one book of choice by Packt for it. It is also a winner, great.
So, that's one of the ones I like. The other one that you would call probably somehow in PHP podcast, it was a bad thing, right?
Manuel Lemos: Yeah.
Arturs Sosins: Node.js or something.
Manuel Lemos: It's not the podcast. It is the scope.
Arturs Sosins: OK. So yeah, this class implements Node.js Background Jobs, that allows running background jobs using Node.js modules. It was developed by Thomas Bjork by Sweden. I don't know if he got something from... No, he did not request any prize.
Basically, what it does is that it generates a process on Node.js server, and you can connect to it through UDP or TCP and execute and retrieve information from them. So, it's like a parallel process to start as it... your server.
Yeah, basically it extends the object and provides the getsign, so you can get it on the sign in which are really simple object. But there was nothing like that before. The author was Pierre Fauque. I don't know, is it right?
Manuel Lemos: Fauque.
Arturs Sosins: How did you know?
Manuel Lemos: I think that's from my French lessons.
Arturs Sosins: Oh, you have French lessons. OK, so you...
Manuel Lemos: It's like many years ago but...
Arturs Sosins: So he's from France, and he got O'Reilly book. It seems books are really popular, Packt book and O'Reilly book.
Manuel Lemos: Yeah, books and IDEs. Editors.
Arturs Sosins: Editors, right, yeah.
And the last I wanted to comment was a package from David Castillo from Mexico, and he developed Google Maps Big Route Optimizer. You can get an optimized road between different locations.
It's actually much better if users would use the Demo tab to show their own package implementations. It would be easier. As you see, that you could define this.
Manuel Lemos: I think since it's a new feature, not every user got used to it. But at least for authors, as you may know, you get a big sign "Insert Your Demo Here".
Arturs Sosins: Yeah.
Manuel Lemos: But OK, whoever is listening, please send demos. It's much easier to show your packages.
Arturs Sosins: So from the road points, you can optimize them. You can get them optimized much by road, by distance, by time or by speed. Probably, there are some speed information on the Google Maps, available on it when it output the results.
David Castillo also did not request a prize. Why?
Manuel Lemos: Yeah, Just to comment that some authors are mailed and I send another mail. Please pick your prize because you're entitled to a prize. Even some authors do not want prizes because they are already having great fun without prizes. So that's awesome, but at least tell me that you don't want to skip to the next author so they can pick their prize.
I only wait one week because I cannot wait forever. The other authors in the ranking are waiting to get their prizes. But if, for some reason, you have not been requested to ask for a prize, please, you can do it later as long as the prizes are still available, which happened.
There was one author in JSClasses recently, "Oh, I was on vacation and I could not reply." OK, but he is still on time to pick his prize but he could not pick one prize that was already taken. That's the only problem when you take too much time to pick your prize.
So now, on my behalf, I would like to also talk about a few classes. Let's start from this one.
The first one that I wanted to comment is also from Thomas Bjork, a great contributor. He has been sending some very nice objects. I don't know if we can... I think we can't call them classes yet, only ECMAScript 6. So for now, this is an object that happens to be a jQuery plugin that can load an image and use it as a favorite icon for a page.
This is interesting because you can do many interesting things. I don't know if it is this page. No, it's not this object, but I'm not sure where I see it now. Actually, it's this object. It can load multiple images to create Favicon animations.
So it can create a nice effect. You can see on your... Well, I cannot see it here because there is no example. I mean, no demo. Actually, no demo and no example. But it would be interesting to show the animation happening in the bar.
So another package that I wanted to comment is one that is complimentary to the other one that you mentioned from David Castillo. So he sent two packages. You mentioned one, I'll mention the other. It uses the Google Maps API to get the distance matrix to many locations, because I think, yes, that's right, there is a limit of 25 locations that you can request for API call.
He implemented a workaround that lets you get the distance matrix from many more locations. This is great because you can compute routes that involve much more locations than this limit. So kudos to David Castillo for his package.
Finally, there was one last one that I wanted to comment in this case. One from John Diaz from Colombia, which is a jQuery plugin that can show a gallery of images but they are loaded dynamically via AJAX. Instead of pre-loading all the images like many galleries do, it uses AJAX request, so you don't overload your browser, loading many images at once, especially images that can be large and take too much memory.
Manuel Lemos: Now, regarding the Innovation Award ranking of 2014, so far we have Thomas Bjork that we mentioned. He's ahead with 4 packages and 15 points, then followed by David Castillo. We just talked about him, too, with 2 packages and 13 points, Pierre Fauque with 2 packages and 10 points. Then Andoitz Marmolejo is tied with also 2 packages and 10 points, then Emmanuel Podvin with 1 package and 8 points, Jimmy Bo with 3 packages and 7 points, and then several authors with 1 package and 5 points.
Now, by country, you can see that France is ahead. Thanks, not only to contributions by Pierre Fauque, but there are others like Emmanuel Podvin that are contributing 4 packages and 19 points, and so far be ahead.
It is followed by Sweden with 4 packages and 15 points, all of them from Thomas Bjork, then , Mexico with 2 packages and 13 points from David Castillo, and then, Spain with 3 packages and 12 points of several authors, then Italy with 3 packages and 8 points, Canada with 3 packages and 7 points, India, 2 packages and 6 points, and then several other countries with only 1 package and less points.
PHP Innovation Award Nominees of August 2014 (14:57)
Manuel Lemos: So now, we are going back to the Innovation Award of the PHP Classes. Arturs, which packages would you like to comment?
Arturs Sosins: Let me share the screen again.
So, the first package I would like to comment is quite an interesting one, which converts a MySQL database to Mongo collections, Mongo database. It's an interesting class because it's not so easy to do the job in the...
Manuel Lemos: Can you show us the package, please?
Arturs Sosins: Yeah, yeah, sure. Let me find where it was.
It's a package called PHP MySQL to Mongo and it was developed by Orazio Principe.
Arturs Sosins: Sorry, I'm bad at reading other names. He's from Italy.
As I said, it's really not maybe so trivial. I don't know how well he does it, but this underlying scheme is usually quite different, and he says he not only converts the database, but also recreates the records that you inserted and indexes.
So it's quite great for the web sites that want to transfer from SQL to NoSQL database due to maybe, I don't know, too much load on the server and for faster read and write.
Manuel Lemos: Yeah.
Arturs Sosins: This one is great. He got PHPStorm IDE license and was the winner of the Innovation Award. Kudos to him.
And the next one I wanted to comment is also not really a task. It's a PHP Zip Merge by Asbjorn Grandt from Denmark. And what the class does, it takes two zip archives together and without archiving them, merges them. It can be quite a complex task and as you see from the code, he made it as simple as append zip. So kudos to him.
He got one of the Zend Studio for that package.
Another package I wanted to comment on, Pure PHP Text Render, by AbiusX, interesting name, from Iran. This also has a demo. So what this package basically does is...
Manuel Lemos: There is the test.
Arturs Sosins: Yeah, I already used, tried it, tried to refresh it. So it converts the text to an image without using the GD library. We can see something. It's like the same.
Manuel Lemos: This one has a demo, that's why you can quickly show it without leaving the site, despite it is hosted in another site.
Arturs Sosins: So yeah, it's an image.
Next one is Tradukoj.com Translations API Bundle, which is a package that provides translation interface to translate text for framework applications. There's probably something integrated in the Symfony that helps.
This class was developed by Patrick JL Laso from the United States. He got one downloadable e-book by O'Reilly.
Next one I wanted to comment was Input Stream. So what it does is it transfers the data to the post or regular file uploads. This class was developed by Jason Gerfen from the United States.
So we can see example here. Basically, you require stream, you start the stream and then you get the processed data. It converted the file, so if file was sent through PUT, you can processed it as if it was sent by POST, so very handy.
Jason got one downloadable copy of Komodo IDE for it.
And one is PHP Code formatter, which is PHP code, developed by Alex Krash from the Russian Federation. Unfortunately, no examples or demos. We can try to see if there is a test. Yes, so, one original file and then check the expected file. Basically, what it does it reformats the code. It seems quite forward... OK, we can see here some discrepancies. And then it's more aligned. It's also...
Manuel Lemos: Yeah. Well, actually that package has one detail, it's that it has a part done in PHP and then I think that's the one that has a part, an alternative version of the code that is implemented as a C-extension. So, for those that need additional performance, that can install extensions and do the same as the PHP code.
Arturs Sosins: Yeah.
He got the one book of choice by Packt for this package. And I think that's it.
Manuel Lemos: Well, on my behalf, I also would like to comment on a few packages. Starting from this one, PHP Altcoin Bitcoin Explorer, which is basically a class that can access Bitcoin server, I'm not sure if this is the accurate name, what you call it, or maybe a peer, Bitcoin peer to perform several operations to manipulate Bitcoin currency.
So this is an interesting package. It's called PHP Altcoin Bitcoin Explorer, and this is by Lukas Mestan by the Slovak Republic. For that, he did not yet picked a prize, but it's never ever too late.
The next one that I wanted to comment is PHP File Array from tobytobs from Nigeria. This basically is a class that implements the ArrayAccess interface, so you can access elements in this array except that the actual values are stored in files. So this is an interesting solution to implement virtual arrays that are stored in files. This is a great package, too.
Other than that, there are several other packages that I would like to mention, starting from this one named PHP PingDom. Despite the name PingDom, this is not a package to access the API of the PingDom Web service.
It is a package that sends HTTP and ping requests to a certain server and checks if it is responding correctly. So you can sort of emulate the service of PingDom without using the Web service of PingDom. This is an interesting package developed by Pejman Ghasemi from Iran.
The next one that I wanted to comment is this one named Render Table by Martin Barker from the United Kingdom. He actually sent a class that allows to emulate the sort of tables but using just list items. It implements a certain tricks with CSS to assure that the columns can be aligned, and it can even hide columns. So this is an interesting package that allows you to implement tables with a tableless HTML in your page.
We had so many packages. Let me open all of them at once. The next one is this one, PHP XML Database Manager from Carlos Carvalho from Brazil. He implemented a package that did not seem innovative at first time, but it allows to import XML files into an XML database.
So it implements an XML database that has a structure of tables, records, primary keys and so on. Just like you have a relational database. Then, it imports the XML documents into it. So you can manipulate it, I think it's with similar queries, not exactly on the SQL but something that allows to query those database tables.
The next one that I like comment is one called PHP Sweepstakes from Chi Hoang that has been sending many, many innovative packages every month. He sent yet another innovative package, which is great.
It is a class that allows to calculate the days of events that are repeated periodically. So there are actually classes that did this, but it does something that the other package did not do, which is to consider holidays. So if you have a periodic event that spans over a holiday, this class is able to skip it. So it is very interesting.
Here it says that Chi Hoang, but I don't think... He's probably from China or something, and previously was in Germany. This month, he changed his country. It also made the Innovation Award rankings by country change in favor of France. Last month, it happened also with another author.
So I am considering having an option to let authors tell which country they represent regardless of the countries they live currently because I asked them why they changed their countries, and they said, "Well, we actually moved to those countries because we got better job opportunities."
But I think they originally wanted to represent their country of birth, so I'm planning to implement that option. Let's see if I can implement it until December, so it can already count. But I'll be in contact with these authors.
Anyway, moving on, I think this the last package of all 13 that were nominated this month, which is the Simple PHP SSAS XMLA Request. This is tricky because I had to study what are these SSAS XMLA requests.
It turns out that it is a product from Microsoft which is the SQL Server Analysis Service. I think it can process reports and manipulate data and cubes and so on, sorts of things very, very specific of that product and for that Guthierry Marques Neto from Brazil was nominated for the Innovation Award. So kudos to him for his contribution.
And with this, I think we mentioned all of them, right?
Arturs Sosins: It seems so, yes.
Manuel Lemos: Yeah, let's see if I'm not forgetting anything.
PHP Innovation Award Rankings of 2014 (29:14)
Manuel Lemos: Now, let's comment finally about the Innovation Award winners of 2014, first by author, individually. So Chi Hoang now representing France is ahead with 7 packages and 38 points. He's in pretty good shape to win the Innovation Award until the end of the year, but there are still chances for the others to win.
He's followed by Orazio Principe with 3 packages and 24 points, Andoitz Jordan Marmalejo from Spain with 3 packages and 16 points, Rochak Chauhan from India with 2 packages and 14 points, then Asbjorn Grandt with 2 packages and 12 points, and then several other authors with just 1 ackage.
Now, by country, we can see now that United States is in front with 6 packages and 46 points, but it is tied with Italy. So, by country, the competition is very tight. Italy has 7 packages and 46 points. And then, it is followed by Iran with 5 packages and 43 points, France with 9 packages and 41 points, Brazil with 6 packages and 29 points, Spain with 27 points and 6 packages, Russia with 3 packages and 23 points, India with 3 packages and 16 points, United Kingdom with 2 packages and 14 points, Denmark with 2 packages and 12 points.
The competition by country is still to be decided. And this is very, very interesting to see many authors, not just one like in some cases, but many authors are participating to win by country.
Arturs, are you following this? What do you think about this very tight competition, at least by author?
Arturs Sosins: Well, I think... At least by author? No, I want to comment on countries.
Manuel Lemos: I mean, by countries, exactly.
Arturs Sosins: As you see from the table, if for example, Iran now submits one package that earns them more than three points, they would lead and if there are three points, that would be tie between three countries. But I think the amount of packages also count, right? So with the same amount of country, with the same amount of packages, how would it be?
Manuel Lemos: Yeah, I guess a tie is a tie, by points.
Arturs Sosins: OK, then that answers my question.
Manuel Lemos: I hope there is not a tie because we all have to send many, many elePHants as prize, to... Well, in most case, they have to wait for the next batch of elePHants to be produced.
Arturs Sosins: I think there could be maximum of four tie teams, but let's see what happens.
Manuel Lemos: Yeah, well, chances are in the end somebody prevails because...
Arturs Sosins: That is one thing.
Manuel Lemos: There are four countries with more than 40 points. Chances are that things will get a bit unbalanced to one country or the other because they are countries that have been sending many more packages after that.
Well, if you look at the current nominees for instance from October, and we still have November and December, we still have three months to count. We have one from Iran, another from Germany, another from Argentina, from Ukraine, Serbia, Italy, France, another from Germany. Another from France.
Well, France and Germany have great chances to stand up because they have more competitors this month, but there is also a competitor from Italy. This is going to be a very tight competition.
All this is great because many, many innovative packages are being sent to the site and everybody is winning, participating. Not only is the value of the interest of the innovative packages, but developers are having fun, I think. What do you think? Are they having fun or not?
Arturs Sosins: Yeah, it seems so. And they have more and more packages to comment each month.
Manuel Lemos: Yeah, yeah. We'll have more trouble, effort to comment on them, but personally I don't mind; it just takes more time. And I hope we did not close people watching to this Hangout.
You need to be a registered user or login to post a comment
Login Immediately with your account on:
No comments were submitted yet.