views:

267

answers:

8

I'm a college student and at any given time I have 4-5 programs I'm writing in various languages for various classes/projects.

At any given hour of the day I might be in the library, at home, in any of our different computer lab classrooms, etc.

Right now my current modus operandi is at the end of each class period or coding session, I gmail myself the current state of whatever I'm working on with an appropriate subject line (ie, "MIPS Assembly Lab 2, Revision #3").

However, this is becoming cumbersome and I'm looking for other solutions.

Restrictions:

  1. No Thumbdrive. I'm about as absent minded as possible while still somehow managing to function. I'll lose it.

  2. Portable or Web Apps only. I can't install non-portable executables. So, if a tool requires an installation wizard or administration privileges, I can't use it. I can use portable executables however, stored in our network drive space given to each student. So, that might open some possibilities.

I'm looking for some kind of online storage that I can easily download the latest files for my project or update those in the online storage, with as little friction as possible.

I've considered using some free version control repository and trying to find a portable executable or web-tool I can use to integrate with it, but I wonder if it might be overkill. I'm not really looking for keeping a revision history.

I've seen videos of things like dropbox and it seems like it is a step in the right direction.

Any suggestions?

+3  A: 

A good solution would be to get an account at some hosting provider that offers shells (eg. Dreamhost) and do your work remotely. That way you always have a consistent environment that you can just ssh into from anywhere.

It's far easier to find a run-anywhere SSH client than a run-anywhere filesharing or revision control system.

Greg Hewgill
Definitely a nice suggestion. Presently our school lets us SSH into our shell at school. However, when it comes to doing any programming in my Graphics or Genetic Algorithms class it falls a little short. It also doesn't work for MIPS assembly as I do most of it in the Mars Emulator + IDE.
Simucal
But I do try and do all our non-graphical programming and keep copies of my source there.
Simucal
You could run a VNC server on your shell and connect to it with a VNC client tunneled through SSH.
Greg Hewgill
@Greg Hewgill, do you think they allow VNC servers on the dreamhost shells?
Simucal
@Simucal: I don't see why not, as long as you don't try to leave it running forever.
Greg Hewgill
+2  A: 

www.github.com?

Git binaries should be usable without any installation process (I do not get the 'portable' part there, as you do not mention anything about your work environment).

Or, alternatively, a thumbdrive git repository, altough you said that you do not want to use a thumbdrive.

Mart Oruaas
A: 

We use CVSDude, who do CVS and SVN, it's a pay service $6/month = 250M, works really well, although maybe you're after something free?

MrTelly
A: 

You can get a free account on drivehq to store up to 1GB of data. Nothing fancy, but if you're looking for some place to put software it might do the trick.

tehvan
+1  A: 

CVS, Subversion and GIT all allow to create the repository on a network share. All of them discourage this because, in the case of a network outage, the repository may become corrupted.

So if you have frequent network outages, this might not be an option but frankly, most networks are pretty stable today. And in my 15 years since I use VCS, I never had one corrupt a repo on a share. Most network file systems will try their very best to commit pending writes, so unless the server completely dies, the data will be saved when the hiccup is over.

But if you're still worried, use git because it allows to restore the main repository with minimal data loss from your local copy (see this question for details).

Aaron Digulla
I'm not really looking to store the source code on our network drive at school. I mentioned our network drive to state that I could host a tool if need be, to access my files via the web. Hosting the repo at school would limit me from accessing from home.
Simucal
A: 

You might like to check out Bespin:

Bespin is a Mozilla Labs experiment that proposes an open, extensible web-based framework for code editing.

Craz
+3  A: 

The most simple solution (if you can share the code with the world), is to create a project on Google code. This gives you a subversion repository plus a wiki to sort your ideas and an issue tracker for your TODO list, too.

Today, I prefer Subversion in your situation for two reasons:

  1. There is a command line standalone client (just a couple of files which need no install) for Windows. Git would need either Cygwin or MinGW and a Unix environment of some kind. Too much hassle.
  2. It's a bit more simple to use than Git. Git asks a paradigm shift from your brain and unless you get that right, Git will feel "weird".

For professional work on large projects, I prefer Git :)

Aaron Digulla
A: 

I use Dreamhost's integrated SVN. They have an interface for setting up repositories and user accounts. I work on a mac which comes with SVN installed so the whole thing for me was completely painless. Couple of clicks, point SVN at my server and I was good to go.

Nick