This is my first post in an ongoing series where I'll be focusing on all things automation in the world of Atlassian solutions development.
Living by the Code
My personal mantra is this: Anything you do often should be automated.
It's no secret to developers that just about everything that's repeatable should get scripted. Done correctly, scripting can save a TON of time. Not only because scripts run so much faster that humans alone, but because once tested, scripts will run a correct task over and over again, avoiding costly human errors.
Within this initial post, I wanted to share a quick list of tools that have helped me live by my own mantra:
Ant for Build Process
Every development process has release cycles. That means there's an iteration of releases coming out of the development team. In my opinion, everything should be automated from branching the code within source control, to compiling the code and creating a releasable binary. Whether you're using SVN or Perforce, Ant can help you achieve this goal pretty easily.
Shell Scripting for Install Kits
Even if an installation consists of just unzipping a jar to an appropriate folder, if you have an automated script that grabs the file from a pre-defined released location and unzips it to a specific folder, it can save you a lot of time.
Most of the time an installation also requires restarting a service or a process. Having a one-click install process that does all of these for you can go a long way. Most of the time a developer or a release engineer goes though the process of creating a kit and then installing it on a server. Instead, try automating the process of kitting and then installing by invoking a single shell script that takes a build version as an input. Watch how much time you can save on each build!
Shell Scripting for Script Functions
There are a number of small tasks we do everyday on Terminal or SSH windows. Creating aliases or functions for tasks like switching to a directory, or finding the latest file in a directory, works really great. If you tail a log file often, create a function for that. If you often SSH to a server, create a script so that you don't have to type the whole SSH and domain name every time. There's no limit to how creative you can get about creating scripts that help you with your everyday tasks.
SSHKeyChain for Password-less Connections
SSHKeyChain is a slick solution for Mac OX X (which I'll be raving about in a future post) that can help you login to an internal server without having to type your password every time. This saves me a good amount of time every day. Consider letting SSHKeyChain manage your passwords for you.
QuickSilver for Faster Actions
As far as I'm concerned, no matter how fast you are with a mouse, using keys will always be faster. This is because your hands are already on the keyboard, but to use your mouse you have to reach up and over for it and then navigate to the exact menu option. To launch an application from the dock, you have to find and click it. On the other hand, assigning a key to launch an application, or typing the first couple letters of the application gets that same work done a little faster. Here are a few common uses for QuickSilver:
- Launching applications
- Copying, moving or deleting files
- Launching a favorite URL
Efficient Keyboarding using Keyboard Maestro
This is one of my personal favorites! If you're like me and believe in maximizing your keyboard for improved overall efficiency, you're sure to become a big fan of Keyboard Maestro. Whether you're scripting a process for clicking one or more menu items, or navigating to a webpage by first logging in and then clicking on a particular link, ...KM truly has it all. I've also found that clipboard manipulation is another great feature of KM!
Textexpander & Typinator for Expanding Shortcuts
How many times a day do you type "Can you please" when you draft emails? How about just "Thanks" or "Please"?
Creating a quick 3-character shortcut with Textexpander or Typinator to automatically expand a longer text snippet can save you time ... expecially when you total up all those saved keystrokes over a week or month!
Automator for Scripting
You can create custom workflows in Automator to accomplish many of the tasks you do everyday. For example, creating a release email for a product that takes a version number as an input variable. The task list for Automator is big, so go have fun and explore it.
Contact Groups for Emailing Small Teams
This can be as simple as using the email distribution groups that your network folks have created. Most email clients will also let you create your own groups. If you find yourself often sending emails to two or more recipients, consider creating a few groups instead of typing multiple names all the time.
Auto Password for Firefox
I know many people who don't use the "remember me" option in websites or let Firefox save passwords. Come on man, this is your box (assuming it's your box of course). Just setup a good login for the machine. Once you're logged in, most people don't need to worry about someone else using your machine to check your gmail. If you are concerned though, just use a basic screensaver to lock your machine after a few minutes of idle time.