PHP Developers, ensuring you using the right tool while writing beautiful applications, will prevent you from wasting time.Tweet this
- Purpose Of This Interview | The 1st One
- What Are The Tools That Michelangelo van Dam (aka DragonBE) Use!
- » Who Is Michelangelo van Dam
- » Hi Michelangelo, before we actually discover your toolset and secret weapons, How Much Of Importance Do You Think Tools Can Play In The Life Of A Developer.
- » How Does Your Workstation Look Like
- » The OS That You Use
- » What VM software you use
- » Your Database Management Tool
- » Your Testing Tool (Unit Testing & Functional Testing)
- » Your Debugger / Debugging Tools
- » An ERD Tool
- » Version Control System You Use
- » The Framework(s) You Use
- » Your IDE or Your “Programmer’s Editors” of choice
- » Your Documentation Tool?
- » PHP Code “Beautifier“
- » In-Browser Tools (Firefox or Chrome add-ons)
- » Web Hosting space you use
- » What Software You Use For The Following:
- »> Time Management
- »> TODO List Management
- »> Your Calender & Events
- » Any Other Tools You Use That You Want To Share With Us?
- » Michelangelo ALL That Were Awesome! Before We Wrap Up, What Are The Two COMMUNITY Tools That Stood Out For You & Why.
- Thank You For Reading
Purpose Of This Interview | The
Hey! First of all I would like to wish you all an amazing 2016 full of every good thing coming your way! And thank you so much for being and sticking with 7PHP, I’m really thankful to all of you.
Kickstarting this very first day of this fresh New Year 2016, 7PHP is delighted to bring to your PHP home a new interview series, named “It’s The Tools Talking!“. And for this
episode #1, I’m honored to host our 7PHP Superstar Mr Michelangelo van Dam!
I hope you’ll enjoy reading about – what the PHP rockstars are using as their ‘personal secret sauce‘ in crafting their masterpieces – as much as I am while reading all about them.
Before we proceed further, just a little piece of info. This new series’ concept is inspired by, our Icon Of The PHP Community, Mr Cal Evans’ podcast & and one of his blog post:
- It’s the booze talking podcast – hence my title.
- his blog post on 5 Tools Every PHP Developer Should Master – hence the birth of an inspiration for the content of my title.
So dear @CalEvans, while you were offline enjoying your well deserved boat cruise for this end-of-year festivities, I got inspired by your “online” activities – so just to say that I cannot “say-enough about” how cool you are even when you are not around!
#phpc folks and aspiring
#PHP rockstars, let’s do this! Let’s Rock it!
What Are The Tools That Michelangelo van Dam (aka DragonBE) Use!
» Who Is Michelangelo van Dam
DragonBE has been featured countless times on 7PHP. So he needs no intro :)
» Hi Michelangelo, before we actually discover your toolset and secret weapons, How Much Of Importance Do You Think Tools Can Play In The Life Of A Developer.
As a developer your work is to ensure that you can do your job to the best of your ability. The right tool for the job is a requirement to make sure that you don’t waste time while writing beautiful applications.
» How Does Your Workstation Look Like
I always work on my 13″ MacBook Air because it gives me enough power to do my job without too many distractions. My iPad serves as communication dashboard to see what’s happening in the rooms.
I have always
Outlook open on my
MacBook Air and
Slack on my
iPad. Of course,
my_coffee_mug (thanks Gary!!!) stands firmly besides my laptop.
Instead of a real standing desk, I’ve claimed a “party table” as my working space. Besides having me standing up while coding, it also serves as an ideal meeting spot as you can now have multiple people standing around your desk. And for some bizarre reason the height of this table is perfect for me to stand on.
In order to understand what I’m doing, I like to talk with my
elephpant and explain him the steps like a chef-cook does on TV. Rubber Ducking as people call it, but for me I call it “Fluffy elePHPanting“. Most of the time it helps me solve a bug or find a logical error I made. I can truly recommend it to everyone.
» The OS That You Use
My workstation is a MacBook Air running
OS X and has the latest, greatest
PHP running on it just in case I need it (I recently blogged about it). But I also run several virtual machines like
CentOS as these are the common server configurations my customers use for running PHP applications.
The reason I had chosen
Apple for my devices is because their backup and recovering system just works! I had already gone through a couple of hard-disk crashes or other issues, after replacing the broken part the recovery system kicked in and after a short while the system was restored as though nothing happened. This is in the consulting service industry a “must-have” feature I wasn’t able to find with other platforms.
» What VM software you use
Virtualization comes in many flavors and I use whatever my customers are using.
VMWare is still the most common virtualization software I come across, followed by
VirtualBox for those development teams that work with
Vagrant. Occasionally I bump into
Xen Virtualization and recently
Docker. I guess the image below says it all: I love automation!
» Your Database Management Tool
For the majority of the time I use the CLI clients as they are fast, gives me a whole bunch of features right out the box and can run even on remote systems in a terminal.
I also use
MySQL WorkBench for MySQL databases,
MongoHub for mongo storages,
Microsoft SQLServer Client for MS SQL Server and the Oracle Client software.
But more and more I’m using the build-in database client of PHPStorm as it supports a wide variety of vendors and is easy because I don’t have to leave my development environment to run queries.
That said, I use the DB clients only for trying out complex queries or checking some structures. The provisioning of the databases I leave to
DBDeploy (Yeay, automation FTW!!!) as it allows me to version my data migrations easily and repeatedly. I have posted a nice article about DBDeploy as well on our company website.
» Your Testing Tool (Unit Testing & Functional Testing)
I guess the whole world knows by now I am a huge fan of PHPUnit (with kudos to Sebastian Bergmann). PHPUnit will be my first stop writing tests before writing code. Yes, I’m an old fart still believing in TDD but for me it gets the job done.
For acceptance testing I rely on
Selenium as it allows me to use
PHPUnit to trigger Selenium tests in a variety of web browsers on different platforms, approaching the application as a real user would.
For stress testing I look at
For penetration testing I use a variety of tools, but I think
OWASP ZAP will be the most known penetration test suite.
» Your Debugger / Debugging Tools
Nice, a trick question! I use
PHPUnit for debugging most of the time, and
XDebug for step-by-step debugging. We also hook up our PHP error handler onto
Sentry so it gives us an overview of bugs that occurred on our systems as it aggregates and referentiates our errors.
» An ERD Tool
Any UML design tool will do, I use
MySQL Workbench most of the time for that.
» Version Control System You Use
GIT, but sometimes I end up with a customer using
Team Foundation or
» The Framework(s) You Use
Laravel. Of all frameworks, I still love Zend Framework the most. I don’t know why, but for some reason it’s behaviour makes more sense to me than any of the other frameworks.
Leaving out the debate if the following are considered frameworks, I have gotten closely involved with WordPress, Magento, PrestaShop and Typo3. Working with these “frameworks” is a bit awkward, but once you understand the logic behind it, the whole thing makes sense.
I cannot deny that PHP itself is a very powerful technology and in start-up face of a project it’s more than enough to work with to get a first proof of concept. The nice thing is, that you can easily move native PHP towards any of the above mentioned frameworks as long you apply the SOLID principles and adhere to KISS.
» Your IDE or Your “Programmer’s Editors” of choice
Well, I already mentioned
PHPStorm. That’s something I use 95% of my time developing PHP. The rest of my time I spend using
I’m also using
vi on the command line for editing work, but I’m not using it as an IDE like the “Supreme Allied Commander“, Mr Matthew Weier O’Phinney (@mwop) does.
» Your Documentation Tool?
Code documentation are first and foremost the unit tests, but we also provide code documentation using
User documentation I used to write in O’Reilly’s DocBook format, but nowadays it’s all
Markdown. I use the build-in editor in PHPStorm or I use Mou. It’s so much easier then in DocBook XML format.
» PHP Code “Beautifier“
Huh, wait… what? I use
PHP_CodeSniffer in my pre-commit hook so I cannot commit if my code doesn’t adhere to the coding standards.
If I need compact PHP code, I simply use
$ php -w to minimize my PHP files before deployment.
» In-Browser Tools (Firefox or Chrome add-ons)
Haha, this is the point where I will make myself very unpopular with the majority of developers.
In development I use
In my other browsers I use
NoScript (of course),
AdBlocker (to test our client’s advertisement strategies),
Proxy Switcher (for geo-targeted web applications),
Postman REST client,
FireBug and the
» Web Hosting space you use
My personal stuff ends up on Microsoft Azure as this is the easiest way to run your PHP apps, period. I have a dedicated hosting for our company websites, I use Google for hosting my personal blog, I’ve got some stuff on Heroku, Digital Ocean, Amazon and Azure and some stuff at local Belgian hosting service companies.
Our customers have the full spectrum: cloud, dedicated hosting and on-prem.
» What Software You Use For The Following:
»> Time Management
»> TODO List Management
Things, Phabricator, MantisBT
»> Your Calender & Events
» Any Other Tools You Use That You Want To Share With Us?
One of the most important tools you missed out on: communication!
We use Slack all over the place, but Skype is still running strong on 2nd place. GotoMeeting and IRC are also heavily used with our customers. Lync and HipChat are less used communication tools. Google Hangouts/Chat, WhatsApp and Facebook chat are almost never used in professional environments.
I do see an uptake in the more “secure” forms of communication. Tools like OpenPGP, CryptoCat, Chat Secure and Signal are becoming more popular since recently. I do think that we will see a lot more encrypted communication tools coming in 2016.
» Michelangelo ALL That Were Awesome! Before We Wrap Up, What Are The Two COMMUNITY Tools That Stood Out For You & Why.
The Netflix Chaos Monkey or Simbian Army: Netflix, famous for its streaming film offering, serves a global audience with a very high uptime demand. In order to stress-test their infrastructure, Netflix has created the Simbian Army to perform resilience tests on their live systems and services. This is in my opinion the only valid way to put your infrastructure under pressure by having key elements being ripped out, shut down or closed off to see if the remaining parts are capable of handling the enormous usage of your systems.
Composer: I think that this is not a surprise. Composer has shaken the PHP world and has given developers the ability to build SOLID micro tools that can be combined with others and create a powerful system.
Thank You For Reading
That’s it folks! Hope you like and enjoy what you’ve read. And that you now have more awareness of new tools and where & how people “out there” are using and benefiting from them.