0

First off! This question doesn't really feel like it belongs on Stackoverlow, but according to the "on-topics" help, "software tools commonly used by programmers" is in scope. So, here goes:

Background:

I work from home, for a very small company. I'm on the west coast, my boss is on the east coast. And approximately every month or so, I need to travel for work. But, even when I travel for personal reasons, we are so small, that if there is an issue, I might have to pull out my laptop and fix it.

Software frameworks and tools:

I primarily work with Python, Django and Postgresql - and we mainly host on Heroku, but have some boxes on both Rackspace and EC2. I do use VirtualEnv and have about 6 environments/workareas. My editor is SublimeText 3. We use Git and GitHub.

Hardware:

My desktop is getting a bit older, but is still fairly beefy, and I have quad-monitor card in it and 2-22inch monitors and 2-19inch monitors attached to it (that will spoil you quickly). Running Ubuntu 12.04

Laptop is pretty weak (company purchased) - single monitor, etc. But, I believe I can get them to upgrade it. Running Ubuntu 12.04

Problem:

Everytime I need to go on the road, it seems like I spend 1/2 day messing around making sure that my laptop is ready to go, etc.

I know that I'm not the only person dealing with stuff like this. You have your big fat, luxurious desktop at home/office, but then you have to go on the road for work/pleasure for a few weeks and you need to be able to work, effectively.

Question:

How do you (as a professional software developer), manage this problem of moving between machines?

Some possible solutions I've been thinking about/evaluating:

Cloud9 IDE. While I think it's a great idea, it still feels a little flaky to me and I'm not sure I would want to use it everyday. But, I've only tried it via hosted. It might be better if I tried it on the SSH model.

Creating another EC2 instance that will be my "dev box" and just SSH into it to work. My guess is that I'd finally have to get serious and learn Vim (I can edit a config file and I get HJKL, but I'd be on a learning curve for a while).

Final notes:

Ok; I get it. This is not your typical SO question. There is NO right/wrong answer here. But, I can't find a better board to ask it on. But, it seems like it falls under:

  • software tools commonly used by programmers
  • practical, answerable problems that are unique to software development

If there is a better place to ask this, please suggest it and/or migrate it for me. But, I insist the question has value and is worthy of discussion on some board. If I end up going with someone’s toolset/configuration/suggestions I will mark it as the "answer" and provide an update listing exactly what I did and the results.

Community
  • 1
  • 1
David S
  • 12,967
  • 12
  • 55
  • 93
  • I would suggest asking this on programmers.stackexchange.com. I think that's a better site for it. – Chris Chambers Dec 13 '13 at 21:28
  • @ChrisChambers I thought so, too... but, according to their "on-topics": "...programming tools (ask on Stack Overflow instead)" – David S Dec 13 '13 at 21:30

4 Answers4

0

One word - Dropbox. I keep all my Sublime Text settings (for different OSes and versions) on it, along with local copies of Git projects I might want to work on while on the road. I don't typically work with virtualenvs unless absolutely necessary, but you could easily keep them on there as well.

Downsides: you only get 2 GB free, and you can fill that pretty quickly these days, so active pruning is necessary, or you could drop the (I think) 10 bucks a month for the 100 GB version. There's no guarantee of data integrity, either, so you'll still need to be careful about backups. Finally, depending on the types of projects you work on, you may want to encrypt your files, which isn't a built-in part of the service, but can be fairly easily added on top, especially if you're using the same OS to access it.

MattDMo
  • 100,794
  • 21
  • 241
  • 231
0

I have a MacBook Air as my travel / coffee shop / living room machine. I have an Ubuntu server that's pretty beefy at home and is usually running a sandbox VM for me to play with. I ssh into them as needed and scp things back and forth.

Any code or resource file (.bashrc .vimrc .dir_colors, etc.) I always use git for. I use version control (usually git) for every project, no matter how one off or silly, and I recommend doing the same. I use the website Bitbucket for my personal projects:

http://www.bitbucket.org/

DropBox and Google Drive for other things (data files, etc.) that will move back and forth and are sizable.

I use package managers to keep the same Python packages and keep things up to date on all the machines (apt-get or Homebrew with the Macbook).

Other than that I just make a conscious effort to keep my general home directory structure similar.

exogeographer
  • 349
  • 1
  • 5
0

While I'm not completely sure about it, I've decided to go with the solution of setting up a remote "coding" server on DigitalOcean and using Tmux + Vim. I will post an update to this answer in a few months and give me experience with the solution.

David S
  • 12,967
  • 12
  • 55
  • 93
0

I use USB hard-disk for this reasons.

On my USB hard-disk is bootable and have OS.

Some computers failed to boot that USB disk (not detected in BIOS or "Boot error" screen after trying to boot from USB hard). For solve that problem - i use USB Flash-disk (more compatible with many BIOS). USB Flash-disk - that bootable disk with OS linux (host-system). From host-system you can connect USB hard-disk and entered to chroot environment.

On home computer - similar workflow. Connect USB hard-disk and enter to chroot environment.

Use x2goclient/x2goserver for attached X11 sessions from virtual OS on host-system

Also, you can use Xpra for attached x11-output from virtual OS to main X11 session of host-system

Use better solutions of chroot environment - systemd-nspawn container (installed default on archlinux systems)

https://wiki.archlinux.org/index.php/Arch_systemd_container

Use x2goclient or xpra apps (similar to nomachine/nxclient) is no important. You maybe use lightwight way for running graphical applications from chroot: https://wiki.archlinux.org/index.php/change_root#Run_graphical_applications_from_chroot