You may have noticed our corporate website is under-going a massive overhaul. It has a new responsive user interface, cool new features, and is currently having its content audited. One of the things that we noticed was while our blog was started and sprinkled with content, it was never completed (you can blame me for that), and although it was functional it was never fully utilized. So I just took a few moments to write an inaugural post about some of the tools that help me get my job done. These tools full-fill the following requirements:
- A local development environment for us to do our work in
- An integrated development environment for us to actually do our work
- Tools to work with our database, because it’s 2012 and everything is database driven
- An oldie, but we still have to do file transfers from time to time
- Ensuring cross-browser issues get resolved with Virtualization
I am sure there are many others, and I will update this post as they come to mind, but I think this is a good starting point.
Local Development Environment
Check out XAMPP for Windows or MAMP for OS X. If you are on OS X I highly encourage getting the Pro version. You have enough to do as a Code Wrangler as it is, so constantly updating configuration files can be a bit of a time waster.
Your local development environment should also include some sort of version control. This can be any one you find easiest to work with. SVN and Mercurial are popular these days, but the trending go-to SCM package is by far Git. If you are on OS X a GUI to view your source control is a nice to have. I prefer Tower and Versions for my Git and Subversion repositories respectively.
Integrated Development Environment
I mainly switch between two editors. I love Panic’s Coda, sorry Mac only, but sometimes I get tired of looking at its interface. During those times I typically fire up Sublime Text 2, the somewhat new kid on the block which is available for Windows, Mac and *NIX systems. Other IDE’s I keep around and have to turn to every once in a while include Oracle Site Studio, this is a special case for the Oracle Middleware Projects we do, and occasionally the Ecplise IDE for some Java and PHP projects.
Panic is set to launch its second version of its Coda IDE on May 24th 2012. I suspect if everything works as advertised in this version that many of the tools I mention in this article will become obsolete, hopefully, and I can consolidate my toolkit. Maybe even save some disc space on my hard drive.
First off I don’t believe in running a web application like SQL Buddy or phpMyAdmin to connect to and work with whichever database I am using. Sometimes it is a necessity, but I much rather prefer a desktop application for this kind of work. I am a loyal user of MySQL Workbench, which is a combination of the former MySQL Toolkit and MySQL Admin applications. This is kind of a tough one for me though, because I find Workbench to be a bit buggy at times. Especially when working with large amounts of data. However, if your work generally entails WordPress, CodeIgniter or Magento projects, then MySQL Workbench should be more than capable of managing.
Panic’s Transmit for Mac, or WS_FTP for Windows. Enough said. With RSYNC and SCP at the command line, deployment using any one of the various Source Control Management systems, and FTP capabilities built right into most modern IDE’s now a days, one could get by without actually having a dedicated FTP client.
Let’s look at this scenario. You are modifying some front end code on a Mac and you have to check your work for cross browser compatibility in Internet Explorer. Let me reiterate that once more, you have to check your work in Internet Explorer. If you are thinking about just using Internet Explorer for Mac, just stop now. While I thought it was a better browser than Internet Explorer for Windows, it was a completely different browser, besides Microsoft abandoned it. Even stating that Safari was a much better browser.
So where does that leave us? Well you could have a separate system running Windows 24-7 but that is kind of a waste if all you use it for is to do cross-browser checks. My suggestion is utilizing virtualization software. My personal favorite is VMWare’s Fusion, just because I can run Windows in Coherence Mode alongside my OS X instance. Other notable solutions include Parallel’s Desktop and Oracle’s Virtualbox, the latter being free. Remember you have to have a certified Windows license, even for virtualized environments.
There is another use case I should mention. Sometimes the tools you need are just not available for your native operating system. Take for instance the Oracle Site Studio IDE. It is solely distributed as a 32-bit Windows EXE file, while I can do most if not everything in Eclipse, Site Studio is easier to setup and maintain.
Odds & Ends
Creating and maintaining your SSH (Secure Shell) key-pair is a crucial must. SSH keys serve as a means of identifying yourself to an SSH server using public-key cryptography and challenge-response authentication. Not only are they a time saver from continuously logging into remote systems, but it may be the only method to authenticate to the system if it is one you do not personally manage. To utilize many services like Github or Beanstalk, you will be required to have a SSH Key pair. Github offers very clear instructions on how to create an SSH Key pair. Look for the section appropriately named “Set Up SSH Keys” (Mac | Win).
Note: I plan on discussing SSH more in depth as well as some *NIX command line utilities later this month, so check back soon!
Meanwhile having a PGP (Pretty Good Privacy) Key is a nice to have. PGP is a data encryption and decryption computer program that provides cryptographic privacy and authentication for data communication. It’s a nice to have when you are sending sensitive data like the root password to the production server via email, which is justly deemed unsecured, from the coffee shop to the new guy on the team. Just kidding, no one in their right mind would ever do that… Right!