Setting Up A Development Workstation

What Is This?

I wrote this primarily for myself – sometimes I don’t remember everything I do when setting up a workstation for development purposes…it may be of interest to others.

You’ll note that there are several areas missing from this arena – no build automation, task runners, etc. Maybe I’ll get around to adding them once I settle on some…but in the meantime, this still works for me.

[See bottom of this document for a list of revisions to this document]

Everybody Uses…

Version Control

  • Install Git for Windows for version control, ensure that Windows PATH is selected during the install so that you can use git from the command-line without needing to use Git’s special CLI.
  • I’d recommend also getting yourself a GUI to manage Git. Personally, I prefer that the editor I’m working in provide Git integration, but sometimes this isn’t available – in which case Atlassian’s SourceTree seems to do a good job.

Editor / IDE

IDE stands for Integrated Development Environment. This software offers numerous tools to expedite code development.

Editors on the other hand are much simpler, yet some people prefer them. We’ll look at a few of each of these.


  • NotePad++ – This is my base editor. The User Interface isn’t amazing, but it works beautifully. Especially awesome when it comes to working with large files.
  • Brackets – An open source project by Adobe, has a number of useful extensions. UI is attractive, I use this one over NotePad++ usually, except for note files (NotePad++ remembers the text you enter even if you don’t save the file) and large files.
  • Visual Studio Code – Another open source option by Microsoft.


There are a huge number of options, Wikipedia has a fairly extensive list.

  • JetBrain’s phpStorm – JetBrain makes a number of different IDE’s and unfortunately isn’t the clearest on which IDE one should purchase. phpStorm handles most web-based languages, but lacks a clear emphasis on JavaScript that webStorm has (but which lacks some of the php integration).
    • See Gary Hockin’s Debugging VVV Vagrant Setup with PhpStorm for helpful instructions on integrating one’s VVV setup into PhpStorm for interpreter and xdebug purposes.
      • If you are wondering where your file lives: /usr/lib/php/20151012/
      • And Code Sniffer:
      • And PHPUnit:
      • And Composer:
      • And www folders:
      • And PHP:
  • Microsoft’s Visual Studio – An IDE with a long and venerable history, more recently integrating a number of Xamarin cross-development features into the IDE. The Community Edition is free.
    • WARNING: Depending upon options selected, this installs Hyper-V; if you are running another virtualization technology (Virtual Box) expect to experience BSoD errors. Unfortunately, I know this from personal experience and I am not alone.
    • Supports Visual C++, Visual F#, Python, C#/.NET, Android/iOS.
  • Google’s Android Studio – For the creation of Android apps.

Interacting with Databases

  • You’ll want something that provides a handy way for interacting with databases, in which case I recommend HeidiSQL.
  • If you don’t have a database server currently, you’ll need one. A couple options include MySQL, MariaDB, Microsoft SQL Server, and PostgreSQL.


Image Management

  • You’ll need something to create/edit images with, I recommend Despite its connection to a very basic predecessor (Windows Paint), this software can work miracles.
  • JPEGmini – Usually I wouldn’t recommend using lossy means of reducing image data footprint, but JPEGmini manages to offer significant lossy compression without any visible deterioration to the image, unfortunately it only works on jpeg files.
  • FileOptimizer – Offers compression for numerous different file formats in a lossless manner.

File Transfer

  • FileZilla is a good FTP client.
  • However, FTP is a plain-text protocol, so I’d look at using something SSH based like SFTP. In this case I’d recommend WinSCP or built-in functionality in your IDE (phpStorm for example).

Other Tools

  • You’ll also want a copy of ConEmu or another command line interface (CLI). This software is so much better than the default Windows console.
  • A good archive/compression application will make life much easier, and 7-Zip is the perfect application.
  • Hosts File Editor – While it hasn’t been updated since 2011, I find this software extremely handy when I want to make edits to the hosts file. It offers a nice GUI front-end for the hosts file and enables a number of different nifty features not built into the file itself.

Revisions To Document

  • 10/18/16
    • Added location of www pages on Vagrant.
  •  10/16/16
    • Moved VVV under Vagrant.
    • Added link to Louie R.’s article on using Vagrant/VVV.
    • Changed Basics for Developers to Version Control.
    • Added link to VVV Wiki Article about Connecting to MySQL.
    • Added section on database servers.
    • Added link to article on integrating with PhpStorm, location of
    • Added location of Code Sniffer; PHPUnit, Composer.

jpegMini: One Simple Step to a Faster Website


If you have a website, you should be using jpegMini. It is an amazing tool that decreases the size of (JPEG) image files without decreasing the visual quality of the images.

Why Does the Size of My Image Files Matter?

When someone visits a web page in a browser (ex. Google Chrome or Internet Explorer) the browser downloads all the files associated with that specific page to the local computer. The larger the files, the longer it takes for the download to complete. The web page can’t be fully loaded into the browser until the download is complete.

Most people won’t wait long for a page to load – after a few seconds most will browse to another website that offers the same information faster.

Decreasing the size of your images decreases the amount of data the browser needs to download which makes the page load faster and results in happy people (your viewers).

What Makes jpegMini So Special?

Some of the most popular options for reducing image file size are compressing, resizing, and (automatically) intelligently choosing images. Google has a great article explaining these and other methods of optimizing images.

jpegMini can be used alone or in combination with some or all of the above mentioned options and it will deliver size reduction even after all of the other options are run.

jpegMini uses complex algorithms to reduce the amount of data in the image while maintaining the same visual appearance. Essentially, the algorithms exploit the way our vision works – we don’t see perfectly and thus two similar images can appear identical to us.

Lets take a look at how this works in real life. I downloaded this image of a baby from Pixabay at 1920×1280 pixels. It is 521 KB in size. I run it through jpegMini and the file is now 226 KB – a 55%+ reduction in size! Try comparing the picture I linked to above with the jpegMini optimized file below.[1] Can you tell the difference? I didn’t think so!

Photo of Baby Sitting on Table Optimized by jpegMini

jpegMini is Free / Super Affordable!

You can download jpegMini for free and use it to optimize up to twenty images each day! This is more than enough for most small/medium sites.

If you want to optimize more images on a daily basis or simply express your appreciation for a great product, a license is $20.

There are several other options with jpegMini, most beyond what the average site requires – but these are also reasonably priced.

Do I Have to Be a Super Geek to Use jpegMini?

jpegMini is one of the simplest applications to use ever. Launch the application then drag and drop the file(s) you want optimized onto the application. Wait a few seconds and the files will be optimized and can be uploaded and used just like any other JPEG file on your website.


jpegMini is an awesome application that will help you reduce image size and thus reduce the load time of your website resulting in happy people. The application is easy to use and the price is right – what are you waiting for!


  1. [1] This image is smaller than the original image in canvas size. If you click on the image you can see the image at its full size.