Setting up a Windows machine for Web Development

on

Recently I had to decommission my Mac and went ahead and bought a PC. And apart from my renewed love to video games I had a problem with my web development. I lost some nice apps in this transition and my glorious console. This post is my try to setting up a windows machine for web development. Sometimes this can become a hassle, even if it is not your first time you often forget dependencies or “that” code to download a specific thing. In this post I will go with the steps and tools I use for setting up a clean machine until you get a neat little package to start working so I don’t forget and neither do you.

We will be installing some useful tools like sublime text, git, a new console, Node.js and zeal. We will also go with the different server side languages we can use like PHP, Python, Ruby and JavaScript.

This tutorial was tested with Windows 8 and 8.1, so let’s get started!

Part 1: Let’s get a text editor

Some may argue that if you want to start in web development you just need a good text editor. And they are right! That’s why we will first install Sublime text. You can download and install Sublime from the previous link to their website. It is not free but the trial version is kinda like winrar, you can keep using it but be nice and pay for the full version if you can. I also have already made a post with some of the best packages that I use and other tips for getting it set up, you should check it out.

sublime

Another great alternative is Notepad++ which I highly recommend in case you want to try something else or have a backup. If you are looking for an IDE I have to recommend WebStorm or Microsoft’s Visual Studio. Both are good options and I recommend you test them and see which one you like.

Part 2: Git and Github

git is my version control system of choice. A version control system keeps tab of all the changes you make to the files to tell him to. So for example, if you want to see the changes you did to a file a week ago you can do that with ease, and that’s just the tip of the iceberg.
I use git constantly to keep my personal files on check and to use Github.
You can download git or the pretty nice Github app and install them. The Github app will get you a portable git, a bash console and the nice Github app for all your repositories.

github

Just remember that if you are installing git apart from the one in Github get this option checked. I like this option since it adds git to your path automatically.

git

Part 3: Zeal

Zeal is a simple offline API documentation browser inspired by Dash (OS X app). In summary Zeal can keep all the documentation for your favorite software offline. So for example, if you want to know the class for a modal in Bootstrap you can just install the Bootstrap documentation in Zeal and have it in a matter of seconds without an internet connection. Pretty handy for a forgetful person like me. So go ahead, download it and give it a try.

zeal

Part 4: A new console with something extra

So I tried really really hard to get something remotely close to my terminal. And in the end I got something kinda similar you can work with. If you want something different from your powershell you have 2 good options. CONEMU or Console2, I tried both and they are good, in the end I went with CONEMU.

conemu

With some little tweaking you can get something decent working on CONEMU, also you might want to give Cywin a try if you miss some of the bash commands we are used to.
If you want to install Cygwin I recommend you add it to your path and install the following packages:

  • aspell : provides a spell check
  • aspell-en : provides an English word list for the spell check
  • bash-completion : tab completes SSH login names for example
  • bind-utils : dig, host
  • curl : a useful command-line tool for accessing urls, similar to wget, but more powerful
  • emacs : editor
  • keychain manages ssh-agent
  • ncurses : provides clear
  • nc : connect networks
  • openssh : provides SSH
  • ping: provides ping
  • procps : provides top
  • rsync : mirror files
  • rxvt : better terminal
  • unzip : unzip files
  • util-linux : provides getopt
  • vim : editor
  • zip : zip files

Part 5: Server side languages

Let’s go through the different languages that will help us set up our environments. Although you can always get something like Vagrant I like to have them on my computer also. First lets go with the one that will help us the most for web development.

JavaScript with Node.js

node
From all the languages I’m gonna post after this I must say this one is not optional if you want to make your life cool and easier. node.js is a platform built on Chrome’s JavaScript runtime. NPM is Node’s package manager that will let us install some really interesting and useful software like grunt, requirejs, bower and much more. To install Node.js we run only need to download the installer from the official site.

Python and pip

python
Also like Node.js and NPM we have Python and pip. Python is the language and pip is the package manager. Python is a programming language that lets you work quickly and integrate systems more effectively.

Now I recommend you download and install python 3.4. Why? Because Python 3.4 comes with pip pre installed and most of the qualms that I had with Python 3 are gone, like lack of libraries. But if you still need or want to use Python 2.7, that’s your choice. Remember you can always use virtualenv.

Ruby and Rails

rails
Ruby is a pretty popular language to develop right now and all thanks to Rails. Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write. And Rails is an open-source web framework that’s optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration.

And installing both of them with all their dependencies is super easy. You just need to head up to RailsInstaller download-install and that’s it.

PHP

Last but not least is PHP. Oh my love/hate relationship with PHP can be summarized into “but it works”. PHP is a popular general-purpose scripting language that is especially suited to web development. Fast, flexible and pragmatic, PHP powers everything from this blog to the most popular websites in the world.

wamp
To get PHP in your computer is really easy, just like RailsInstaller you can just go to WAMP and get it done.

Conclusion

That’s all for now! Go forth, have fun with your new super machines and the next time you need to set up a machine from scratch, you can smile to yourself as the whole process is here for you to come back.

  • Brill

    Wamp Server is ok but I’m more into XAMPP ¿have you tried it?

    • Robaum

      I’ve tried both. I do prefer XAMPP since you can use it in any platform but since this was a Windows oriented tutorial I went with WAMP. Great comment though!