For the background on this, please read my first post – Tools and Processes
While my work includes a lot of email, con-calls, proposals and contracts, the relevant tools and processes are covered in the previous post. Here I’m going to focus on the technical aspects of my work: writing code, managing servers, and troubleshooting Java applications.
Let’s start with Eclipse. Eclipse is a Java based IDE (Integrated Development Environment) that I use for writing code, editing code, debugging code, interacting with SVN, analyzing JVM heap dumps for memory leaks, remote debugging applications and much much more. Many people feel that Eclipse is too heavyweight but for large Java applications it is the best tool I’ve found for the many jobs involved with developing and maintaing applications. I use many Eclipse plugins such as Subclipse for SVN support, eGIT for GIT support, Mylyn for task integration with Jira (and many other ticket systems), MyEclipse for lots of neat things, and many more.
For SSH I use iTerm which has several advantages over the built-in OS X Terminal application. The one I use the most is the ability to send the same keystrokes to many tabs at once. This means I can login to 15 servers, and run the same set of commands on all of them at the same time, and only have to type things once. When you’re managing more than one box (say 300-400) this is a life saver.
I use the Thread Dump Analyzer for analyzing thread dumps from stuck or spinning JVMs.
I use Textmate for text editing and reading log files. While Textmate can be a very powerful plugin driven development environment in its own right, I’m only scratching the surface and using it for basic text editing. One feature I use frequently though is it’s regex support in the find and replace functionality. Regexes can be an amazingly powerful tool for getting the data you need from a log file, or converting a spreadsheet into Apache redirects. Having this all work in a GUI text editor with undo support, is nicer than using awk or sed on the command line, at least for me.
I use OpenVPN with a two factor auth system for securely accessing our systems from anywhere in the world.
There’s a lot more than I use but these are the big ones.
When I start my laptop it boots up the following: Dropbox, Evernote Helper, OpenVPN, Skitch Helper, RescueTime, CloudApp, Flux, Timebar, and Quicksilver. On my Dock are Adium, Mail, Safari, Textmate, Calendar, OmniFocus, iTunes, Pages, ActivityMonitor, iTerm, Eclipse, Evernote, and Flint.
So there you have it. How do you work best? What tips have made a difference for you? Let me know if the comments or just email me.