I am a self-employed individual. It wasn't until just last month, however, that I actually procured an "away from home" office space. It was at that point that I began to ponder the logistics of working at an office AND being able to work from home as well. How would I keep files in sync? How would I be able to do a day's work from home and then do a couple more hours at night without accidentally overwriting something, or needing something from the office computer while working on my laptop in the kitchen? Following is a fairly simple set up that my friend Boyan Kostadinov shared with me, and it has really been quite an efficient configuration.
Let me first show you a diagram of my current setup, a list of the tools I'm using in order to maintain synchronicity, and then I'll delve into more detail for those who are interested.

Details
My personal need is to be able to have the following be synchronized wherever I'm working from:
- browser bookmarks;
- auto-fill username/password combinations (courtesy of Roboform!);
- my local web root;
- project directories connected to SVN repositories
Let me address these one by one.
Bookmarks
Delicious (del.icio.us) is a web-based application whose sole purpose one earth is to maintain your personal bookmarks in a central, universally accessible loation: the web. By relying on Del.icio.us as my primary bookmark storage facility, I don't have to worry about keeping browser bookmarks in sync. Delicious provides lots of add-ins that make using it a relatively easy process. web site: http://del.icio.us
Usernames/Passwords
Roboform is one of those apps that once you start using it you wonder how you ever got through your day without it. Among other things, Roboform watches your browsing habits and, when it sees you performing what it believes to be some sort of authentication, offers to save your credentials so that you don't have to enter them each time (this info is securable). I don't know about you, but I visit and use a LOT of sites that require authentication. Now when I hit one of them, a little window pops up providing me with the possible logins for that site. I select it, click okay, and I'm in! Roboform stores these username/password combos in a file, so what I did was make sure that this file lives in a directory that I am syncing with my other machine. So if on one machine I add or modify one of these username/password combos, the other machine automatically sees it and vica versa. Roboform has a free version (which I use). You can download it and read all about it at www.roboform.com. Speaking of synching directories...
Directory/File synchronization
I can't thank my friend Boyan enough for turning me on to THIS web site! www.foldershare.com . It's a Microsoft hosted application that allows you to share folders on your local machine, but via a web-based proxy. In a nutshell, you browse to the folderShare site and log in. Next you tell it you want to create a new share. It lets you browse your local machine and choose the folder to share, then you give that share an alias. Voila! Now from my OTHER machine I can log in to folderShare, click on the share I had previously created, and tell it i want to synchronize that share with a folder on my current machine. In short order folderShare copies the files down to my local drive and I'm in business. Any changes i make on one machine are automatically copied to every other machine syncing to that folder. FolderShare also allows you to share folders with individuals, so when Boyan has a cool video he wants me to see, he drops it into the folder he shared with me on his machine and I can then lose a few minutes of productivity, just like that!
SVN
Most of what I do involves web development projects that are stored in off-site SVN code repositories, though the actual development takes place locally. Free services such as www.Assembla.com (the one I use) allow one to remove some of the worry out of development by maintaining versioning of your code and the ability to quickly recover in the event of local hardware failure. Using SVN involves connecting one of your local directories to the remote SVN repository (via an "SVN Checkout"), and then manually performing updates and commits as you see fit. When I first started working from two sites, I was having to make sure I remembered to commit whatever changes I had at the end of the day to the SVN repository, then when I got home I would have to remember to do an Update before I started working. Well, forgetting one or the other of these steps a couple of times quickly became a waster of precious hours trying to get things back in sync, so I simply shared the project folder via folderShare. The work process now goes more like this:
I go to the office and make changes and additions to my project folder. All of those changes are automatically sync'd to the project folder on my laptop. (Bear in mind that BOTH of these folders are a "checkout" of my SVN project, meaning they contain all of the versioning metadata files.) I go home and the next morning decide I want to work from the kitchen table. So I make more changes to my project folder and then do an SVN commit to get all of the cumulative changes safe and sound off site. My laptop folder icons indicate that my project folder is all in sync with SVN (little green check marks on all the folders). I go to the office the next day and what do you think my project folder indicates with regard to SVN? Yes, it has all green check marks, meaning my local copy is in sync with my SVN copy, and the commit was done from home on the laptop. Pretty sweet, eh?
If anybody wants more detail on any aspect of what I just shared, feel free to email or IM me. Also, I am positive that many of you have implemented yet more multi-worksite productivity enhancers, so I'd love to hear about them and the tools you've found to make your life easier.
Hope this helps someone.
Doug out.
You are not logged in, so your subscription status for this entry is unknown. You can login or register here.
How do you deal with databases?
The only thing I have not figured out is how to sync up (live) databases (not that I have tried *all that hard*). I have a server that I can access from both places but I always loose the PK's and FK's when importing/exporting from scratch. So I end up detaching the physical files (MSSQL 2005) and dropping them in the drop box folder. That never works too well.
I sent you an invite to Dropbox BTW - 2 gigs for free.
im in the same sort of boat but the method i use is to have a virtual machine running off an 8gig micro sd card. primarily i work from two machines (a home pc and a laptop) and when i need to 'do dev' ;) i just plug in the sd card and boot up the virtual machine.
the virtual machine runs my webserver and database (an exact replica of my live host) and because it appears as a networked machine to the box it's running on i have a share to the wwwroot which i can then work directly in.
the sd card also has a copy of vmware player so that even if i was on someone elses machine i can still work in exactly the same way. the virtual machine also runs a copy of my fav text editor - this allows me to even work on the virtual machine via remotedesktop and have the environment just how i like it!
it was a bit of pain to configure initially but only because i wanted such a small O/S footprint for the SD card, previously i ran it off a usb hdd but that was to bulky... (haha - pedantic or what?!) i can now carry the machine in my wallet!
cheers,
Luke
Since my database is still changing on occasion, I just use this tool to create a script that not only handles the management of foreign keys but also includes inserts for all of the data. If I do happen to make a change at either home or the office, I simply delete the existing database and recreate it with this script. Not a perfect world...I've toyed with the idea of having my MDF and LDF files live on one of these sync'd drives, but haven't done it yet. Since I do need the scripts as project artifacts anyway, I've just been using the method described for my own dev as well.
