As someone who writes code for work and pleasure, I find that the amount of code I produce is directly related on the efficiency of my tools. Having the right tools for a variety of jobs is very important. This first became a necessity when I started doing projects for computer science classes. Sure, vim and emacs are time-tested editors with tons of features, but if you’re not well versed in them, learning to use them can take hours that you just don’t have. The purpose of this blog post is to explain and review a few tools that I use on a daily basis. They increase my productivity, streamline my workflow, and minimize my frustration. Hopefully they can do the same for you.

Tools:

SSH Terminal Pro:
This is a neat iPad app for on-the-go code editing directly on the Tufts servers (or any place you want to ssh to, for that matter). I’d advise using a Bluetooth keyboard if you have one, because let’s face it, iPads were NOT designed to accommodate the myriad of strange characters programmers use every day (“{}, &&, ||,” etc). It does have one bug that I know of, which is that it will end your session if you leave the app idle for more than a minute or two.
So, the overall impression of this app is that while no sane person would ever use it keyboard-less or for any serious development, it’s very handy for small edits, or for trying out a quick new idea.

Sublime Text 2:
Sublime text 2 is a text editor that I now use for all of my code-writing. Unlike the “old-school” editors vim and emacs, Sublime allows you to use your cursor, and you can customize it REALLY easily. Here are some awesome features that might make whatever Comp class you’re in (11 through 180) a whole lot less painful.
Perhaps the most awesome Sublime feature is called “Package Control.” This simple download lets you add all sort of neat plugins to the app, like a clipboard with more than one item at a time, or a command which lets you open a terminal window in your current directory. The plugins are many, and powerful.
A slew of language plugins come pre-installed with Sublime. That means that almost whatever language you’re writing in, there will be specific syntax highlighting, designed for that language. Best of all, you can add more of these plugins with Package Control.
Now, you can either edit remote files (for example, ssh into the tufts servers, or local ones. Chances are, if you’re a Tufts CS student, you’re writing in a low-level compiled language, so you’ll need to get a compiler (XCode dev tools on the mac for g++ and gcc), but this isn’t hard at all. Try creating a Sublime alias for quick file editing from the terminal.

MacFusion:
So, you’ve managed to get an out-of-terminal editor set up. Great! Now, you probably need to edit files on remote servers (e.g. linux.cs.tufts.edu). Grab MacFusion from Tuxera (macfusionapp.org is unmaintained and outdated) and download OSXFuse, which will enable MacFusion to work on [mountain] Lion’s architecture. Once you’ve installed these two things, go into MacFusion and enter your Tufts ssh credentials, then hit “mount”. Go into your Finder, click on your name under “devices” and you should see a disk leading to linux.cs.tufts.edu. Boom! Your files should all be there. If you don’t have any yet, make one! You can make it via this interface, or via the traditional route of the terminal ssh, touch filename, etc. The changes you make should be reflected immediately in the finder window (admittedly, it may be a bit laggy at first). Now, all that’s left is to start writing code on your local machine, in your favorite editor, and you’ll NEVER have to email yourself code, or copy files from one machine to another.

-Sam Purcell

 

One Response to Tools for CS Students

  1. [...] wrote a blog post a few weeks ago about some of the tools I use to streamline my workflow. Since then, I’ve [...]

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Set your Twitter account name in your settings to use the TwitterBar Section.