What's your "remote" programming setup?

Coldblackice

[H]ard|Gawd
Joined
Aug 14, 2010
Messages
1,152
tl;dr

How do you store/track/access your personal programming projects? Both at home and abroad? Is it through version control? Should version control always be used?


I have a couple PHP projects on my home desktop that I work on. Unfortunately, I still don't use any form of version control, having just been a ragtag "hobby" programmer for years. I just put projects into their own respective folders, and work on them that way.

However, sometimes I'm away from home, like on a laptop or library computer somewhere else. How would you go about working on these projects off the home desktop?

Currently, I implement some manual "ghettoness" by remote VNCing into the home machine, uploading the most recent files to Dropbox, and then downloading those files onto whatever laptop/remote computer I'm working on. Then when finished, I upload them back to Dropbox, and then re-download them at home. Sort of like a manual version control, I believe.

But I'm sure there are better, more efficient ways I should be doing this. Is version control the definitive answer to this? Should I be using something like git/github on any computer I'm working on a programming project?

Other possible options I've considered are a remote SSH server (SSHing straight to the files on my machine, editing through Vim), entirely through VNC (lag/delay would be annoying), or some type of IDE network access function (through port forwarding).
 
I use a linux VM and just work inside of it in full screen. It does a good job at emulating a legit linux desktop with all the benefits of having Windows (easier browser testing, certain software, etc.) without polluting my normal OS. There's absolutely no typing delay, but I only type at like 80 wpm (probably slower for coding).

I use git for everything that needs version control and push some libs to github if they might be useful to someone.

I just ssh to remote servers when needed, it doesn't happen that often anymore. I've optimized my work flow where I can be developing something locally and then deploy it to a remote server with a simple command. I don't work on projects big enough where I would need to do remote debugging or anything of that nature, not yet at least.
 
I have various VMs I work from, and I use bitbucket for private git repos. I still have to deploy manually via RDP a lot. I have a T430s as my main work laptop hooked up to monitor kb/mouse at home and just throw it in my laptop bag when I go to someones office. If I'm working on some iOS stuff, I work from the MBP and RDP into my Win boxes when I need to.
 
I always edit my PHP in a terminal editor (I use a fringe editor instead of vim or emacs). For my personal stuff, I just ssh to the server (my linux router) and edit there; for the project I care about not breaking everything, I edit in a test directory and then copy to the "production" directory. If I'm away from home, I can still ssh to my server and edit; when I was halfway across the world for a week, the typing lag was annoying, but not unworkable.

For work stuff, I edit on a local unix machine, in a version controlled directory, and then there's a process to push to production (some places it's just rsync to production from a script, other places it's more complex).
 
So is thread supposed to convince you to use some sort of version control? If so, I think of a few risks that are avoided with your personal projects:
- risk of data loss
- risk of missed files
- risk of overwriting desired files

Let's also not forget time spent babysitting a transfer through your current daisy-chain process, and possibly micro-managing at least two disparate development efforts. Plus, any decent VCS will have some plugins or addons that greatly simplify the steps of sync'ing data in any direction.
 
Thanks for the suggestions.

So is thread supposed to convince you to use some sort of version control? If so, I think of a few risks that are avoided with your personal projects:
- risk of data loss
- risk of missed files
- risk of overwriting desired files

Let's also not forget time spent babysitting a transfer through your current daisy-chain process, and possibly micro-managing at least two disparate development efforts. Plus, any decent VCS will have some plugins or addons that greatly simplify the steps of sync'ing data in any direction.

Thanks -- I suppose that's the heart of what I was trying to get at.

What method do you use to edit remote code? And do you use VCS for all programming projects?

I guess the thread is two questions muddled into one:

What are some of the best methods for accessing and editing remote code? And in the same vein, would a version control system be the best, most efficient/proper approach for accomplishing this -- because it provides an easily accessible remote framework, and also is setup to watch over code revisions (and hopefully preventing an accidental overwrite, or a misplaced save)?

My most conscious problem is not having an easy way to edit code that resides on my home desktop, and the manual method I've been using feels pretty archaic and error-prone (with the code files being overwritten by versions from home or abroad, updated/unedited, etc.).

Thus, as I've explored alternatives, I've wondered about version control -- version control seems like it has a strong, remote framework in place (like git and github), making your code easily accessible from anywhere, and without having to worry about miscellaneous, manual network connection issues with allowing a connection from a new or unknown remote device.

Additionally, from my limited understanding, it seems that version control would also hit a second nail in the same swing -- learning, implementing, and relying on a methodology that seems to be pretty important in the programming world, and an area where I currently know peanuts about.

So I suppose this has evolved to being more about version control --

Is it an efficient, proper, reliable system for accessing and controlling your code from anywhere/everywhere?

Should one use version control on any/all code that they hash out (personal code outside of an employer or business)?


Apologies for the wandering subject(s). Seems that the topics are somewhat related, so I thought I'd try to combine them rather than open two separate threads. Any dialog and opinions are much obliged.
 
Last edited:
Oh, well if that's the question, I've had good luck using Cloud9 with github. If you had private repos, I'm sure it would work. It's a good choice for javascript work, it may be good for PHP stuff too.
 
I use version control for all personal projects, even if I'm the only developer and it's a small project. First I was using SVN with Assembla and have recently started learning Git with Github.

Why use a VCS?

1) Free backup
2) Revision history (code without fear, you can always undo a change or view file history)
3) Absolutely no downsides besides having to learn something new (and is that really a downside??)
 
Version Control is a must, imho. Preferably remote also as it's not subject to the whims of your computer/network and it doubles as a non-official possibly volatile backup system.

I run my own SVN Server. If you don't mind being @ the whim of random corporate giants that random kill projects without listening to their users their are tons of Git servers available.

If you're on Windows Tortoise SVN/Tortoise GIT (to some extent) make using source control pretty simple. I do not know of any equivalent for Linux however I'm sure if you're using Linux you're probably overly familiar with using the cmd line.

Proper or even regular usage of VCS can be a life safer.

Plus it's useful for needing to access code or documents on the-go.
 
Git. Learn it, love it, use it.

I still have yet to learn to "love it". My limited usage of Git made me ask, why am I clicking twice as many buttons to do the same thing I did with my SVN server + Tortoise SVN client.
 
I still have yet to learn to "love it". My limited usage of Git made me ask, why am I clicking twice as many buttons to do the same thing I did with my SVN server + Tortoise SVN client.

Then use the command CLI in Git and type those things out :p
 
I still have yet to learn to "love it". My limited usage of Git made me ask, why am I clicking twice as many buttons to do the same thing I did with my SVN server + Tortoise SVN client.

Dunno, I use terminal for just about everything. A little UI stuff for previewing branch trees, etc.
 
Back
Top