How does a programmer work across multiple computers?
I always find myself close to useless without my laptop. It has all the things I need, firefox, notpad++, photoshop, documents, etc... However, occasionally, I like to code on my desktop because it's faster and better, but sometimes it's just impossible unless I transfer the website files to my desktop or keep my FTP updated. I know there are some syncing solutions out there, such as dropbx, but I'm interested in following a good practice and interested in the clever insights of you pros.
Sometimes, I don't even have my laptop and when I have to edit something while I'm at school, I pull out my USB drive. I setup Portable Firefox with plugins Fire开发者_运维知识库FTP and FireBug with Notepad++ on my USB stick. This is what I like to call, my web development kit.
Update: Interesting comments on source control and subversion, it lead me to discover that DreamHost has subversion (I'm going to play with that). Any suggestions on reading material (off or online)? Throw any piece of information at me, I won't know which questions to ask or what questions to ask since I am new to all of this. Thanks in advance guys!
Source control. Subversion is good.
There are some good online source control systems also, which are worth checking out.
A lot of people are moving to distributed source control with programs like git and mercurial. These don't require a central server for the source control - all versions are stored on all computers, and you can merge in changes whenever you bring the computers together.
I use SVN (as @Jimmeh suggested) , I put it on a public server (which makes things slow) but I can access it from anywhere in the world and continue from the last place I've stopped.
I recommend enforcing locking and making files read only if not locked.
Distributed version control is the answer to your problem.
It require only a host (either a ftp folder will do the job).
Someone said Mercuial and Git, but I reccomand Darcs.
http://darcs.net/
It is written in a beautiful functional programming language, it is very easy to use and powerful.
For sync'ing across machines that aren't connected (behind firewall, vpn, air gapped etc.) I've been using SyncBack. Its free, configurable, and I can copy the profile across all the machines I use and setup 1-click syncing.
+1 for the online source control.
However, that doesn't help with everything (such as specific tooling or [in my case] special issues like a domain joined laptop and company-set VPN). I often use remote desktop to log on to my laptop to do the laptop-specific stuff (intranet, office communicator) and my desktop for the dev work, since it is a whole lot faster.
Using synergy you can control one machine with the keyboard and mouse from the other and use copy and paste.
For sharing files you could use NFS or Windows shares or ... depending on your system.
Some IDEs have support for "remote work", details there depend on the IDE and the language you're using. (I use NetBeans for instance to compile and debug my code on a machine using a different system in some random data center while working on my local box)
And then - of course - version control, git, svn, ...
Well, since you mention that you are only coding because it is faster/better, can we assume you will still have your laptop with you (I go through laptop vs desktop coding phases too)?
If it is faster because of having the mouse and keyboard/ number pad, try VNC to use your laptop screen.
Create a shared folder on the laptop, and work through the network.
If you choose the Subversion route to store your source code I recommend giving Beanstalk a try - one repository is free (100 MB limit). Then you can access your files via TortoiseSVN, a Subversion client in the form of a Windows shell (Explorer) extension - also free.
精彩评论