A Small Intro..
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 Cal, 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!
PS: Please if you like what I do here on 7PHP, spread the word and help me get more followers either on Twitter, Facebook or Google+.
PPS: Share this article on your social network – there are handy social buttons before and after this post to help you with this.
– I’m thankful to you!
Ok dear #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. To know more about him, have a look here at this link dedicated to him.
>> 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 PHPStorm, Phabricator, Itunes and 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 Windows XP, Windows 7, Ubuntu, Debian, OpenSuSE and 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 phpMyAdmin and 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 Apache Benchmark, Siege and JMeter.
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 occured on our systems as it aggregates and referentiates our errors.
>> An ERD Tool
Any UML design tool will do, I use Omnigraffle or MySQL Workbench most of the time for that.
>> Version Control System You Use
Mainly Subversion and GIT, but sometimes I end up with a customer using Mercurial, Team Foundation or Bazaar.
>> The Framework(s) You Use
Zend Framework, Apigility, Slim, Silex and 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 XCode, Zend Studio, Netbeans or Visual Studio.
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“, mister Matthew Weier O’Phinney does.
>> Your Documentation Tool?
Code documentation are first and foremost the unit tests, but we also provide code documentation using PHPDocumentor.
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 Lynx as my main browser. It’s only text based, no JavaScript or CSS is supported and is super fast for validating web applications. With Lynx I see what search index spiders see, but also what screen readers capture for the visual impaired users of the web application.
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, YSlow, LiveHeaders, Selenium IDE, FireBug and the XDebug plugin.
>> 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, DigitalOcean.com, 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
FreshBooks
>>> TODO List Management
Things, Phabricator, MantisBT
>>> Your Calender & Events
Google Calendar
>> 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.
Over To You!
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.
Do you use any of these tools?
Do you use something different?
Either Way, Leave a Comment Below! Cheers!
PS: Don’t forget to Ask Michelangelo ANY question you may have regarding the above by also making a comment below, we’ll follow up!