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.

The Leaders We Deserved by Alvin S. Felzenberg (Book Review)

History has the potential to be our tutor in humility. I will not claim any excellence in humility, but I will say that what humility I have is in large part due to reading history.

The Leaders We Deserved by Alvin S. Felzenberg is one of the better historical tutors as it exposes to us not only the lives and actions of our leaders but also the times, controversies, and cultures in which they led.

History can be dull and dry – because the writing makes it so, or the topics are mundane, or because we fail to see what it has to teach us. Yet history can also be exciting and insightful – history teaches us truths like:

  1. Those we judge today as scoundrels or imbeciles are oftentimes our heroes of yesterday.
  2. What seems the only way, the right way, frequently proves the wrong way with the passing of time.
  3. We are greater and worse than those who came before us – leaving us to consider, will we search out the sins of our generation and forsake them or will future generations look back at us in dismay?
  4. We repeat our past with variations. We are not the first to face such a dilemma, nor are we likely to be the last.
  5. People operate within a personal and cultural milieu; their actions are heavily weighted by their experiences and a little more listening, a little more grace, can go a long way towards understanding and appreciating the other.

Lets look at a few examples and I will share some of the lessons I learn from these historical truths:

  1. Anti-immigrant sentiment is not a new phenomenon. John Adams supported and enforced the Alien and Sedition Acts which specifically targeted immigrants. (pg. 258)
    1. Lesson: Anti-immigrant movements are not a new phenomena nor should one dismiss such movements as intellectually crippled, for great minds have supported them.
    2. Question for Consideration: Who were anti-immigration policies focused on? (Hint: Those who now proclaim themselves proudly and truly American were oftentimes the very individuals opposed in the past, e.g. the Irish)
  2. Nor is suppression of freedom of speech a new phenomenon – as John Adams used one of the laws in the Alien and Sedition acts to suppress political opponents. (pg. 258)
    1. Lesson: Freedom of speech has been threatened by great leaders in the past; it is not a new threat, nor does it being threatened mean that we are imminently facing its extinction.[1]
    2. Question: Who else in American history has constrained the rights of American citizens? (Hint: Abraham Lincoln suspended habeus corpus; under FDR during WWII we placed over 160,000 Japanese Americans in concentration camps)
  3. Under Andrew Jackson we were the perpetrators of horrific acts of human rights violations as we manhandled Native Americans.[2] (pg. 261)
    1. Lesson: While we should oppose human rights violations around the world, we should not pretend that we are above such abuses.
    2. Question: What other atrocious acts have been committed under the authority of the United States? (Hint: Look for our purposeful infection of individuals in Latin America with a horrible disease, we are talking 20th century; also some of the regimes we have supported despite their genocidal human rights violations)
  4. Ulysses S. Grant fought for African American civil rights but his endeavors were not lasting enough to offset the foundation of the Ku Klux Klan, which violently enforced segregation and subjugation. It was with 700,000 Southern African American voters that Grant won the election; but, fast forward a short time into the future and African American civil rights would again be suppressed – including the right to vote. (pg. 278)
    1. Lesson: Americans allowed slavery to endure for a lengthy period of our history and when it was ended there was hope of a new equality, but we failed to protect those who were vulnerable and ensure that might didn’t make right…it was our inaction that allowed subjugation of our fellow members of humanity to continue on.
    2. Question: What other sorts of racism surfaced later in American history? Have we seen any recently? (Hint: Look for riots not just in Southern states but Northern as well – I’m looking at you, New Jersey, for one)
  5. There is something to be learned from Ulysses S. Grant whom Felzenberg notes as the only president “to apologize in his farewell message for his personal and policy failings.” (pg. 285)
    1. Lesson: It requires a deeper dive into U.S. Grant’s personality and circumstances to determine whether this apology came from a healthy place and whether it is something to be imitated by others. At first glance, though, we behold a refreshing humility for one of our elected leaders – the ability to admit one’s own incompetence.
    2. Question: What other American leaders have apologized for their actions? What is true about the character of these individuals as opposed to those who refused to apologize or did so in a belittling manner? (Hint: John F. Kennedy, Richard Nixon, and Ronald Reagan may be a good start)
  6. Under Franklin D. Roosevelt America placed into concentration camps (and thereby abandoned the constitutional rights of) 120,000 Japanese Americans (60%+ were American citizens). (pg. 314)
    1. Lesson: Even if our cause is right we are capable of making grave mistakes that permanently and negatively affect the lives of others.
    2. Question: Have we placed other individuals into concentration camps or otherwise significantly curtailed their liberties? (Hint: Look into the historical treatment of the mentally ill and of those who were ill with HIV/AIDS)
  7. John F. Kennedy, in some ways an astute and successful leader in foreign affairs badly bungled the American-backed invasion of Cuba (pg. 355), and his numerous dalliances with the opposite gender could have been disastrous for national security. (pg. 356).
    1. Lesson: As we consider who will be most careful with our national security it is important to remember that heroes of the past had their great weaknesses as well.
    2. Question: How was John F. Kennedy’s health while in office? (Hint: Look into the consequences of his wartime injuries [WWII] and how this was handled and hidden during his time in office)

What historical books have you read? What lessons have you learned from specific historical events? What questions have historical events raised for you?

  1. [1] Not that I am suggesting we should stop fighting for freedom of speech or be aghast at attempts to deny it, only that in historical context our doomsday predictions are usually not fulfilled.
  2. [2] Some balk at the idea of the United States mistreating Native Americans, insisting this was brought on by their own misbehavior. Even if we were to grant this premise, we would still have committed many acts of atrocious violence against Native American civilians. Sixty thousand Native Americans died traveling the Trail of Tears! (pg. 263) It may also be worth noting that this horrific behavior was opposed by individuals such as American hero, Davy Crockett. (pg. 264)