Author: Manuel Lemos
Viewers: 51
Last month viewers: 16
Categories: New site features, PHP Performance, Lately in PHP Podcast, PHP opinions
They also talked about the discussions of Node.js developers moving on to the Go language and the parallel of PHP developers moving to the Facebook Hack language, the proposals to drop PEAR for Pickle as PHP extension installer and several other PHP proposals, and the latest and future improvements of the PHP Classes site user interface features.
Now listen to this podcast, or watch the hangout video, or read the transcript text to learn more about what was said during these interesting PHP discussions.
Contents
Introduction (0:20)
PHP Releases 5.4.30, PHP 5.5.14, PHP 5.6 RC1 (1:03)
What will be the name of next PHP release: PHP 6 or PHP 7? (3:42)
Latest Speed Improvement Benchmarks of PHPNG (12:30)
Are Developers Dropping PHP for Facebook Hack like Node.js Developers are Dropping for Go Language? (21:30)
RFC: Bare Name Array (37:31)
Uniform Variable Syntax (40:07)
Dropping PEAR for Pickle to install PECL packages (42:36)
Drop open_basedir in PHP 6? (46:15)
Catchable "call to a member function of a non-object" (49:08)
The New User Interface for the PHPClasses Package Pages (54:38)
Plans for Upcoming Developments of PHP Classes and JS Classes (1:07:00)
JavaScript Innovation Award Winners of April 2014 (1:12:31)
JavaScript Innovation Award Ranking of 2014 (1:19:26)
PHP Innovation Award Winners of April 2014 (1:21:00)
PHP Innovation Award Rankings of 2014 (1:28:00)
Conclusion (1:30:40)
Contents
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
Introduction music Harbour used with explicit permission from the author Danilo Ercole, from Curitiba, Brazil
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.
Show notes
- Latest Speed Improvement Benchmarks of PHPNG
- Are Developers Dropping PHP for Facebook Hack like Node.js Developers are Dropping for Go Language?
- RFC: Bare Name Array
Introduction (0:20)
[Music]
Manuel Lemos: Hello. Welcome to the Lately in PHP podcast. Finally, after many weeks struggling to make some time to record this podcast, finally, I have here with me Cesar Rodas that is now a married guy, right?
Hello, Cesar.
Cesar Rodas: Hello, Manuel. How are you doing? Yes, I am Mr. Cesar now.
[Laughter]
Cesar Rodas: Much more serious.
Manuel Lemos: Yeah, now you have much more responsibility.
Cesar Rodas: Yeah.
Manuel Lemos: And now, you will be starting making kids.
Cesar Rodas: Yeah.
Manuel Lemos: You could not do that before.
Cesar Rodas: Yeah, exactly.
[Chuckles]
PHP Releases 5.4.30, PHP 5.5.14, PHP 5.6 RC1 (1:03)
Manuel Lemos: OK, today, we have lots of PHP topics because we've been delaying the recording of this hangout and more topics of great importance have been appearing, people are talking about them.
So, as always, we start commenting about the latest PHP releases. And, at least, the latest that we can comment, the last one for PHP 5.4 is the 5.4.13. And at the same time, the 5.5.14 also came out. And this is, basically, mainly bug fixes and there are some security problems also fixed.
Cesar, did you check into these bugs, especially the security fixes? Do you think they are really, really important for people to upgrade or maybe not that important?
Cesar Rodas: Well, I haven't get the latest version on my servers. I don't have many that are my responsibilities so I do it from time to time but not always.
I'm looking at change sets. I see a few bugs. Most of them like under some weird circumstances, it could crash and for security, they can show a little bit more of info of why they should. I don't see nothing that you say, "Oh, gosh, I need to upgrade right now." But you should.
Manuel Lemos: Yeah, if you are using at least these versions. I don't know, in your servers, do you control the version of PHP that you use?
Cesar Rodas: Yeah, I was in 5.4, then I switched to 5.5. So I'm trying to use the latest one. I guess I upgraded a few months ago, like three months ago, so it's not the latest one but it's closer.
Manuel Lemos: Right. So I don't think there's much more to say because these are still maintenance releases.
As always, they do not bring any new features that are worth mentioning. Maybe some fixes that are probably upsetting some people that rely on them, but not really many.
What will be the name of next PHP release: PHP 6 or PHP 7? (3:42)
Manuel Lemos: And talking about new versions, PHP 5.6 is coming close to a release. Meanwhile, there is already a discussion, actually, a big noisy discussion about the name of the next version, I mean, the next major version.
Shall it be PHP 6 or PHP 7? There are pros and cons being brought for each of the possibilities.
Cesar, have you been following these discussions? What do you think about these proposals? I don't know if you have an opinion of which one you prefer.
Cesar Rodas: Yeah, I didn't follow much until it went viral, so to speak, on Twitter. Then, I went, I read the proposals and I voted. Then, that was a regular RFC process that was normal.
Then, I think one of the Zend guys, they changed the Wiki page. They added more good points for what he wanted, that was the PHP 7. And he deleted a few pros of the PHP 6 and people got upset and they canceled their voting and things like that.
So, basically they are saying we cannot name PHP 6, because PHP 6 was a failure and people will be confused with the proper PHP 6 and the failed ones from, I don't know, before PHP 5.3. So I don't remember but probably three years ago.
People say that all these technical books, all those blog posts ranting about PHP 6 and why it was killed, so we should name it 7. And other people say no, it should be 6 because 6 comes after 5 and things like that.
I vote for the PHP 6, it should be 6. And the problem that was with the previous PHP 6, I spoke with Rasmus in a conference last year and he said that they wanted to just give a huge leap between the 5.2 and the PHP 6. So they just decided to just kill it and make it a progress. So there is the PHP 5.3, .4, .6 and all those changes. And now, they believe that they are ready.
So I guess it should be 6. Or 8, so nobody wins. We could just name it PHP 8. So there, it's completely meaningless. It's just a number.
Manuel Lemos: Well, personally, I tend I agree with you. If it was up to me, I'll probably vote on PHP 6, because it's the next logical number. And honestly, the PHP 6 cancelled that four years ago. Nobody remembers that. There are posts telling that PHP 6 was canceled. That could possibly make some confusion.
And I see the point of Zeev Suraski of Zend when he brings out that article but I don't think most people care. And if they, all of a sudden, they say "PHP 7, no PHP 6", they probably had been asleep for ten years.
Cesar Rodas: Yeah, and also one of the people say, "Are you saying that PHP developers are so stupid that they cannot understand that this is a different 6 and the previous PHP was a failure about five years ago."
Manuel Lemos: Yeah.
Cesar Rodas: It's a lame discussion. Somebody has to do it. And to me, and I voted, it should be 6. Or 8, so nobody wins.
[Laughter]
Manuel Lemos: It should be nine. Let's make it more confusing.
Cesar Rodas: Yeah.
Manuel Lemos: Well, I think, really, this divide does not deserve that much discussion. And honestly, for me, it doesn't matter because I'm old and certainly would not get confused because we cover what happens in PHP world every month.
So, it certainly be immediately get confused] but other people can get confused, but probably those that will get confused, they do not even the control the version that they get from their hosting environment because...
Cesar Rodas: It's probably just apt-get install PHP and then forget about it.
Manuel Lemos: No, it's even worse. The hosting company upgraded it and did not ask me.
[Laughter]
Cesar Rodas: Yeah.
Manuel Lemos: Just a comment.
Cesar Rodas: I think the problem is that they... I think that PHP, as a community, did great, great advances in the last months and years. So they opened it and they make it a little bit more democratic. It was going on well and people was voting for the version 6, and then the people with more power, they changed it. And they say, "We should vote again," and they just canceled it. They just kill it.
[Chuckles]
Cesar Rodas: That's not good.
Manuel Lemos: When the result is not convenient, let's cancel it and start over.
Cesar Rodas: Yeah, that's democracy for you.
Manuel Lemos: Anyway, as a side comment, I was just going to mention that in the Facebook page of PHPClasses, I get some very weird requests, often from people that think that PHP Classes is the sort of training of PHP. So they ask all sorts of requests for learning how to do something.
And one of the weirdest ones was about a user that said, "Oh, my hosting company just upgraded to PHP 5.4 and now, my script stopped working because it does not recognize the variables.
And well, it seems that finally the registered globals being disabled affected his environment and since the guy was relying on that, the scripts no longer work and they just does not control the version of PHP.
And if you asking, probably you think for awhile how to figure what the PHP version that is running on this environment. At least, this guy knew that it was 5.4.
But just the same, people are not following these discussions. Their registered globals has deprecated many years ago and now that it is disabled on his environment, the guy just doesn't know what is going.
So people are not really, really caring or following the PHP versions that come out because it's not under their control in the shared hosting environments. So for those people, it totally does not matter if they have missed a PHP version or not.
Manuel Lemos: OK, so now let's move on to another topic which is about some benchmark...
Cesar Rodas: Before I forget, just a comment aside, that registered global, that was disabled when I started working with PHP. That was ten years ago and people are still having those problems. My goodness, ten years.
[Laughter]
Cesar Rodas: OK.
Manuel Lemos: Yeah, that's because it was never disabled so it was a feature of the language.
Cesar Rodas: Yeah.
Manuel Lemos: For them, it was... But it would always work. It doesn't matter. You can wait ten years to, after you deprecate the feature, to disable it and people are still using it. They will only really care when it stops working.
[Laughter]
Cesar Rodas: Yeah.
Latest Speed Improvement Benchmarks of PHPNG (12:30)
Manuel Lemos: OK, as I was mentioning, there are some benchmarks about the latest progress on PNP NG. NG stands for... we don't know what it's going to be called. But it's probably 6, 7 or 8 or maybe something else.
Cesar Rodas: Yeah.
Manuel Lemos: Well, there are some benchmarks here. There is some progress.
Oh by the way, there is a big, big discussion because I commented about it in the other month, about the PHP NG was about to bring the JIT engine.
There's some people very mad, complained that it is not going to be a JIT because JIT is not there. Well, it is not there but the intention is to put it there and the whole branch started with that intention. Whether it is not there or not, it doesn't matter, that's the intention.
I know there is a guy from one of PHP developers. I don't know it would be accurate to say, he's a core developer. He developed some extensions but I don't know what distinguishes a core developer or just a sometimes developer.
Anyway, he posted an article in the PHP homepage and he was sort of mad because people are saying that it's going to be a JIT but it is not a JIT. Well, it doesn't matter. The intention is to bring a JIT because it's to bring it on par with Facebook Hack.
The fact that there are already some advances without putting a JIT in there, it doesn't matter because the works started there and there were experiences with putting a JIT in there.
So, that said, there was a big discussion, a big rant. The usual Twitter people that stay all day ranting about anything they can, so they can argue because they like to argue forever. They like to sleep on Twitter and Reddit. And it was just funny, they make a big deal.
There were some complaints about the article that was posted on PHPClasses, which is basically a report of what was posted by Dmitry Stogov at Zend. Nothing was made up.
And it really does not matter if JIT is working, PHP developers will not invent a JIT. They will use LLVM.
Well, that was just a side comment about what the PHP NG will be and what is now is just a start. And what they have already is they have already published some benchmarks.
They have achieved quite good speed improvements even without the JIT being enabled. So the whole point is that things will get even better.
So I think it is a great progress. Let me try to jump to the results. Cesar, did you look into these results?
Cesar Rodas: I've been reading a lot about it. I never tried it though, I was a little bit lazy. But as we speak, I'm trying to install it so I could play with it so next month, I could say something meaningful.
Manuel Lemos: OK.
Cesar Rodas: But as I've been getting...
Cesar Rodas: I was surprised to see this branch, because in a conference, Rasmus says that he was dreaming about it but he was dreaming for the next five years.
Manuel Lemos: Right.
Cesar Rodas: He said that maybe for PHP 8, 7 or 8 in the next six years, seven years. But that was one direction that he wanted to go. And seeing this, it's really good.
It would really change many internal things. So for most programs, you would see the same thing but run much faster. So, it's always good.
Manuel Lemos: Right. Well, as you may remember, what happened is that Facebook announced the Facebook Hack language and all of a sudden, PHP core developers start becoming more concern with the circumstantial competition that Facebook Hack happens to be.
Because if people start moving to Facebook Hack, which is mostly compatible with the current PHP, but it's faster and still has some features, the official PHP will become less relevant.
And I think probably this concerns more of Zend because they always has been sort of in control of the PHP fate. I think that, as I mentioned before, that's where all this concern to make PHP faster came from.
And you can see here some benchmarks. There are some results here looking at scripts. Either for bench.php which is a script that is running some code, mostly CPU intensive code, and it shows here the number of instructions, number of seconds.
And then, there is also some information about running WordPress. I'm not exactly what they are running WordPress to because WordPress does many things and I don't know what exactly they are running here. They showed the numbers, I don't know the instructions.
Cesar Rodas: I think they did that so they can show like, "This is our useless benchmark and this is a real application." So you can see both how it is in theory and in practice. And the more I read, the more eager I get to just play with it. So everything else sounds really good.
Manuel Lemos: Yeah, exactly. Well, it doesn't matter what cause this sudden interest to make PHP faster, to have a JIT or not a JIT or it doesn't matter. What matter is that PHP is moving on.
Cesar Rodas: Exactly.
Manuel Lemos: And there are always untapped opportunities to squeeze more performance out of it.
Regarding WordPress, I just don't know what it does. Maybe it is written somewhere here, I did not notice. Because since WordPress is an application that is a database to store and retrieve articles, I'm sure that the actual WordPress application would do a lot of database accesses, unless there is a lot of caching which would replace the database accesses by file, accesses at least in the default environment.
But I don't know, what matters is that they have posted some results here. For instance, WordPress used to run on 26 seconds, and now it runs on 14 seconds. And so it's quite a great speed improvement.
Well, there's nothing much more to say because until this is usable for all of us, we just can hope that it gets releases as soon as possible.
I think that what was mentioned is that it would be released sometime in mid-2015. I don't know, so maybe in one year or so.
I'm not sure what really remains be done. Probably the greatest part of the work is to actually integrate the JIT as originally planned.
So it requires some core developers with good skills and understanding a lot of the output work that can make it do the actual conversion of Zend opcodes into LLVM assembly. All that done dynamically so they can take advantage of the speed improvements.
So that's mostly it about this topic. So then, let's move on with the next topic.
Are Developers Dropping PHP for Facebook Hack like Node.js Developers are Dropping for Go Language? (21:30)
Manuel Lemos: And then, the next topic is somewhat unusual because we're going to mention first about a couple of other languages to make a point about its relation with the PHP world.
Basically, there was a developer of, TJ Holowaychuk, I think he was developer over the Express framework for Node.js. And he sort of rage quit the Node.js scene - at least that's what he says in this post - because he's a bit upset about the way Node.js is evolving or not evolving.
Well, I have read this article and mostly what I see is that he's really, really upset with the callbacks as a solution.
Actually, I've said that many times in JSClasses, in the Lately in JavaScript podcast, that callbacks are a hell and they cause lot of trouble. And he's sort of upset with that and probably other things. But from all these seven complaints I see like at least half of these complaints are about callback sucks.
And what he's saying is that he's rage quitting the Node.js for the Go language. Go language is yet another new language that some people like.
And there are many things that are similar to JavaScript but the most important difference that I noticed is that they have something in the Go language which is the goroutines. And these are means to start some parallel tasks that run along with your current code but it just can give them function or objects and it cause that function. And it starts executing code in parallel.
So, this is the reason of this article that he published. He said he's dropping Node.js for Go. And this brought to my mind that recently some people also mentioned that they were very interested in the Facebook Hack language as an alternative to the current PHP for many reasons, especially its improvements, what it provides over the regular PHP.
Basically what is similar is that like the Go language, the Facebook Hack language also provides a sort of running code in parallel similar to the goroutines. You can start an object or function or whatever and it runs in parallel.
It's not really, really multi-threading. It's more like cooperative multi-tasking. There are several tasks going on in parallel that they run on the same process.
And this is what is similar. This is something that for the next PHP generation, if it is intended to catch up with Facebook Hack, it should also be provided that feature. Don't just be bringing a JIT to PHPNG but also provide that feature of having an easy way to run several asynchronous code tasks in parallel within the same script.
Cesar, did you follow this article, these discussions? What are your thoughts?
Cesar Rodas: I read that article. I never heard of anyone saying, "I've read that same article," that say "We are dropping Node and we go to Go."
They are different languages and it's unfair to just compare them for very simple reasons. JavaScript is super dynamic, Go is not dynamic. So it's compiled down to the closest that it could get to the CPU itself. So it looks like Java, to some extent, and JavaScript is not.
They are complaining now about vague things like callback sucks. Yeah, it sucks but whatever. In the PHP case, it's a little bit different because if you have PHP which is slow, many people say and it's slower than many things. But it's good enough.
And why is not the Facebook PHP even popular? Even if they implement the same language, they run much faster. It's because of the compile libraries. It's because you can have like X, I want to work with a database different than MySQL, I cannot at the moment. So that is holding me back.
Manuel Lemos: Right.
Cesar Rodas: In the case of Hack, I don't see why someone in their sane mind would drop PHP towards Hack, unless they are playing nothing on production.
I don't know, I wouldn't trust my environment to a private company which might as well kill deep that open source project soon.
Manuel Lemos: Yeah.
Cesar Rodas: Like Go and JavaScript, they are very different. Hack and PHP, they look alike. They have difference in semantics, a few things.
One good thing in the HipHop is that you can mix both PHP and Hack. So that is good. So you could learn the language using bits of it. To me, it's not mainstream and it's far from being mainstream. That's my opinion.
Manuel Lemos: Right, right. And it is just a release. It's not something that you can expect people to jump on that soon because...
Cesar Rodas: My point is if PHP is great for what its target is, which is websites, you don't need threads there, you don't need goroutines, you don't need channels and multiplexing many things. You don't. That's the thing.
If you want to write a network server or something different, then use another language.
Manuel Lemos: Right. That's a good point. People do not really need that but once they get their hands on that, it probably can develop more efficient code, but the vast majority of the developers is not even concerned to make their current PHP code that much optimized, they just want it to run.
And most of the time, the PHP will be working for the database to reply any IO operations. And the benefits of running some code in parallel may be... They don't take as much as they have done.
Cesar Rodas: Yeah, in the PHP case, there is Node. That's why we don't have. I use Node.js and I really like it. But it's a different thing. You are writing a Web server, you are writing a service in much lower level.
So there, that advantage of just multiplexing IO, it's really cool. Inside PHP, how most people use is that they depend on a Web server. And so you don't need, you just care about a request come in, you do your thing, your framed HTML or JSON or whatever and then you just exit.
And you don't care all about threads or doing things. And you shouldn't because that is a front-end request that should be quick. If you have to handle threats and things like that, you should do that on the backend with appropriate type technology, which is of your choice.
Manuel Lemos: Yes, and to take advantage of those parallel processing, if you can call it that because in the end, it's not really a separate process. But to take advantage of that, you need to be a skilled developer and know very well what you're doing, no output but... to gain significant speed improvements or throughput improvements if you can call it that.
Cesar Rodas: Yeah, my point is you might get... I've been reading a few hours ago this phrase that says that machines are much cheaper than developer times.
So if you have scalability problems, if you save a few milliseconds in every request, you would see a difference if you have one billion requests. But you don't, you would see if you have a hundred requests hour or a minute.
Manuel Lemos: Right. In the JavaScript and the Node.js world, I think the greatest complaints is really the callbacks because they really make you think deeper how to solve the situations because to deal with things, everything is done in callbacks.
Since they make you think further, they think more developer time than if you have something similar to goroutines which is also similar to what Facebook Hack provides.
But in the PHP world, we don't have that problem, because if you want to access the database, I don't think there's even a possibility to do it asynchronously like execute this thing, call this callback when you are done.
Cesar Rodas: It depends. With MySQL, what to do is that you could just... It works like with... I don't remember the exact interface but it's select() from Unix, I guess, so you could just schedule like "I want to do this three requests," and then you have to loop like is there end results. Is there end results? Is there any results. But it's your responsibility. So if you know how to do it, you could use it but isn't mandatory.
And my point is that is useful if you write code in a much lower level, like if you write a proper Web server or some container that can run application.
Applications within PHP, they die quickly. Like you get one requests, you'll do something and you're playing something, and you die. Although many things are recycled in the background for performance reasons.
But for the PHP developer, your application ends quickly. So, it's a different environment. So I don't see...
Manuel Lemos: Yeah, unless if you don't have to deal with the callback hell, it's not a big deal. It's a reason that would make PHP developers to switch for Facebook Hack.
And even Node.js developers switching it for Go, I think it's just that guy. I don't know anybody. Not that I know many people that use Node.js but those that I know, I don't think they are even considering it.
Because the one thing that's very important can get you stuck to your language of preference is that you have built lots of libraries. You have relied on existing libraries to develop your applications. If you move to another language, you have to start over and learn your libraries or create new libraries. And that's really a waste of time. I think it's like walking backwards.
Cesar Rodas: Yeah, and it depends. I don't do any Go but I tried and I've seen hundreds of libraries. It's sort of like Python. In Python, you have hundreds, thousands of libraries. So, that is a good point.
But writing Go it's totally different. It's a compiled language. As much as I want to make it look dynamic, it's not dynamic. What it is is completely different. I am used to just save one file into my VIM and just switch to the browser and just refresh it and that's it. I don't care about compilation and things like that. So it's a completely different thing.
Manuel Lemos: Right. Well, anyway, we are more concerned with PHP and the parallel that somehow Go offers something that Facebook Hack offers. So, the next PHP version might as well also offer that possibility of - I don't know how they call it - synchronous programming, goroutines, whatever.
Whatever is made available on the Go language, it may be good to have on the next PHP version.
As a side comment, I noticed I think it was Julien Pauli, the maintainer of the latest PHP releases, he has posted an article, I did not find it in the blog. He talked about how they are evaluating the way the...
Well, I don't know if you can call it the event loop, those statements that check for call to select lower level function for checking responses of sockets in database handlers, file handlers.
I think they are also thinking about evaluating that possibility of making an elegant solution like Facebook Hack provides to run code, multiple parallel tasks within the in the same script using some multiplexing of the CPU while some tasks does not return.
For instance, if you call the database or you call the sleep function, your CPU will be idle and it could be as well running some parallel code.
Anyway, this is really advanced. And I expect we get back to that topic later if there are any advances.
RFC: Bare Name Array (37:31)
Manuel Lemos: So now we are going to move with the next topic. There are several enhancements being proposed. One of them is this Bare Name Array Literal. Basically, it is about giving... I think, these people want to to program in JavaScript.
[Laughter]
Manuel Lemos: Because they were not happy with changing the arrays with the short syntax so we don't have to put the array command to form, define an array.
They also want to change the way you define keys more similar to JavaScript. So it's more like the JSON syntax. There was already a vote and they mostly voted no because we don't need this.
Cesar, did you follow this discussion or voted?
Cesar Rodas: No, I did not follow. But I had a client once, long time ago, that he was using it, literally, this feature. And his website, it was running fine but I saw it locally and I saw a hundred notifications like keywords been transformed to the string. So it does work. You see a bunch of notices and warnings.
To me, it's harmless but I don't see any reason why someone should spend their time developing it. That means they would have to change things like the parser, the tokenizer, so it's something that will take somebody's time.
Manuel Lemos: Yeah.
Cesar Rodas: So people say no because it would break compatibilities with the language, and that's not good. So I think it's fine to just use a couple of quotes from time to time. It's completely fine to me.
Manuel Lemos: Yeah. Well, there is a somewhat related proposal, Bare Name Array Dereference, which was somewhat similar but it was also a rejected proposal this time. So, there was not much to say about this specific topic to be forgotten.
Uniform Variable Syntax (40:07)
Manuel Lemos: Another proposal that was also submitted recently, they call it Uniform Variable Syntax which does not say much.
But basically it's to somehow complete the task of being able to dereference return values and... like, for instance, a function that returns anonymous function or closure or whatever you want to call it.
And being able to call it right away instead of assigning it to a variable and then calling the variable function.
Well, this is the proposal. Personally, I would not use this much because it probably makes the code less readable but I can see some people having fun, saving a few characters. Probably saving a few CPU cycles.
Cesar Rodas: Yeah, the framework guys, they would love it.
Manuel Lemos: You said it. I have nothing against framework people.
[Laughter]
Manuel Lemos: Anyway, this was proposed and most of the people voted yes, only Derick said no.
Cesar Rodas: Yeah, the things is that they are enhancing what an expression is. So the end would dereference one function's output and many other things before executing.
So it can look more like JavaScript. I don't see any downsides other than it breaks backwards compatibility but eventually people need to upgrade their PHP versions. It's fine.
Manuel Lemos: There are so many people... No, it is not exactly backwards incompatible because your current code still works. More like it's a new feature that if you use it, your code don't work in past versions.
Cesar Rodas: Yeah. And...
Manuel Lemos: So it will actually become backwards incompatible.
Cesar Rodas: Yeah, and to fix it they are going to audit into the next PHP version, which is the PHP X, 6, 7, 8, nobody knows, but in the next version.
Manuel Lemos: PHP asterisk.
Cesar Rodas: PHP X.
Dropping PEAR for Pickle to install PECL packages (42:36)
Manuel Lemos: OK, and moving on, there is also a topic about bringing a new installer to installed PECL packages.
Cesar Rodas: They want to start like a PECL extensions which are C projects that runs in PHP, so they are extensions. And the main idea is to create something compatible with Composer.
The end result could play something like - in the future, I think, with your Composer - you could say OK this project needs this given extension. Say it needs an extension to talk with the database X, which is not supported officially so you could just grab it and compile. And if you are using Windows, it would just download a precompiled .dll.
So I don't think this project as harmless. I'm following the development closely. The project owner is... don't remember the name. But I follow him on GitHub and Twitter. He is a French guy living in Germany. Excuse me, I forgot his name but I'm following him and I keep an eye on his project.
Manuel Lemos: Pierre Joye. Joye or... , I'm sorry.
Cesar Rodas: Yeah, exactly.
Manuel Lemos: He's a nice guy. I know him, we argued a lot. Since probably the PEAR days, I remember him being a great developer. If I'm not mistaken, he works for Microsoft to make PHP work well on Windows.
Cesar Rodas: Yeah, he's a very good developer. I'm following him on Twitter and I agree most of the things that he says and with most of his projects.
Manuel Lemos: I'm a bit confused about this. Is this to make extensions installable with the Composer application or is this a new application that is compatible with Composer but it's a separate project?
Cesar Rodas: It's a separate project. The idea is that they can be compatible like sister projects soon. And the thing that they want to resolve is basically they want to fetch the tarball from PECL. From the PECL web site, they want to uncompress it and compile it like what PEAR does now, I guess.
And for Windows, because Windows is not a Unix, so they would just, rather than doing that process, they would just fetch the precompile versions from windows.php.net.
Manuel Lemos: Well, I think this can be interesting. I do not install many extensions from PECL but I can see the point of bringing something in.
Cesar Rodas: I don't install many except for custom database handler for MongoDB and for Redis. Those are global things so they are not PEAR project based, so it's only once when my computer is new or when my server is new and then I forget about it. So, I don't install much things, either. But I think this is a really good idea.
Drop open_basedir in PHP 6? (46:15)
Manuel Lemos: Right. Well, another proposal here that has been going on is about the dropping open_basedir for the future PHP releases because there is a discussion here and some people claimed it would suggest that you have some fake security.
Cesar Rodas: Exactly
Manuel Lemos: When there are some ways to circumvent the restrictions of this PHP directive.
Cesar Rodas: The thing is that they said...
Manuel Lemos: Then you could limit the way your scripts can open files but there are ways to circumvent that.
So they are suggesting to drop it so people do not rely on it. Then, there are other people that think it may still be useful even though it does not provide full security that it suggests.
So this is still up for discussion, I don't know if this is going to go forward. I don't use that function much. I don't rely on it too much.
Manuel Lemos: Yeah, this is mostly for shared hosting companies. They only need for the way they access files from different clients.
Cesar Rodas: Yeah, I don't understand. I don't fully understand what is the problem. But I've been reading and they say that there's no feasible way of making it secure, so they tend to just drop it. There are hundreds of alternatives how you can open a directory.
I use glob most of the time because I know that I don't have to go nest it. So I just use glob and I forget about all these things.
Manuel Lemos: Yes, I think this is more for shared hosting environments. But I think, I don't know if I'm evaluating the whole problem, but I think different users should have different user IDs and the files that they can access should be restricted.
But then, there is a problem that the Web server all runs under a single user, under the same user. So there is some challenge there to prevent that user peak on other users under the same hosting account.
Anyway, since this is just for shared hosting environments and this is not a new problem, this is just to tell that there is no great solution for this problem, that's why this discussion appeared.
Catchable "call to a member function of a non-object" (49:08)
Manuel Lemos: And now, moving on to another proposal here, which is about having a way to catch those eventual calls to functions of non-objects.
And this may happen, for instance, you have assigned null to a variable and assume that it is an object and they call a function, and in reality, it is not a callable function because the variable does not hold the object that you think it has.
So this is more to catch bugs. The difference that this proposal that it's trying... The thing that it is trying to improve is that they want to make those calls catchable.
So, originally, it would throw a fatal error and when a fatal error happens, you can't even recover the line and the source file where the error happened. But you can't get a trace of the calls that got you there to that line.
So you are looking for code that is calling the code that calls that error, it will be hard to use the debug backtrace function. Actually, it's not always impossible. You just can't do that from an exception. I mean, fatal error.
You can use the register_shutdown function to catch... Well, it's not really catching, it just run some code before your script. It is to figure if it was a fatal error but from there, you do not get the backtrace of the call so you don't know where the call happens.
So this proposal is already voted and approved, so I think it is a good thing. Cesar, did you follow these discussions? Do you also agree it is a good thing?
Cesar Rodas: It's something that exists in many other language I've been seeing. I don't do Ruby but I see that they also catch all functions, so if you call to a function that doesn't exist, that function is called instead and you can do debugging.
I sort of like it. I wouldn't use it on production so I don't mind. It could be as far as I understand, if you do something silly, you would get a exception and then you could just catch it and continue with your problems.
That's going to be something that frameworks are going to embrace. So they could just say, "OK, in your program, you had some errors and here is where it was."
It would enhance the developer experience in production rather than showing a white empty page, you could show some nicer 500 error page. So I don't see any down sides.
Manuel Lemos: Yes, this is more to be able to also catch bugs and know where they happen exactly, not just the line number but also the comment code. So you can see. "How did I get here?" Because in production, you cannot do anything here. Certainly, you won't resume your code after calling functions that doesn't exist.
Cesar Rodas: But you could do things like clear the output buffer and render a 500-error page which says that "something's wrong and blah, blah, blah." But you could do so.
This is a really good thing. If you go to the vote page, there are no votes against it. So that means that people like it. I just voted myself. They were explaining that another Request For Comments was accepted but not implemented, I guess, which was the exceptions in the engine itself. So it was...
Manuel Lemos: We mentioned that in the other month.
Anyway, I certainly would not want to get a different error page. For me, it's not the main purpose. It's being more to produce more useful logs. At least, I thought that in production and all...
Cesar Rodas: Something...
Manuel Lemos: Exactly. To generate a log that tell me that "Oh, this code went wrong." And you get more context of this, so it's generally useful.
The New User Interface for the PHPClasses Package Pages (54:38)
Manuel Lemos: So, now, moving on to another topic, I'm just going to mention a couple of topics regarding some latest improvements in the PHPClasses and JSClasses sites.
There is an article here on which I am announcing some improvements that were done on the user interface of the package pages. And we'll see more about that in practice when we talk about the nominees of the Innovation Award.
Basically, this is just to announce that there are several improvements, many improvements, this is an update that took like five months. The first three months are mostly about research, determining what to do.
There is this Design Thinking Process that was applied to determine what to do in collaboration with several users, including Cesar Rodas. Thank you, Cesar for cooperating in this process. Your feedback was valuable and useful.
Cesar Rodas: No problem. Anytime.
Manuel Lemos: Yeah. And basically, during those three months, there were some interviews with several users and there was a prototype that was elaborated to evaluate whether the enhancements that were proposed would address the complaints, either features or presentation that was not very good or missing features.
So there are like ten improvements here. But I will not go through them. It's easier to show than tell and we'll get back to that when we show the way that package pages look.
And this is interesting. I also talk a bit about the Design Thinking Process, how to use this to make your sites - not just the sites but any site or any other product, not necessarily sites, could be mobile applications, could be any product, could be physical products - how to apply this process to make it perfect for the users.
And perfect means that you will be listening to the users and you would be collaborating with them to move on to a solution that addresses the needs and the concerns of the users.
Well, I will not go much about the details of this. I just want to add just a couple of things first. It's that I implemented these improvements and something not very good happened is that Google crawled the new design of the pages and it seems it didn't like it.
And then, many pages dropped, the number of visits coming from search. Probably because the new user interface is tab-based. Given that, I think Google did not see as much information on the pages because it just crawls the visible tabs. Even if the content is all in the page, it just indexes the content that is in the visible tab.
So the content is on other tabs. Google ignores it and probably that's the reason why it dropped in rankings. So, what I did is at least for now, the new design will only be visible to users that are logged in.
So since the Google robots do not log in to the site, they probably will not see the new design. They'll see the old design. So if you are looking at the site and you are not logged in, you will not see the new design.
I will probably implement some things that make the new design appear for non-log users in certain cases, at least for some pages that are well-indexed on Google, they'll still see the old design.
But that's more of a concern for new users. So, if you are regular user, you are logged in, you see the new design so it won't affect you.
The other thing that I wanted to comment is tied to the next topic that I want to comment that is about the future of the things that are being planned for PHPClasses site.
But before I move on to that, I would like to ask Cesar. Regarding this new design, what were your impressions? Did you like it? Are there things to be improved? What do you think?
Cesar Rodas: I was surprised when I saw it. I liked it. There are few things I would like different but just tiny things, I will mention them in private. But other than that, I think to my eyes, it's much cleaner. I don't have to scroll down to see things. I just need to click into different tabs. I like it. I like it.
Manuel Lemos: Yes. That's sort of the general impression. But there are also comments from people after I published that article. Some people said that there are few things that should be improved.
Of course, when I say there's a possibility to make the site perfect, it doesn't mean that the site is perfect now. It just means that it's getting better to the point that past complaints will not happen again.
As you've said, one of the greatest improvements was more like since it's now tab-based interface, you can go faster to the information that you want to see. And that provides a greater user experience.
There was a few improvements that I did not finish until I make this release last month. For instance, the Usage tab was renamed Example.
In this case, it will show an example of some code of the package that you want to see right away, to see a clearer example of how to use this package. So you don't have to browse all the files.
For instance, this one has 145 package, if you want to see an example of the package, it will take forever because you have to find what is the example file.
And even now, the browsing of the package files is much faster. You can just click on it and it will load in the same page using AJAX. Going and see what is the example file that you want to see whether the package is easy to use or not., it will take a lot of time.
Along with that some people wanted to see live demos of the package working. So there is this demo stat, it does not help you for every user because some packages do not provide live examples.
For instance, this package provides live examples. You can click on tabs and you'll see the examples. These examples are really in other site and the site makes them appear using iFrames in the same page of the package.
So there was always a concern to not make you go to another page to see what you want to see about this package, to make a decision.
So, you can see different examples and if you do not leave the page, if you want to see an example page in another page, there's this button here that you can click and open the example on a separate tab. But most people just want to see it inside.
The same goes for screenshots. If you have screenshots that show the package in action, you can go back and forth. You can also see tutorial video if the package provided some. You can show them right in the page.
As I mentioned also, that the package files are also browseable totally inside the same page.
And then, when you decided that you want to download - actually, Cesar, this was one of your suggestions - you suggested that there should be a direct link for the zip version of the package although there are tar.gz versions.
And thanks to your suggestions, I implemented this link here to go directly to the zip version of the package for you to download.
As well, if you want to install it with Composer, you can click on this button here and it will show you the Composer links.
I'm not showing it here because I'm a logged user and it will show my password here. So I'm not going to showing it now.
Anyway, if you are still not sure if this package is good enough, then Reputation tab lets you see several aspects of interests that refer to reputation.
For instance, now you can see what is the percentage of files that were imported form version control repositories, whether it would be JIT or Subversion or CVS.
The number of packages that reuse this package, this is a sign that this package is so reputed that other package are using it. And then, other metrics like the user downloads and the rankings and also, number of visits from search engines.
And below, you have more details about the ratings of the package. You can see here the overall result score, 80% in this case, and also the ranking, overall.
And on the right side, you can see user comments. Some users, when they rate the packages, they'll leave comments there, those are posted in the forum of the package.
But since I wanted to show it here because there was one specific user that I interviewed that said, "Well, I'd like to see the opinions about other users." So, when there are users that give their opinion, it will appear here on the right.
Not all packages have other user's opinions. But in the future, I will encourage more users to provide more feedback so the site becomes more useful.
So the enhancements were great and the work will continue. And this ties with the next topic on which I'm going to comment about... Sorry, let me get back to the article here.
Plans for Upcoming Developments of PHP Classes and JS Classes (1:07:00)
Manuel Lemos: There was an article here that celebrated the 15th birthday of the PHPClasses site. And it just reviews what was implemented in the last year in terms of new features. And also, other features that are planned or they will be implemented sooner or later.
Some of them were postponed features, as in features that were thought to be implemented in the past but they were not implemented yet.
Cesar, from these features, do you have any favorite features that you would like to see implemented in the future versions of the PHPClasses site?
Cesar Rodas: From the top of my head, I guess, I would love to have a better search engine. Because your target is really, really specific which is just PHP language. I think that if you could add search box, there's a search method or search functions, that would really be helpful. It's just one setting.
Manuel Lemos: You mean searching the actual code, not just..?
Cesar Rodas: Yes, within the code. Say, I need a function which is specific, which I saw in one of your packages, I could just paste there the function name and that will just bring me this package task, this function name. Something like that. That will be cool and wouldn't be difficult. I'm not saying that it's easy but not that difficult.
Manuel Lemos: Yeah, the current search engine is very outdated. It still crawls the pages and that's inaccurate to make more detailed searches so it will be replaced for a better search engine and it will allow to index packages in a different way, getting more details. And the whole search system will be improved.
But that is just one aspect. What I planned to do right next to this - actually, I'm already working on it - is having some way to get better class recommendations for specific purpose.
Like for instance, if you want to implement a package for a certain purpose and there are many packages that come out in the search results, probably it will be a bit of a stress because users will see many packages and then they have to try all of them to see which one is the most recommended and that is hard.
So I'm working on a solution that will make that easier and I think we'll get back to that like in the next few months. For now, I'm still evaluating how to do it. I'd rather not get much into details how it would come up but that is the intention.
Then, there were other proposals to improve many things. I'm sure I will not be able to do a good part of these things in the next year because there are too many things to be improved.
But the thing that ties to the previous article that we are commenting and the site design is that during the research interviews that I did with several users, I realized that there are other things that need to improve.
Actually, there are new features that need to be added that not the PHPClasses site now nor other sites are having, or at least doing it right.
And that is the other comment that I wanted to make before, related with improving the site design, improving the user experience.
And this is all to say that the future of the site is to continue to improve and continue to provide better user experience and make it more usable, more useful and more pleasant to use.
So we'll keep getting back to this topic. And once again, I would like to thank Cesar. Not just Cesar, also Arturs Sosins, Ernani Jopert and Josef Brunner which is a contributor of the JSClasses site. And also, Mario Morais which was another user that helped giving feedback about the site, what to do in the future versions.
So for now, that's mostly what I wanted to say given that we are already advanced in time in this Hangout.
JavaScript Innovation Award Winners of April 2014 (1:12:31)
Manuel Lemos: So we are going to move on to one of our final sections on which we comment on the latest innovative packages, first, of the JSClasses site.
So we are going to comment on the winners of April. They were voted on May and then in June, the results came out so we can comment about them now.
And now, Cesar, which ones would you like to comment? There are four.
Cesar Rodas: If you can help me because I don't think my screenshare is working. So I'll talk about the first one, let me see which ones I've chosen. Yeah, about the...
Manuel Lemos: Simple Chart?
Cesar Rodas: No, it's display and edit in place data in HTML tables.
Manuel Lemos: OK, let me just open the page here. Sometimes the screensharing stops. Yours is not working?
Cesar Rodas: No, it's not working.
It was developed by Andras Toth, I guess is his name. He's from Hungary. I think I'm pronouncing it right. I always have problems pronouncing it.
[Laughter]
Manuel Lemos: No problem, you got it right.
Cesar Rodas: Yeah. And the idea is simple. It's a jQuery plugin and it lets you change data in place within tables and it lets you post towards your servers, so you can process all these changes. And the other one that I've chosen is the...
Manuel Lemos: Let me just put it up here again, because I think it has some screenshots.
Cesar Rodas: Sure.
Manuel Lemos: Yeah.
Cesar Rodas: Yeah, it has one...
Manuel Lemos: Let me share the screen here. Right, there are some screenshots. It's bigger. Now, with the new design, it's easier to see, you can see just like you mentioned, the tables are editable and you can perform other operations like searching and editing on screen.
Cesar Rodas: Yeah, it's something that, instead of doing it yourself, which I know that many people are capable of doing it, it's much easier than just using it.
So, I sort of like it. I really like it, to be honest. I don't like doing this kind of project. I rather use it.
And the second one, I'm going to talk about is the jQuery plugin to display bar charts. And the good thing is that it doesn't use Canvas and it use DIV elements and that's always good because it can run into other browsers, older browser or less capable browsers. So, I don't want to give brands but there are set of browsers which are less capable of and this works.
So it was developed by Robert Haddad. I guess his family name is from Jordan.
Manuel Lemos: Yeah.
Cesar Rodas: And this was the winner, I think, so good. Congratulations, Robert.
Manuel Lemos: Yes. It's always good to... Sometimes the purpose is very simple but the packages are very useful and they provide certain features that are interesting.
So, on my behalf, I would like also to comment on a couple of classes. Let me just reload them here so I can see. There's a lot of the users to see in the newer interface.
And the first one that I wanted to comment is MH UI. It's to build HTML user interfaces dynamically. So instead of you having the HTML defined user interface, you can add elements.
So the package is building your user interface. You can make them either work in a model interface or model mode or a toast user interface, as they call it. So it is generally used for many purposes.
Congratulations to Matteo Hertel from the United Kingdom for his contribution. I hope he can send more and more packages like this.
And the next package that I wanted to comment is somehow an unusual package. It's called Spritesheet Animation Manager, which is basically to use sprites which is basically a way to gather many icons, many pictures in a single image. And this is used to produce animations.
It's just a shame there is no example here. Actually, there is an example of a sprite but not maybe something that demo the package.
As you may see here, this picture shows many characters in different positions. And what this package allows is to show just one character in one position and proceed to animation and it switches to different positions of the same character depending on where your character move.
And this is interesting to develop games for people that are interested in games. This is very, very interesting and I would say quite advanced because it takes advantages of Sprites on browsers to implement animations.
And that was for the JavaScript classes. I'll just mention that this package was developed by Jimmy Bo. He already has provided several interesting packages and he's from Canada.
JavaScript Innovation Award Ranking of 2014 (1:19:26)
Manuel Lemos: And talking about developers that have contributed several packages, I would like to comment briefly just about this Innovation Award ranking for the year.
As you may know, starting this year, there is a ranking, not only by author but also by country. And the country that wins by the end of the year will win a special prize. This means that all nominated authors of that country will earn that prize.
So, the ranking for authors in 2014 is lead by Andoitz Jordan Marmolejo. He has contributed 2 packages and earned 10 points, followed by Jimmy Bo - I just mentioned about him - with 3 packages and 7 points. And then, there are several other authors with just one package. I hope they can submit more package to rise in the rankings.
And by country, so far Spain is leading, thanks to contributions of Andoitz. It's followed by Canada, also thanks to Jimmy Bo that submitted the 3 packages that got all the 7 points that Canada earned. Then, it is followed by Italy with 2 packages and 6 points, and then several other countries with just one package. So we are still early in the year and this ranking will evolve.
PHP Innovation Award Winners of April 2014 (1:21:00)
Manuel Lemos: So now, moving on to the PHPClasses, PHP Innovation Award winners, there are 6 nominees in April. And let's comment about a couple. Cesar, which ones would you like to comment?
Cesar Rodas: On the PHPClasses site, right?
Manuel Lemos: Right.
Cesar Rodas: OK. I'm choosing two. The first is the Cripto PHP, which basically...
Manuel Lemos: OK, let me just...
Cesar Rodas: Open it.
Manuel Lemos: Since you are not able to share your screen, let me open the package here so I can show it myself. And OK, I think this is the one, right?
Cesar Rodas: Yeah. This class has been developed by Andoitz Jordan - I think it's 'Jordan', Spanish name - and its purpose is quite simple.
It can encrypt source code and it can decode source code. You need a password to execute the program, so that's how it is encoded. Because if you can execute the program, you can see the source code in PHP. So that's why you need a password to run it.
I don't see myself in a situation where I would use it. I would rather use the same principles to encode all the things like messages or something like that. So if you ever have to encrypt anything and decrypt, I would suggest that people look at this class.
Manuel Lemos: This is more like, I think for those cases that you probably want to ship some code that you don't want your boss to peak at the code because he's too dumb and is not able to decrypt the code.
[Laughter]
Cesar Rodas: Maybe.
Manuel Lemos: At least you would be able to alter it. But obviously, somebody that understands enough about this can always decrypt the code because the password has to be provided.
Cesar Rodas: Yeah, I think the code is good. I don't think the whole class is good enough to myself. I'm speaking about myself, where I would use it. I think it's symmetric encryption when you need the same password to decrypt and encrypt.
Manuel Lemos: Yes, that's the case.
Cesar Rodas: So it's really good. If I ever need to encrypt something, I would definitely go there and see how they are doing it and I will implement it that way.
It's really good. The second class that I would speak about is the PHP OpenStreetMap Mapnik Tile Cache. It has a very long name. It was developed by Wayne Philip. He's from Namibia.
And the idea is to show the OpenStreetMap but cached in your server, so you don't have to use the public server or some other server. And you don't have to do all the hassle of just installing new maps every week and decompression and things like that and couple of things that developers don't want to mess up with.
So this class makes it simple. And I do work with OpenStreetMap in a few tiny projects, so definitely I will keep an eye into this class.
Manuel Lemos: Yeah, that's really great from Wayne Philip. Oh, well, he's from Namibia, right?
Cesar Rodas: Yeah.
Manuel Lemos: So, on my behalf, I would like to also comment on a couple of classes. Let me start showing this one before... Not exactly this one. This one. OK, here it is.
This is PHP Autotest which is sort of code integration package because it, I mean, continuous integration. Because it runs on the test that you have in a package and reruns them once you change the files in a project.
So it keeps monitoring the code of your packages and if it sees that one of the source files has changed, it will run the test again to see if they break anything and present results so you can fix any problems, sooner rather than later.
So this is an interesting solution for people that are really into testing and fixing code as much as possible, as soon as possible. And this solution is provided by Dmitry Merkushin. I'm not sure if this is the right way to pronounce the name and he's from Russia.
And the other package that I wanted to comment is this one, Curly which is to test sites. It's a different kind of testing. You test your code by sending Web requests, HTTP requests to the server when your code is running, so it actually test the pages and stuff.
And the difference here is that this package, it will test the code based on specifications of what to test, how to determine if the response is correct using XML format to define what to test and what to expect.
And so, this is interesting, an interesting solution by somebody that calls himself zent00 from France. So, this is obviously not his real name, but that's OK. It's just great that he sent his contribution and it was his first package and it was already nominated.
PHP Innovation Award Rankings of 2014 (1:28:00)
Manuel Lemos: So just to end, I would like just to comment on the standings of the ranking for the Innovation Award also at PHPClasses.
As you may see in this ranking here, again, Andoitz Jordan Marmolejo from Spain is leading. So, he's quite active not just in PHPClasses but also in JSClasses packages, followed all by Orazio Principe from Italy, also 2 packages but only 11 points. And there's Roger Baklund from Norway with 3 packages and 9 points, Chi Hoang from Germany with 3 package and 7 points. Then there are several other authors with just one package.
By country, so far, Brazil is leading with 3 packages and 17 points. So, despite...
Cesar Rodas: You are from Portugal, not from Brazil.
Manuel Lemos: No. Yes, but in this case, my country ranking is quite lower. Anyway, just to mention that despite Brazil did not do very well or at least as Brazil has hoped, at least in the PHP Innovation Award...
Cesar Rodas: It's something.
Manuel Lemos: it's actually leading. It so far has 3 packages on Brazil's 17 points, despite they are from different authors which is interesting because despite those authors are not leading the ranking, they are a bit delayed, they contribute together to bring Brazil to the first place.
And it is followed by Spain with also 3 packages at only 15 points. And then, Italy with 3 packages and 14 point. And then there is Norway and Germany also with 3 packages and several other countries with less points.
Well, at least in PHP Classes, the rankings are getting interesting because collectively some country like Brazil are taking advantage of different authors' contributions to lead the ranking.
Conclusion (1:30:40)
Manuel Lemos: Well, with this we practically reached the end of this already long podcast. I just would like to thank Cesar for coming back.
Actually, welcome, Cesar, back to the podcast because he has been busy with his marriage. I hope he's already settled within his new house as Mr. Rodas.
Cesar Rodas: Yeah, some time.
Manuel Lemos: I hope next time it would be easier to schedule this hangout that was delayed for two weeks, but finally we made it. It was great because it covered great topics and it is always great to have your insights.
Cesar Rodas: Yeah, in theory scheduling, next month should be easier. As you all can see now, I don't have an office yet, I'm outside. But that's fine. It would be much, much easier next month.
Manuel Lemos: Yeah, I hope so. So with this, we finally ended this podcast. I thank you again for coming. On my behalf, that is all for now. Bye.
Cesar Rodas: Bye.
[Music]
You need to be a registered user or login to post a comment
1,616,405 PHP developers registered to the PHP Classes site.
Be One of Us!
Login Immediately with your account on:
Comments:
1. What to call the Next Version - Larry Wakeman (2014-08-08 00:24)
What Version?... - 1 reply
Read the whole comment and replies