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.

Editors

  • 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.

IDEs

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 xdebug.so file lives: /usr/lib/php/20151012/xdebug.so
      • And Code Sniffer:
        /usr/local/bin/phpcs
      • And PHPUnit:
        /usr/local/src/composer/vendor/phpunit
      • And Composer:
        /usr/local/src/composer/vendor/
      • And www folders:
        /srv/www/
      • And PHP:
        /usr/bin/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.

Virtualization

Image Management

  • You’ll need something to create/edit images with, I recommend paint.net. 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 xdebug.so.
    • Added location of Code Sniffer; PHPUnit, Composer.

Microsoft’s Free Development Tools.

Image representing Microsoft
Image via CrunchBase

I remember as a teenager programming for years in QBASIC – a free, lite version of QuickBasic Microsoft bundled with DOS and early versions of Windows. It was great fun – but I yearned to get my hands on the full QuickBasic so I could compile my applications and give them to others without giving away all my source code (okay, OSS was barely known back then).

Later I would save for months to purchase Visual Basic 5. $100+ is a lot of money for a teenager – but I wanted to program so bad that I scraped and saved.

After that there was the ASP.NET Web Matrix – a predecessor to the great tools Microsoft now offers for free. Unfortunately, its development was abandoned and for a long period of time I was left in a painful lurch….but then Microsoft started the trend that has made me extremely happy – free lite development tools.

These development tools include Visual Basic 2008 (for desktop applications), Visual C# 2008 (also for desktop applications, but in C#), Visual C++ (just like the last two), and Visual Web Developer (for web applications) – all in the Express line. Additionally they’ve thrown out there SQL Server Express (database back-end) and SQL Server Studio Management Studio Express (for writing SQL and managing databases).

While these applications are noted as “express” that doesn’t suggest that they are majorly crippled – rather they are extremely full functioning applications which can be used to create many impressive applications. For the new, hobbyist, or small business developer many times the Express Editions will be all that you ever need.

This was a smart move on Microsoft’s part – it gets people hooked on Microsoft development young – and it works great for us as well – because we get free development tools. By the time Microsoft expects us to shell out cash – well, we are probably making some from our now decent development skills. Go grab yourself some free development applications: https://www.visualstudio.com/vs/visual-studio-express/.

My Platform as a Service (PaaS) List.

Some people are going to be up in arms over this list – because it isn’t truly a PaaS (platform as a service) list. I’m sure some noticeable entries are missing and some non-noticeable entries are present. The order is random. I’ve just been evaluating PaaS solutions and figured I’d post most of what I’ve found thus far. I had a hard time finding any good lists – so perhaps this will ease someone else’s research. I’d love to hear what PaaS solutions I am missing!

  • WaveMaker – Build rich internet applications (RIA) using a WYSIWYG interface. Community edition is open source. Creates Java applications. Wikipedia Article.
  • Visual Web GUI – Build RIA’s using visual development interface. There is a free/open source express edition with regular pricing beginning slightly under $350 for a license. Creates .NET applications. Can deploy to Windows Azure.
  • SalesForce – The Force platform is the defacto standard PaaS. Significant free offering included with up to 100 users, etc. Also, free licenses for non-profits with majority price discount on additional licenses.
  • nuBuilder – A open source project that allows for rapid development of web database applications. Wikipedia Article.
  • BungeeConnect – Uses an Eclipse-based IDE.
  • Web Fuser (Inuvia Technologies) – IDE and hosting. Hosting starts at $20/mo.
  • WinDev – Free lite IDE for rapid development of JAVA/.NET applications. Wikipedia Article.
  • Wolf Frameworks – Has a free starter plan (2 users, 100 MB storage, unlimited apps/entries). Wikipedia Article.
  • LongJump – Pricing starts at $30/user/mo.
  • WorkXpress – No pricing, thirty-day free trial. Does offer the ability to host with them, a third party, or your own. Claims to require no programming.
  • SpringBase – Fairly impressive free account for those looking to create a small database application. Appears they no longer offer a free trial. Pricing starts at $99/year.
  • TrackVia – Pricing is expensive ($249/mo., starts at $99/mo.). Online database platform
  • DBstract – Offers free accounts and low-cost premium accounts ($20/mo.) for creating database applications/hosting.
  • Caspio – Starts at $40/mo. Claims to require no programming. Wikipedia Article.
  • Zoho – Free account for up to two users, $5/ea./mo. additional users.
  • Hyrdo4GE – Still in closed beta.
  • HyperBase – Part of HyperOffice. (thanks: Jean Churchill).
  • MyTaskHelper – UI is pretty basic, but it is free.