PHP Interview With Vito Chin Lead Maintainer Of Gmagick Extension For PHP – Learn More About The Ecosystem That PHP Is Usually Part Of

Contents At Glance

Purpose Of This Interview

This is the #33rd set of PHP Interview to help aspiring PHP developers and PHP fans alike to get inspired by listening from those PHP guys who are already highly involved into the PHP Ocean and being ‘there’ taming the waves and surfing better than ever to make themselves an Awesome PHP Expert both in their own eyes (for self-accomplishment) and for the PHP Community. On the other side, this is an opportunity for new PHPers to get to know their “PHP Elders. I hope you will derive as much fun to read my interviews as I’m having by interviewing those A-List PHP guys.

A Small Intro..

Vito Chin - The Lead Maintainer Of Gmagick Extension For PHP

Vito Chin – The Lead Maintainer Of Gmagick Extension For PHP

In this edition I talked with Vito Chin who is a multi-talented, cool geek; @vitoc has a first class honors degree in Software Engineering, is a co-founder of lentor.io, is the lead maintainer of the Gmagick extension for PHP and is the co-author of the PHP book “PHP Development in the Cloud by Ivo Jansch and Vito Chin” – (btw Rafael Dohms, our Brazilian PHP Ronaldo made a review of that book here). I invite you to learn from Vito’s PHP and programming experience..

And Now The Interview…

>> Please tell us a bit about yourself

>> How you started with PHP

It was 2001, a friend who came back to town on summer holiday from the University of Leeds told me about this new language he’d picked up at the university. I was mostly doing Java back then, but I had decided to check out PHP for a bit and preferred it since, most of the time.

>> Your LAMP stack comprises.. ?

It depends a lot on the project. I always run “LAMP” on a VM because every project has a different sandbox-ing ecosystem. For L, I now prefer Centos with Les RPM de Remi :)

>> The relationship between You and The PHP Community comprises..

I maintain Gmagick - a PECL extension that wraps GraphicsMagick and write articles occasionally for PHP magazines and sites. I am also fortunate enough to had worked with many that are really active in the PHP community through various commercial projects.

>> How do you find PHP now as compared to when you first started

How PHP has evolved is evidence that open source software can be very practical and sensible. When I first started, OO within PHP was still at its infancy and was still evolving. Now OO within PHP is mature. I definitely enjoy PHP more now, with the introduction of namespaces and anonymous functions.

>> Based on your experience, what are the good and bad parts of PHP

PHP allows us to shoot from the hip, its good and bad because of that. Like most languages, PHP code can be written in all sorts of ways. Though with PHP, it does seem much easier to string together quick code that does the trick right now but may come back to bite you some time in the future when it is used as part of some other piece of code.

PHP doesn’t impose a lot of rules on you, that’s pretty good if you need to be in the flow when not implementing based on specification but rather just idea-ting from code in the first place. Though for many larger projects, we kind of need more rules around for the sake of security, re-usability and teamwork.

>> What would be the Top advice to a PHP beginner

var_dump($var);
exit;

>> To someone who wants to become a better PHP developer..?

Learn more about the ecosystem that PHP is usually part of; tools such as Puppet, supervisord, Varnish, Jenkins and memcached. Also, check out PECL more.

>> The best PHP book you’ve read

  • Ivo Jansch’s Guide to Enterprise PHP Development

This is a rather old book now, but I think it was written at a pivotal time where a lot of PHP guys in general had decided to move towards introducing more formality to their development process. I met Ivo around the time the book was published and still remember how exciting it was back then that PHP is getting a lot of love from enterprises.

>> A PHP blog or resource you highly recommend

PECL.php.net

>> The IDE that you use

Sublime Text hands down.

>> How do you debug your PHP code?

Mostly:

var_dump($var);
exit;

>> A PHP framework you use and would recommend

Zend Framework 2

>> A unit test framework you recommend using?

PHPUnit

>> One PHP library/Project you really appreciate

I really appreciate the range of functionalities that PECL projects covers.

>> One PHP person that you admire and what strikes you about him/her

There’s too many to name. I can’t choose one :)

>> A PHP Usergroup that you appreciate and would highly recommend

I enjoyed PHPLondon. Great location, great atmosphere. I remember it was always a dark, cold night walking from Charing Cross to this rather ancient pub to listen to great speakers sharing on PHP.

>> Which was the worst programming mistake you did?

All I can say is, if you use mysqli, after creating a statement like this:

$stmt = $mysqli->prepare($query);

It is always a good idea to check the return value of $stmt->execute(); before going any further in your code. ESPECIALLY in a high load environment :)

Vito Chin and Performance

>> How do you define performance as applicable to a PHP project

There are different ways to look at performance of a PHP application. Typically, look at execution time, CPU utilisation and memory consumption at least.

>> When should someone care about performance?

Good question. I had just been thinking lately that re-usability and performance may not necessarily be seeing each other eye-to-eye all the time. Reusability though had been much more emphasised and exclaimed in popular literature. Holistically, software engineers will always have to balance the factors when it comes to designing and writing software. Performance is one of these factors. For projects with a hard goal on performance, it will be nicer if everyone thinks about it early on than have it patch on later with some brutish mechanism.

>> What areas of the system usually need to be listed for performance assessment?

  1. CPU
  2. memory
  3. network bandwidth.
  4. Database connections
  5. web server MaxClients

>> When I’m coding something, how can I test the performance of my system, what is the setup that is needed?
(Any tools that you use and would recommend?)

Xdebug has a nice profiler that you can turn on via:

xdebug.profiler_enable = 1;

Once that is enabled, Xdebug churns out cachegrind output that you can visualize with KCacheGrind or xdebugtoolkit.

>> Other notable tools out there?

There are a lot of tools out there that tests performance under load such as Apache JMeter. BeesWithMachineGuns may be a good look, runs micro EC2 instances.

If You Appreciate What I Do Here On Seven PHP :: 7PHP, You Could Consider:

  1. LIKE-ing 7PHP dot COM on FaceBook
  2. Help diffuse this interview to the PHP ecosystem – Share, tweet and spread the word to your audience ==> That would be a FREE way to thank me
  3. Make a comment below using the comment form

{I’m thankful to your response(s)!}

Speak Your Mind

*