I’ve bulldozed the digital hoarder’s house that was my filesystem, and sworn to clean up my act. Well on my way to a perfect workflow and code management system, I’d like to share what I’m doing with a series of posts. This first post will outline how I built the development cloud that is now making my life much easier.
Lets go through the needs of just about every developer, and the tools available to meet these needs. I won’t go into the specifics of how to set them up, as I’m sure you know how to read documentation.
( Subscribe to my RSS feed so you don’t miss further posts. )
My goal was to minimize configuration needed to be comfortable working from any computer. Most of what I do only really requires 4 applications: web browser, text editor, terminal, and a GIT version control installation.
Now that we agree that these tools are absolutely critical to web development, we have a base to work from. Let’s try to do everything we can using these applications, with minimal customization.
Redundancy and Syncing
Redundancy is critical to ensure that even if all our local hard drives crash, and our data centers are attacked by aliens, our valuable code is safe. We also want these files to be synced to any computer or device we might want access to it from. This syncing must work flawlessly, and be reliable. The last thing I want is to be editing the old version of a file, only to have it rewritten, or overwrite the newer version.
Dropbox is really the best file syncing tool available. You can start with a free account, and upgrade your storage for a very reasonable monthly rate. With apps for every operating system, you can feel confident setting up clients with Dropbox accounts for file sharing as well. Redundancy goes without saying, as Amazon s3 is used for the Dropbox storage cloud.
Dropbox is going to maintain the set of files we want on each system, and allow us to share them easily. This is a huge job that should not be taken for granted. Use a system that syncs reliably, is redundant, and hopefully has version control, like Dropbox’s Packrat feature.
Coding without version control is gambling with your time and sanity. GIT has become the standard version control system today, and should be a part of everything you do.
Github is a hosted repository and social coding network that makes collaboration and code deployment easy. Membership is free until you need a private repository. I use Github to host any code I deploy or work on often. You should definitely follow me on Github.
Communication is important to collaboration and client relations. Trying to sort through endless email threads to remember the details of something you are doing is no way to live.
I use Basecamp for project management. It’s a web based application with a nice API that hooks into Freshbooks for time tracking, Github for notifications of code commits, and has many ways to interact with it, Aside from the nice little features, Basecamp was built for managing web development projects. Simplicity is it’s strength.
Not all of the files we use can be nice text files with our pretty code and Markdown in them. I have to use spreadsheets for data, and share documents that clients can open with Microsoft Products. I also need to be able to access and edit these from any computer.
Again, I’m going to choose a web based solution, Google Docs. The features are very easy to use, can be shared easily through google accounts, and can be run in any web browser. If I want to use Libre Office or something else, I can download and open the files with no trouble.
I’ve tried a bunch of email clients that are always a pain to configure, and have limited features. I’ve resigned to not caring if Google reads my email, and started using Google Apps. Gmail is a very intuitive application that has a ton of ways to organize and process email. With a little configuration of your DNS records, you can be using Gmail for your own email addresses.
Now that I have everything in “The Cloud”, I want it all to work together, perfectly.
CloudHQ will do all that for me. For a small monthly fee, you can sync your Basecamp with Google Docs, and save them both to Dropbox. Then, if you want to get really crazy, you can version control it all, and keep a repo at github. By now, you are completely out of your mind, so you might as well download a zip of your files from Github, and send it to yourself through Gmail.
I know. I just blew your mind. Was that too recursive? Try these nearly free, yet state of the art tools, and learn how they work. Then come back here. I’ll share some specific ways to use them together in later posts.
To continue in this series you will want to have some basic Unix terminal skills, and be comfortable with GIT version control.