Podcast playback, download, RSS feed and subscribe in iTunes
Podcast playback, download, RSS feed and subscribe in iTunes
Download Size: 35MB Listeners: 4450
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.
- Top active PHP User Groups
- PHP Doctrine project
- Doctrine ORM for PHP book
- Yahoo! Hack Day event
- YQL: Yahoo! Query Language
- Google Developer Day event
- PHP Professionals directory
- The latest PHP Jobs
- PHP Programming Innovation Award winners of March 2010
- Article: PHP Developers are switching to Google Chrome
- Plans for Firefox 4
Introduction to the podcast and the host Manuel Lemos (00:21)
Introduction of the co-host Ernani Joppert (04:08)
Keeping PHP User Groups alive (06:53)
Introduction of the guest Guilherme Blanco (14:36)
Getting great PHP jobs and the PHP professionals directory (19:52)
Yahoo HackDay and YQL (24:20)
Google Developer Day (27:20)
The PHP Doctrine project (33:08)
Innovative PHP classes of March 2010 (49:12)
PHP developers switching to Google Chrome (56:26)
The good and the bad of PHPClasses according to Guilherme Blanco (1:09:05)
Introduction to the podcast and the host Manuel Lemos
(00:21) Manuel Lemos: Hello, welcome to the first show of the Lately in PHP podcast. I am Manuel Lemos, the developer of the PHP Classes Repository site.
First a small introduction about myself. I am originally from Portugal but I moved to Brazil in 1998, almost 12 years ago, for family reasons, not really professional reasons.
By the way since my mother tongue is not English, I would like to apologize in advance if my English is not clear enough.
Anyway, I started working with the PHP in 1997 and PHP 2 beta days. And for many years I programmed in C. So PHP was the fulfillment of a dream of having a C interpreter, so I would not have to wait for compiling my code to try the results. Then it was funny doing it all in procedural code using mini-SQL as relational database.
(01:38) In 1998 PHP 3 was released and it introduced the basic object-oriented support in PHP. In 1999 I created the PHPClasses site as a means of distributing my object-oriented classes.
Later in 2001 many of us decided to take another route in life because we were laid off due to the burst of the dotcom bubble. And coincidentally my son was born in that year.
So I decided to turn PHPClasses site into a business so I could dedicate full time working from home. Fortunately it worked reasonably well. So I'm launching yet another initiative under the PHPClasses site umbrella, which is this podcast.
For years I've been willing to create a podcast like this but I was reluctant to do so. It takes a lot of work and time to make it happen. Many podcasts start and then die precisely for that reason.
Now I decided to do it because it is important to give PHP developers up-to-date about what is going on in the PHP world in general and specifically in the PHP Classes site.
(03:12) For now the podcast has no sponsors. So the return on the investment for me to make this podcast will be obtained talking about interesting content and features that is made available in the PHPClasses site. I have some great news to talk about in the upcoming programs, so stay tuned.
Anyway, the main theme of this podcast is PHP, what happened lately in the PHP community and Web development world in general. The podcast is expected to happen at least once per month in the beginning of each month. So this is the first episode. So let's move on to the actual show.
Introduction of the co-host Ernani Joppert
(04:08) Anyway, I will not be alone hosting the podcast. I have invited a longtime friend, Ernani Joppert. He gladly accepted my invitation to co-host this podcast which is great because a single-person podcast is usually monotone and boring. So hello, Ernani. How are you doing?
(04:30) Ernani Joppert: Hello, Manuel. Thanks for inviting me. I'm really glad to participate here. Just to introduce a little bit of myself. I have been working with PHP for a long time. I had, due for professional reasons, to move on to other languages and to be more holistic on the architect role.
But PHP is a very power language and I tried to keep myself up-to-date. And it has been a pleasure to be here and to be invited by you and to co-host this podcast with you. And this will also promote myself by having the greatest overviews and be able to talk about business, entrepreneur activities and the whole Internet in general.
So I really thank you for this invitation. And I hope to be here at any time that you are willing to promote this podcast for future episodes.
Manuel Lemos: OK, thank you for accepting the invitation to host this podcast. I would also like to thank you for helping to choose the podcast intro music. It was nice from the author to authorize the use of the tune. And I don't know if the audience of the site will appreciate the type of the music. But I would like to send kudos to the author for such a nice beat. But let's move on to the actual podcast.
(06:16) So you said that you are not working with PHP now? Why did I invite you? Just kidding. I know you went to move to another language because you wanted to pursue different goals in your career. But it's always great to have in the show a person that has different views of the world, not necessarily from the viewpoint of the PHP developer.
Keeping PHP User Groups alive
(06:53) Well I would also like to mention a bit when I've met Ernani. I met him many years ago when I was using PHP. He was also using the PHP in his work. I encouraged him to create the PHP-SP, a PHP user group in São Paulo, Brazil. São Paulo is a large city with over 12 million inhabitants. So I thought it deserved to have a good PHP user group which did not exist then.
However, Ernani got busy and had to hand it over to other people like Jonas Raoni and Marcelo Toscano. Marcel Toscano is also a good friend. He started the site phpsp.org.br with the help of Pablo Sánchez, who is also a great friend and PHP developer of Brasília, the capital of Brazil. And Pablo helped to register the domain because it ends in .org.br and it is restricted to certain non-governmental organizations.
Then the user group of PHP-SP was handed to other people that carry on the group until today. This fact is I think important to talk a bit about the task of leading user groups. It usually is a hard task and it takes a lot of time and dedication.
(08:44) Ernani Joppert: Yeah that's true.
Manuel Lemos: Right. So it is important to keep the user group leadership so the group will never die. That can only happen if groups keep attracting new members.
That is the main reason why I created in 2004 the PHP user groups directory in the PHP Classes site. That directory keeps leading the new members to the groups.
Once the users log in in the PHP Classes site, the site shows the active user groups listed in the map right below the welcome message. There is a Google map with pinpoints for each of the active groups. And that same page invites the users to join one of the existing groups.
Meanwhile early this year I went further and created worldwide ranking of PHP user groups. The idea is also meant to give more visibility to the groups especially those that are really very active. Thus making those groups that are dead, or not really user groups, or something that somebody tried to start and did not go well, they will become less visible.
(10:23) So if you belong to a user group, just go to the phpusergroups.com, which is a site that I created with this information from the PHP Classes user groups directory, the ranking of the most active PHP user groups that were registered on the site.
There you can click on the link of your country to find the user group that you belong to if you belong to one, if you participate in the activities of the group. And then you click on a link near the user group entry that says "I am a member".
Once you do that, you are led to a page to tell that you are a member so the site can count you as an active member of the user group. If you do not have a user group yet, you may want to start one. There is a link there to submit to your user group.
So this is one idea that I had to improve the visibility of the group. Ernani, what do you think? Could initiatives like this help PHP user groups to keep a good number of members active, so they do not die?
(12:03) Ernani Joppert: Yes. By the time I was involved in the PHP-SP user group, we had a very healthy day-to-day solution of problems. And everybody was involved in discussing the latest technologies and keeping up-to-date and trying to help newcomers.
So this is really beneficial and helps people who are pretty much starting their career. It assists these people to understand developing Web applications can start from one age to any age.
I guess user groups try to focus on professionalism. And by the time I was involved there, I got a lot of experience on this situation. How should I behave under a company getting some feedbacks about pay rates? And what kind of knowledge should I have if I would start working for a company with the size of let's say, a very big company? So I guess it helps a lot and it assists everyone.
So I recommend if you're willing to learn PHP to get together with a community of pretty much knowledgeable people and not very expert people related in the subject.
(13:47) I guess a user group is a very positive place to discuss your intentions and the situations that you want to achieve within your own personal Web page.
So I guess it's very broad. And it can assist a lot of people willing to learn either from scratch to get the situation that is happening and eventual issues that they may be facing. So this is a lot of people with a lot of problems. And I'd really like to encourage everyone to participate within the regional user group.
Manuel Lemos: OK that's the idea. But let's move on with the podcast.
Ernani Joppert: Yeah sure.
Introduction of the guest Guilherme Blanco
(14:36) Manuel Lemos: In every show intended, I guess invited to come and talk about his work and his activities in the PHP community. In this first podcast, I invited Guilherme Blanco who is an active developer of the Doctrine project and recently joined Yahoo as a software engineer. Blanco, how are you doing?
(15:05) Guilherme Blanco: Hi, Manuel. Thanks for the invitation. Also, Ernani, thank you. I thought that you had forgotten about me.
Manuel Lemos: No, not really.
And finally I joined Yahoo this year, two months ago. It's really nice. The career there is really nice. If everybody is trying to work in a good company, Yahoo is definitely a very good company to work for.
They have some events namely Yahoo Hack Day which happened recently here in Brazil two or three months ago. They tried to group developers to develop new applications, based on the Yahoo platform, mainly YQL and other related libraries that Yahoo provides as Open Source projects. And that's a very good event that everybody should join, really.
(16:52) Manuel Lemos: Yeah, that's good to know.
Guilherme Blanco: I think also that Yahoo sends job opportunities in your website. I think you can comment about that better than me.
Manuel Lemos: Yeah. First I also would like to comment that Blanco is also from Brazil. But don't worry in the future I intend to invite guests from other countries, not just people from Brazil as in this podcast.
It is interesting to know about your move to Yahoo. So how are you doing there? Is it something that is an already satisfactory opportunity that you got or you are still learning how to enjoy the job there?
Guilherme Blanco: Actually Yahoo works mainly with PHP. So I'm quite honored with the opportunity. So my daily work is very interesting. Sometimes I have to learn new things mainly related to how complex is the enterprise environment. I mainly worked all my life in very small teams. For big companies with very small teams don't be affected too much by all the enterprise environment that is really needed for huge companies.
(18:36) But let's get back to myself. After I switched to a certain work professionally in 2005, I really enjoyed working with Open Source projects. So since 2003 I was firmly a user interface developer. I worked with Open Source projects starting with Visual Desk in 2001 until 2003.
And then in 2007 I joined Doctrine, that I hope I have an opportunity to talk about later. It's what I mainly work for in my spare time. But I also try to help in the Zend framework and for other communities.
Manuel Lemos: Yes, that's interesting to know about your multiple activities in the PHP community. I think you are glad to have a great job at Yahoo, so it seems from what you tell me.
Getting great PHP jobs and the PHP professionals directory
(19:52) By the way talking about great jobs, as you may be aware there is a job section in PHP Classes site that is getting more and more interesting PHP jobs every day from many countries either to work locally in the companies' countries or to do remote work.
It's true, as Blanco mentioned, that there are opportunities from many companies that have been posted there, including from Yahoo. The PHPClasses site sends e-mail alerts to PHP developers that they've joined the PHP professionals directory, which is a separate section of the PHP Classes site under the URL phpclasses.org/professionals.
So even if you already have a PHP job, you are free to join the PHP professionals directory, so you can get alerts about more interesting jobs. So you can eventually evolve your career while you keep your current job where you are.
(21:10) As I as mentioned, there have been jobs posted from well-known companies such as Yahoo as mentioned, Panasonic and Nokia. Actually there is I think still a job opening from Nokia in the site. But this is just to mention a few well-known companies.
If you are from a company and you have job openings in your company, feel free to post your jobs here. There are options to post jobs for free or paying a fee if you have a certain urgency to get candidates to fill the job position.
The good thing about this service, in my opinion, for companies that want to post jobs, is that the site automatically matches the job requirements with the PHP developer capabilities before he applies.
The site looks at the capabilities of developer that he has mentioned in his professional profile and sees if they are sufficient to apply for the job. If the developer capabilities are not sufficient for the job, the site does not allow the developer to apply.
This prevents the company to be flooded with resumes from candidates that will not be able to take the job. And so, with this filtering, it will avoid the company to waste time reviewing resumes of non-qualified developers.
(22:58) Also if you are a recruiter, the site provides significant discounts for purchasing 10-pack job credits for posting urgent jobs. As I mentioned if the jobs posted there are not really urgent, you can post them for free.
Other than that, I'm working on an API that will let recruiters or other job sites to post their jobs in this site. If you are interested to participate in the beta testing phase of this API, please mail me privately to info at phpclasses.org.
Anyway, everybody should help spreading about this job posting service. As more jobs are posted, more PHP developers can get nice jobs and progress in their careers.
You can help spreading the jobs page URL, which is phpclasses.org/jobs. And you can for instance like re-Tweet or post this URL in your favorite social network, so your friends and colleagues may know about it.
Yahoo HackDay and YQL
(24:20) But back to our guest, Guilherme Blanco, that is working with Yahoo. As he already mentioned the Yahoo Hack Day, if I recall correctly, Blanco, you joined Yahoo right when the event was happening in São Paulo. So how did the event go?
(24:48) Guilherme Blanco: I was unable to actually participate in the Yahoo Hack Day. I joined the Yahoo the week after the event. So I am not actually too comfortable to talk about the Yahoo Hack Day. But I know about a couple of people that went there and I know about the employees that were there.
It was a very good event mainly to help the platform that they have called YQL. That allows you to fetch and also insert and update data, remove data from services.
For example if you want to fetch for a video in YouTube related to some tag, you can just send an API request for the YQL in the YouTube tables. And then it will be able to return your related videos to that tag.
So this is the platform that they tried to advertise during the event. They got very exciting products, out of it. One I can even mention is related to the flights here in Brazil. If they have the departed, if they are delayed or cancelled. So we will just fetch from a table called Infraero and we're able to retrieve information about every flight here in Brazil.
(26:28) Manuel Lemos: Yes, it sounds like an interesting API. Well I read about it but did not have time to study that API.
Actually I wanted to go to the Yahoo Hack Day. This is an event that happens in several places in the world. And I wanted to attend this event edition that took place in São Paulo. I even registered but the confirmation of the registration came too late for me. And I could not book plane tickets to fly to São Paulo in time, which was a shame. But maybe next year hopefully I will be able to attend.
Google Developer Day
(27:20) Still this year I expect to go to also to the Google Developer Day in São Paulo like in the previous three years. This year it was not yet announced. Probably it was delayed because of the Soccer World Cup that will take place in South Africa. And when there is a World Cup, practically the whole Brazil will stop just to watch the games.
Usually the Google Developer Day happens in June. I think this year they postponed it but it is not yet announced. I enjoyed going to this event but I wish they was more open. For example the Google Developer Day should have presentations given by developers outside of Google, I mean in my opinion.
(28:15) Ernani Joppert: Yes, I agree with you.
Manuel Lemos: Yes, they could show applications of the Google APIs but real uses done by outside developers. That will be an opportunity to learn more about those APIs and how could we use them from PHP. But that did not happen. All the presentations are given by people from Google or their partners.
I gave that suggestion of having a space for outside developer presentations to Chris DiBona, who is the manager of the Google Open Source initiatives. He came last year to the Google Developer Day in Brazil. And he said that they tried to do that before. But the talks were not good enough from their perspective.
Maybe they should be more selective in picking outside talks from outside developers. But I think they still should make it happen for participation of outside developers that are willing to give nice presentations. What do you guys think of this idea?
(29:57) Guilherme Blanco: I think it's a very good idea mainly because we have lots of very good speakers, not only in Brazil but in the entire world that uses the Google API's daily and they can provide really meaningful information about all those open source initiatives that Google releases, Yahoo! releases and even Microsoft is releasing lately. The Azure and other, Silverlight, et cetera.
Manuel Lemos: Yes.
Ernani Joppert: Yes. And one point here is those events from either Google or Yahoo! or any other big companies, I guess they should be encouraged to happen in small pieces. I mean they could have a big event yearly. And they could promote some regional events within Brazil and within other countries.
(30:58) And I guess this is common outside of Brazil, I'm not sure, to familiarize with the environment that they provide because for some skilled users, this should be OK to adopt. But for newcomers it should be hard. Sometimes it's very hard to understand in how to apply.
And there is a lot of people from the blogging community who haven't gone to Web development but they don't have the necessary skills to let's say embed a widget from either Yahoo! or from Google into their blog.
And I guess that this should be really encouraged by any big companies that provide those services. And this event should happen in a shorter time frame, not only a big event within a year.
Manuel Lemos: Yeah. Actually me and Blanco have been invited to Microsoft, what is it called? Tech Days? Dev Days?
(32:05) Guilherme Blanco: The name of the event is Microsoft Web Developers' Summit.
Manuel Lemos: No, not that one, that one that took place in São Paulo.
Guilherme Blanco: Microsoft TechEd.
Manuel Lemos: TechEd, right. And they invited us to participate, not really to give talks but to participate in a round table where we could exchange ideas, give some help or orientation to PHP developers or people willing to work with PHP within the Microsoft platforms and products.
And it was interesting. It was not exactly what I had in mind. But it's still better than what Google provides you, almost nothing in terms of free opportunities for outside developers to present their work.
The PHP Doctrine project
(33:08) But OK moving on with our podcast and continuing to talk about Guilherme Blanco's work. You are one of the main developers of the Doctrine project. Can you give a brief introduction about the project for people that do not know anything about it?
Guilherme Blanco: Sure, I can give some intro on hand. Doctrine, in the first version was kind of active record and table data gateway, which are design patterns, very nice design patterns. And it provides a kind of persistent layer for PHP. It can be compared to Entity framework for .NET, Hibernate for Java, SQL Alchemy for Python.
So, it was formerly an active record implementation. They were at a gateway and rolled out the gateway. And now in the second version that we are releasing, we are releasing the first beta version, we split the project into actually three different pieces called Decomo which actually provides useful tools like annotation support for PHP, they're inexistent until now.
(34:33) We have the collections and other command line interface. Then we have other packs that's released the database abstraction layer, grew enough to be a separate project inside of the Doctrine umbrella.
And finally we have support for SQLite, MySQL, PostGRE, Oracle, DB2 and SQL server with even the recent support that was released by the Microsoft with the PDO SQL server extension.
And finally we have the object-relational modeling package. Actually it's a data mapper implementation. Mainly base it on the Java specification called JPA version 2. We actually implemented around 80% of this specification in PHP.
And we hope that in the near future we start the object document mapper which works with CouchDB and other NoSQL drivers like MongoDB, SimpleDB and so on.
(35:58) So we just released the first beta. We hope in second quarter of the we release the official version. And let's see how it goes. It's already up there and established, too. So I hope that it goes very well.
Manuel Lemos: So basically the main functionality is the object relational mapping? Or would you say that nowadays it is a bit different than just the ORM as the main functionality?
Guilherme Blanco: We're actually trying to leave the "Doctrine is only on object relational modeling tool" to actually become "Doctrine is a persistent layer for PHP". So we are trying to release only the relational database management system and start to support all the other variety that other languages support. So basically it matches the differences between a storage device and the language PHP.
(37:18) Manuel Lemos: So for people that have no idea what is object-relational mapping, I'll try to synthesize and you tell me if this description matches what the Doctrine does.
Basically it provides an API that lets developers treat information that is in database as if they are objects. So you can create an object and have it stored in a database table. And you can also do the opposite like retrieving information from the database and have access to it like any type of object.
Do you think this description matches what the Doctrine does? Or would you have a better description?
Guilherme Blanco: Doctrine does not stay with the object mapping back and forth from the storage device. So you may have a very complex domain model.
So you can actually deal with inheritance, you can actually deal with polymorphism, and Doctrine is able to map from what we call a POPO, which is "Plain Old PHP Objects" to a database, that can be a relational database or a document database. It doesn't matter. And so you can save and you can delete an object. That's what you have in your normal application.
(39:18) But we have another two, that's called DQL, which is an object query language that is similar to SQL, that you can actually fetch for objects like what you're doing in a database. So for example you have user objects you just select user from users. And then it will return for you hydrated objects from the database.
Manuel Lemos: OK. So does it work only with relational databases or does it also support non-relational databases like CouchDB or MongoDB?
Guilherme Blanco: For the core project, we only support by now relational database. But we already have other support from a MongoDB. It's already work in progress.
So you can just go to Github. I think there is in the Github repository. They have a MongoDB Doctrine 2 integration. So you can just touch for this support. And then you can work from the NoSQL driver, as we have now for MongoDB. And we'll later merge it obviously inside Doctrine, so we will release an ODM package.
(40:52) Manuel Lemos: OK.
Ernani Joppert: If you will allow me, this project Doctrine is very important in my perspective because most of the object-oriented languages that we know of, most of them you can see the growth of them by the adoption of database independence.
And with this project I feel that any user could benefit from an abstraction layer and provide tools like let's say WordPress or any other applications that could be widely spread and installed everywhere, being independent of specific database.
OK, PHP has several drivers for several databases. But they require an abstraction layer and it's not very well object oriented right now. And with these project, it is very important that you can stay on some object-oriented design patterns and focus mainly on providing a decent application following decent design patterns and delivering very widespread projects.
So I feel very tempted to adapt this within any application that I would develop within PHP.
(42:23) Manuel Lemos: Right. And what has been acceptance of Doctrine among the PHP community? I hear a lot about Doctrine. But do you think it has been embraced by a great part of the community or just those skilled developers that really understand all the advanced object-oriented approaches? What do you think? Do you think Doctrine is in a state that it is usable by developers that are not so advanced in their PHP?
Guilherme Blanco: Well I can say from what I can see that Doctrine has been adapted by all the major frameworks that are known in PHP, for example Zend Framework, Symfony, Kohana, Lithium, that's a recent project.
They are all embracing the Doctrine concept. And I really hope that Doctrine becomes the factory standard of object relational modeling tool for PHP at least in the future.
Ernani Joppert: Yes. And just one point here, just to put some observation. Google adapts a lot of languages within their applications. And we know that they use Python and they use Java within their cloud computing infrastructure.
And with the adoption of Doctrine, perhaps they can write some drivers easily to talk with the memcache or their implementation of it, their storage. And as they use Java Persistence API within the layer, I feel that with this approach using Doctrine, PHP could be widely adopted by Google.
And I feel that Google should focus also by promoting PHP within the AppEngine producs. What do you feel, guys?
(44:58) Guilherme Blanco: I know that Microsoft has some support for the PHP, Azure project that they released. And with the recent support to the PDO SQL server driver, I think that they were already merged inside the Windows Azure.
But I don't really know about the sales of the Google projects, the AppEngine. But I can say that by now Doctrine uses memcached for caching. It has three different layers of cache that can be used. But we have plans to also support memcached as a document storage, memcached key values. So that's what I can say by now.
Ernani Joppert: OK, nice.
Manuel Lemos: At least until proven to the contrary, Google is not really embracing PHP as I think they should. One other thing is to see the support of PHP in the AppEngine environment, that can be achieved indirectly using a PHP to Java Compiler. But that's not really a native support of Google to PHP.
(46:30) Ernani Joppert: Right.
Manuel Lemos: But if the Google is really concerned with that, that will happen sooner or later.
Ernani Joppert: Yes.
Manuel Lemos: Back to the Doctrine project, also I noticed that you published a book about Doctrine. How is it going? Is it selling well? Do you have a good idea of its acceptance?
Guilherme Blanco: It's very well accepted. It's actually the second edition of the book. So the first edition is already sold out.
This second edition actually mentioned all the support of Doctrine 1.2. So it has nothing related to the second version of Doctrine. It's actually what we are focusing on this year. But we have plans to write a book about Doctrine 2 and release at least by the end of this year.
(47:37) Manuel Lemos: That's good to know. Well I knew actually about the book. It is already released in the section about book reviews of the PHPClasses site, just waiting for anybody that has read the book to review it.
Ernani Joppert: Sorry, guys. What's the name of the book?
Guilherme Blanco: "Doctrine, Object Relational Modeling for PHP".
Ernani Joppert: OK. Sorry, I was not aware about this. But has it been published by any editor or self-published?
Guilherme Blanco: It's released by Sensio Books, which is actually a division of the Sensio company. Sensio is the maintainer of the Symfony framework also. So they have Symfony labs that has released components. And they have the Sensio Books that also released books related to not only Symfony but to related technologies.
(48:55) Ernani Joppert: OK, very nice.
Manuel Lemos: Yes, that's good to know. Well I wish you good luck with this project. And we will all be waiting for further good news about it.
Innovative PHP classes of March 2010
(49:12) And moving on with our podcast, one regular section that I intend to keep in every podcast is to review some classes that do innovative things. And for that they were nominated and voted in PHPClasses Innovation Award last month.
I don't know if you guys had time to take a look at the latest classes that won or were nominated in the innovation award. And there are few that I would like to comment on. And then if you have other classes that you also would like to mention, it would be interesting to hear your opinions.
In the previous month 10 classes were nominated. Some got more public votes that others.
The first one was from different Tufan Baris YILDIRIM from Turkey, which is basically an Image processor class that instead of getting some parameters, it takes a sort of CSS-like definition of the properties to define the parameters of the function that it performs, like drawing rectangles. And it takes the width, height and other properties from a CSS-like definition. It's an interesting approach. It's very innovative.
(51:12) Other than that, there are many others. I will not mention all. I will just mention some that got my eye. There is one MPO Extractor for instance that deals with the MPO format which is used by 3D cameras.
Those 3D cameras basically take two pictures. And they are basically pictures in JPEG format. And both pictures are joined in a single file which will constitute the image in the 3D format.
What this class does is to extract both left and right images that are contained in this format of the pictures of the 3D cameras. I thought it is very interesting.
There are several others. I don't know if you would like to mention any other that got your attention.
Guilherme Blanco: I would like to comment about flexGen class. It was related to generate code that shows MySQL results using Flex which displays data grid in Flex and expose the result from the database.
If you're using Doctrine, it would be a very simple approach. You just have to map the objects in your Flex applications. And you just have to bind the value objects generated by Doctrine with the value objects in the Flex application.
You just have to make a call to a PHP file that interchanges the data between Flex and PHP via AMF protocol that Adobe has released with the Flex platform.
I think this class could be very optimized to take advantage of this type of tool.
(53:41) Manuel Lemos: Right. Talking about flex, I think Ernani is a big fan of Flex. I wonder what are his comments about this.
Ernani Joppert: Yes. I've been really astounded about the power of Adobe Flex and the ease of use and adoption of it without depending on specific operating system and also cross-browser reference and mobile applicability as well.
And it's all based on known languages. It's basically a definition of an XML syntax and CSS for style definition, and interacts with any server side language like Java, or PHP, or Ruby on Rails, or any other languages.
And flexGen is a class that brought my attention here. And it's really nice to see classes coming by using this technology as well.
And one of the other classes here that brought my attention within the last month is there are a lot of users suggesting several classes related with YouTube online services.
So I feel that this kind of classes really expresses the community creative knowledge. And I would encourage any PHP developer to provide creative solutions here.
(55:38) Manuel Lemos: Right. Well these classes are just those that were published in March. They were voted in April. So these are the final results of the vote.
In this month there is a new set of classes that were nominated. But I'm not going to mention about them. There are some very exciting classes there. I'm not going to mention about them to not influence the results of the vote. So next month we will get back here and talk about those classes.
PHP developers switching to Google Chrome
(56:26) Moving on with our podcast, we're already taking a long time. But I would like to comment about one interesting happening that is about an article that I published last week, which mentions an interesting statistic that was taken from the PHPClasses site users.
The site assembles a statistic in the statistics page that shows the top most used browsers. And what is new about this is that in comparison with the same period of the year, last year Google Chrome has raised 10% of its share from 6% to almost 16%, 15% and something. And at the same time Firefox and IE lost almost 5% of the shares.
(57:43) So this suggests that PHPClasses users, which are probably just a significant sample of the PHP community, are moving from Firefox and IE to Chrome.
Not everybody is moving but a raise of 10% in share of Google Chrome is quite significant. And Firefox is still by far the most used browser with the whole 60%.
With this increase of Google Chrome, it already surpassed the use of IE by PHP developers. And I published an article about this. And it was very interesting because there are quite energetic reactions, over 60 comments, which is not very usual to the blog posts in the PHPClasses site blog.
Well what I mentioned there is basically that, despite Chrome still misses some extensions that for me are very useful and important, I decided to switch to Chrome because basically I could not stand Firefox anymore.
It's getting so sluggish, so slow. It takes so much memory that I decided to switch and try Chrome for a while and see if it's already useable enough for me.
Chrome is very fast. And it seems to take less memory although it's probably not much less memory than Firefox when you open the same number of tabs.
And it is interesting because it reflects the fact that PHP developers are also very sensitive to the benefits of Chrome.
(1:00:15) Coincidentally or not I don't know, probably it would be wishful thinking assuming that this article had any influence, but people from Mozilla Foundation have just announced the plans for Firefox 4.
And I read about it and it seems to address at least in intention some of the concerns of the users that are moving to Chrome, namely in terms of speed, not only views but loading and exiting a program, but also in terms of memory.
I noticed there are some features that are planned like the ability to perform some memory usage diagnostics so developers can evaluate the impact of their pages in terms of memory usage of the browsers.
So the more memory they take, the more sluggish they become because it will eventually exhaust the user machine memory. And if they provide tools to help the developers to optimize the environment, the pages, so they do not take so much memory.
I think that will be useful because it will be cooperation between the browser developers and the application developers to make the Web more efficient, faster and hopefully less sluggish than Firefox actually is.
What do you guys think? What browsers are you using? Did you also switch to Chrome?
(1:02:23) Guilherme Blanco: Well I can say that I read it and switched to Chrome for quite a while, since it was released. I was using Windows at that time.
I switched to Chrome and lately that I have been using Mac, I also use Chrome here. But I don't leave Firefox for debugging because it has a lot of developer tools, very useful tools, that are still missing in Chrome.
But, yes, I agree that Chrome takes much less memory and less resources. And it's extremely fast compared to the Firefox.
Ernani Joppert: Yes. And hopefully it will be that way right? I've been using Chrome since it was released. But then I switched back to Firefox because of the tools as well.
On the recent versions that they are supporting extensions, I have switched back to Chrome. And I've been using it within Mac OS and within Windows as well. And they both perform very well.
And one of the features that I liked is the ability to synchronize bookmarks, which hopefully will be adapted as well by Firefox because when you have several machines, it's really frustrating to have your bookmarks messed up everywhere.
(1:04:07) Manuel Lemos: Right. Well one other concern that people commented this article expressed is that some claimed that Google is evil and it is all a sort of a trap to suck your personal data and invade your privacy.
Well I wouldn't be so sure. It's true that Google is a big company and more and more they have access to the private data that you provide to their applications.
But I think it's a bit exaggerated to claim that. I'm not sure if everybody knows that Google Chrome is based on chromium which is an open source project.
And I think the only difference between Chrome and Chromium is that Chrome incorporates some extensions, some browser features, that require some proprietary code or patent encumbered support like the H264 video codec, which is necessary to decode high-quality videos. And they could not make it available in the open source version.
Actually that is the reason why Firefox does not support that codec at least directly because if you use Flash, the Flash plugin supports it. But it's a plugin, it's not the browser itself, it's not open source.
And other than that there are several options in Chrome, I don't know if they were present in the past but they are present in the current versions, that disable several features that people claim that allow to pass private data to Google that users probably would not want, like what are you typing in your searches, whether you use Google searching or not.
Well what do you think about these claims? Do they think they make any sense?
(1:06:40) Guilherme Blanco: People are over exaggerating a little bit. I have some knowledge about the internals of the Chrome, maybe because I know some people that works for Chrome and not Google.
They're not that evil, it's a kind of a big party that developers can do almost whatever they want. So that's why it's so fast. People can just experiment what they want there.
But I really doubt that it collects private data and sends it anyware or even installs an update executable file, if you're trying to work on your Windows machine. update.exe is a Windows service that tracks updates for Windows.
I don't really care about the complaints of these users. I would keep using Chrome on a daily basis.
Manuel Lemos: Right.
Ernani Joppert: Right. And one point here too. I mean if Google wants to give evil, they would already would be evil because they control most of the search behaviors of the Web.
If we would start talking about paranoia, let's imagine a world without Google today. I guess it would really damage the Web. And I guess the Google provides more beneficial behavior in the Internet and in the whole spectrum of IT world than it does for evil.
I guess a company that wants to somehow keep the browser working. They want to have their own browser because somehow they could also give some feedbacks and have some power over the decisions that are made within the Web behavior.
I guess Google is just trying to protect their interests. And I feel that is pretty much OK at least for me.
The good and the bad of PHPClasses according to Guilherme Blanco
(1:09:05) Manuel Lemos: Right. Well this podcast has been great so far. I have more subjects to talk about. But this has already been too long. So I will leave it until next time.
Before ending I would like to start a regular feature of the podcast which is to ask some feedback from our guest, Guilherme Blanco, in this case about the PHPClasses site itself. That is hopefully my gain from spending so much time in producing the podcast.
So, Blanco, it is very simple. I would like you to just mention one thing that you like and another thing that you do not like about the PHP Classes site.
Guilherme Blanco: What I really enjoy in the PHPClasses is the amount of source code that is contains. It contains a class for almost everything that I can imagine talking about development. When you need to develop anything and you are in a hurry, you just need to pop up a new tab in your browser and just fetch for this class in PHPClasses. And you will have a class related to that right in your hand.
(1:10:28) Also related to the source code is something that I don't really like in the PHPClasses is actually PHP Classes is a record of classes. There are a lot of good classes. But there are also very bad written classes, many in the documentation others in the source code itself. So something that is really good for the website is also a very negative point of it.
Manuel Lemos: Right. Well what can I say? Actually somehow I anticipated you would bring that up. But I did not tell you that there would be this feature of asking about good or bad. So I did not anticipate the answer. But somehow I expected that answer because we have already talked about it a long time ago.
Well the reason why there are so many classes good or bad as you say is that the site does not impose any sort of restrictions in terms of quality. First because the quality is subjective. What is good quality for some people is not good quality for other people.
Secondly I think it is important to look at the human side of the contribution aspect, which is why many people want to participate. And if I turn down any classes for not being certain quality standard, I'm sure it would be heartbreaking for many users that would be turned down because even if they reckon that the quality is not good enough for use of others, they would be disappointed and it would be discouraging.
(1:12:58) A sort of work around that is provided in the site to address that is to allow the users to vote on the classes in terms of several aspects like consistency, utility, documentation, examples, unit tests, etc..
And from those votes that each class gets, the site elaborates a ranking. For instance you are looking for classes to perform some kind of Web service. You can go to the category of Web services, and you have separate listing that says top rated class of Web services. And then you get the most appreciated classes by the users following that vote that the classes had.
I don't know if somehow this helps in sorting that concern of having a more selective choice of classes. But I hope you also understand why I will be concerned in turning down any classes for any quality evaluation reasons.
Anyway I appreciate your comments. They always will be used for further evaluation.
(1:14:35) And finally I would like to thank you, Blanco, for your participation and again, Ernani, for accepting to become the podcast co-host. Other than that I also would like to end inviting everybody to post comments, suggestions for themes to discuss in the next show and suggestions for our guests.
Do you have any final comments?
Ernani Joppert: Now, I wish to thank you... Sorry, go ahead, Blanco.
Guilherme Blanco: I would like to thank you for the invitation to participate in this podcast. It was a really nice opportunity to just sit late night and start talking about just PHP and what you have to provide for the PHP community and what people can expect for you. So I've really enjoyed the opportunity that you gave me to talk about my project. So it was a very nice thing.
(1:15:45) Manuel Lemos: It was really a pleasure for me too. Ernani, you were going to say something?
Ernani Joppert: Yes, I wish to thank you as well for the invitation. And it's always good to talk about technology. And PHP is one of the technologies that I like a lot. And that's pretty much all. And I hope that this goes on and on.
Manuel Lemos: Yes, I hope I can still count on you with your participation as co-host for many shows to come. And again I would like to insist and invite everybody to post comments and suggestions for themes to discuss in the show, as well as suggestions of guests that you would like to have in the show. So that is all for now. Cheers.
Guilherme Blanco: Cheers.
Ernani Joppert: Cheers. Bye, bye.