Casus:
How to edit and advance with the same code, from several distanced locations and computers as easily as possible?
I have this thought for some time now. I am regularly having problems when I have to work on one project from different computers, as I have not taken any measures or whatsoever to ease myself in this situation. That is partially due to the fact that I rarely do freelance projects and they are normally small web sites.
Imagine that you need to work on a project at home, where you have setup database, webserver, phpmyadmin and everything you'll need to get your app running. Then you go to your girlfriend's house for the weekend but you need to advance with the project and during that time you want to do some coding.
What I am currently doing is that I am archiving my whole project, along with a DB dump usually and place it on a ftp host, so that I may access it later when I need it. I probably don't have to explain how tedious this might be, especially if you need to setup the whole environment on the PC you are currently being at.
Considerations:
Turn my home PC into a dev server with Remote Desktop enabled - the problem with this is that remote connection is not always fast and snippy as one would need it to be in order to do RAD. Also that implies the PC must be always be turned on at home, regardless that I might not even need it, If say, there are better things to do during the weekend. I might need to buy an UPS, as power outages happen from time to time around here.. I already don't like this solution.
Create database and SVN repositories at public hosting service and checkout code. This still has some of the problems, as you might need to install software, SVN client and eventually edit some configuration each time you change the computer. Oh, and as with the previous 'solution' - you are totally dependent on Internet access.
Buy an Eee PC and carry it around - that way you can have all of your environment with you. No network required as well. You have to drag the darn thing around tho, and even it is small, it is not something you might fit in your pocket. I also consider that these EEE PC's aren't very suitable for normal coding (small keyboard, screen, etc).
And finally, I have been thinking of an ideal scenario, where I have one of those linux distributions which go along a single CD or even a flashdrive. On the latest you can have all your environment always with you along with all the projects. You can fit it in your pocket. Nova days all computers have built-in USB ports, contrary not every computer has a CD ROM in place.
Thinking about it, I consider the last solution to be optimal and completely satisfying. Problem is, I am not very linux savvy and I haven't been messing with it so much. Especially with flashdrive OS.
Bottom line questions:
Here's an alternate solution: carry a portable hard drive that has a portable installation of a virtual machine player and a virtual machine with all the dev tools you need. Just plug this into whatever computers are available, fire up the VM, put it in fullscreen mode and you're good to go. Carries the advantage of not having to mess with live-cd or live-usb Linux setup, especially since you stated you're not very familiar with Linux.
EDIT: you could also run your VM off a flash drive, though performance would be abysmal.
You really should just get a laptop and do all your coding on that machine. Messing around with netbooks and/or thumbdrives is not a long-term solution. I have a MacBook that I use to do all my coding. When I'm home, it's attached to a 21-inch monitor and a full keyboard and mouse. When I need to travel I unplug all the cords and put it in my bag. Since I use the same machine, I don't have to worry about migrating files or settings back and forth, and while the screen is somewhat small, it's not bad to get a bit of work done on the go.
If I couldn't carry my laptop around, I'd set up a development environment on a Linux server. However, this solution is highly dependent on the type of development you're doing and how familiar you are with Linux and the command line. I definitely don't recommend it for those that are starting out. However, with Screen and Emacs (or vim if you swing that way) you can have a fully-fledged development environment anywhere with internet access.
Laptop: Too expensive, keyboard too small, annoying to code on.
Remoting a desktop: You'll feel the lag, even fraction of seconds, and you'll go nuts after a day.
SVN: Too much trouble always needing to install the same softwares (repository client, FTP, text editor, mysql, etc) everywhere.
My solution is one that I use personally...USB Flash drive!
Install the portable version of all your softwares. I've managed to find a portable version of everything I needed:
Kitty (SSH)
Filezilla (SFTP)
USBWebserver (Apache 2, PHP 5, Mysql 5, PHPMyAdmin)
Notepad++ 5, Eclipse PDT (PHP IDE)
SNES9X (snes emulator) ;)
Keepass (password encryptor database thing)
HeidiSQL (similar to PHPMyAdmin)
Menu (a little system tray menu thing)
Directory of all my projects/music/notes
Here's a good link where I've found most of my softwares.
P.S. Works on windows and Linux (via wine). I've also put a autorun ini file on it, so when I plug it in, my System tray menu program runs and apache/mysql starts.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With