where do you store your home grown libraries

I imagine everyone here has accumulated a great many useful programs or scripts in many languages that they have come up with to automate their work or solve problems specific to their jobs. I find myself transferring these around from workstation to workstation and getting confused.
I wonder how all of you manage this code-base of yours? Is there a cloud-based tool that you like?

Versions change so often that it doesn't seem worth archiving everything. I just try to remember their names and hope Google can find them for me. A few key ones I keep on a thumb drive ... like jad, which is still useful despite not being updated for something like a decade and seems hard to find and download when I need it.

I'm pathetically disorganized though, so I'll look forward to reading the other answers in this thread.

Greg Charles wrote:Versions change so often that it doesn't seem worth archiving everything. I just try to remember their names and hope Google can find them for me. A few key ones I keep on a thumb drive ... like jad, which is still useful despite not being updated for something like a decade and seems hard to find and download when I need it.

I'm pathetically disorganized though, so I'll look forward to reading the other answers in this thread.

Thanks Greg,

I have the same problem finding JAD. However, I was mainly talking about programs I have written myself and want to keep close at hand.

A good tool for storing copies of applications and other code is an external drive. There are various products with significant levels of available storage memory for about $100 - $150 dollars in U.S.A.

Tim McGuire wrote:I imagine everyone here has accumulated a great many useful programs or scripts in many languages that they have come up with to automate their work or solve problems specific to their jobs. I find myself transferring these around from workstation to workstation and getting confused.
I wonder how all of you manage this code-base of yours? Is there a cloud-based tool that you like?

I have an external hard drive which is where all my sample/hobby applications are. I also have some new ones on my laptop which I use for my daily work. Whenever, I replace my work machine (which isn't that often), I copy over those applications to that external hard drive. There's no version control for those apps by the way and sometimes I have even ended up losing some applications once when I forgot to copy over a specific folder from my laptop.

If https://github.com had allowed private repositories for free (a limited number of space/projects etc...) then that's where I would have stored them. It would even have allowed me version control. Right now, those applications aren't that important to have a paid private repository and I don't want to push them to a public repo.

I switch between a office computer and a notebook a lot, so I've an elaborate process for that. Basically, I've managed to put everything I need to sync (personal as well as work stuff) between the computers into a single directory, and use some scripts (cough cough batch files) to incrementally copy it to/from an USB flash. It therefore serves as a backup too. (The total directory size is around 20 GB, as there is everything - database dumps, Mercurial repositories, documentations, compiled binaries, etc, but the incremental copy and fast flash drive lets me transfer it in about five minutes usually).

The objective of this is to be able to transfer the work from PC to notebook (or vice versa) and continue to work where I've left off on the other computer. It works very well, at least when I don't forget to restore the data from USB stick as the very first thing (I got so used to this I usually don't forget). The only thing I cannot transfer this way is the local database state, I have to restore it from dumps when needed. Experiments with copying the raw database files as well didn't take off.

Recently I've managed to put a portable Chrome installation into that directory too, since I somehow was not able to reliably set up the bookmark synchronization and I got really fed up with that. It's great, since I can install any extension into it and it will be available on the other computer too, and when I reinstall the computer or move to a new one, it is all there.

I probably wouldn't do all this if I didn't have the pressing need to be able to move between computers seamlessly.

As I said, I keep some personal stuff there too (documents, small hobby projects - I don't have large ones nowadays). I don't have good solution for large personal files (photos, videos etc.) I generally try to keep them on at least two places (PC and external drive) for protection, but I need to sync them now and then manually. :

I store my source in a Subversion database. Since Subversion uses the file system as the repository, I back up the repository along with the rest of my files. (I find git helpful for work-in-progress, but I have git repositories scattered all over my hard drive, trying to locate them all and keep that list of locations up to date was a never ending job. So when I am done, I check the source into Subversion.) I also have Subversion set up for HTTP access, so I can access the repository from my laptop.

I store my binaries in my local Maven repository. Since I use a unique groupId prefix, it is easy for me to back those up or transfer them elsewhere. I use folder sync software to keep the local Maven repo up-to-date between my laptop and desktop. (I could set up Nexus, but that might be overkill.)

And one more thing. Anything that I use at both work and home (just my own tools, utilities, examples, etc., not official work projects), for that I have a CentOS VM in our private cloud, and that VM has Drupal, Nexus, Jenkins, Gubzilla and Subversion installed. So all of my stuff goes there.