Search code examples
eclipsecloudworkspace

How to get one workplace


I'm currently an RIT student. I work in a personal laptop, personal desktop, and multiple school workstations. I want to have one workspace where all the projects are in one place. So far I have tried saving eclipse workspace in usb and carrying it, dropbox, ubuntu one, repositories, virtualbox vdi file in flash drive. All have problems. None of them are as smooth turning on the computer and start working.

So my next solution I'm trying is to set up a server with linux installed and using vnc or something, unless you guys know of a better solution.

An example day:

  1. Do some work on an android project at home desktop.
  2. Go to school and work on the same project on my laptop
  3. Meet with my group and work on the same project on a school workstation.
  4. On my laptop, work on a separate project that I started in my Home desktop, which I didn't commit to repository since I didn't finish.

Thank you very much.


Solution

  • I think the question is pretty interesting, and in times of changing workplaces and more mobile and cloud stuff, it will get more momentum. So I try to comment some of the problems, and give indication which solution is better in which circumstances.

    External drive

    The external drive (like a USB stick or a real drive) allows you to store data and portable applications (as eclipse is one) to store on a medium and to take that with you. Every time, you want to work on your project, but on different computers, you may use that external drive.

    • Problems to solve
      • The format of the drive has to be read- and writable by all machines. This may depend on the operating system you have to work in.
    • Advantages
      • Easy to use
      • Scales well
      • Independent of network access
      • Allows to transport even not-ready work well
    • Disadvantes
      • Speed of access: will be slower most of the time
      • Security?
      • Data loss: You have to find ways to insure that nothing is lost, or at least not too much

    Network storage

    You store all the information you have "in the cloud", solution like Dropbox, Ubuntu One, ... come here to mind.

    • Problems to solve
      • Do you have all the time network access? If not, this is a showstopper.
    • Advantes
      • Easy to use (perhaps not to setup)
      • Works automatically
      • Allows to transport even not-ready work well
    • Disadvantages
      • Does not scale as well as the external drive. Network speed is normally much slower than the speed of the external drive
      • If it works automatic, you are not sure when every byte is transported. There may be situations when some changes are not transported, which will result in rework.

    VirtualBox

    ... or other virtualization solutions. This has to be combined together with the external drive or the network solution. It gives you additional options, but comes then with additional complexity.

    • Advantages
      • Same context, same operating system, everything is stable all the time.
    • Disadvantages
      • Virtual files are big, so using the network could be a burden.
      • Even on the external drive, you will see that the performance will be not as well as the external drive alone.

    Repository

    This is orthogonal to the other solutions as well. The repo could live locally, as well in the network.

    • Advantages
      • You don't loose work.
      • Setup is pretty standard, and beginning to work is (at least with Git or Mercurial) a no-brainer.
    • Disadvantages
      • Your development process is more difficult, because you have to remember to commit your work. And it gets even worse:
      • Some of your commits are the normal ones, because you have finished a task at hand, and want to provide that for others.
      • But if you use the repository (in the network) for transporting things, you have then to commit and push even your work in progress, which pollutes your repository then for the use of others.

    Recommendation

    I would go with the external drive, and would see which problems I have to solve there. The startup time of eclipse could be slower, but after that, the difference should not be such great. By using a fast external drive (like an SSD with USB 3.0), this should be manageable. You should use repositories, but not to transport your work, only to version your work and to share it with others.

    And if you add your problems with that solution, we can address these ... PS: Sorry for that long answer, but the topic is interesting for me as well.