Wednesday, April 18, 2007

Cutting Costs, Hosting Heck

Cut CostsIt's been a while since I've worked on something for me alone... or at least, not specifically for my day job. I had planned on writing an FtpClient object in JavaScript, which is something I've planned for a while, but inevitably it brought up the same meandering thoughts it always does. See by writing this object, I'll have more flexibility in terms of where I run tasks to keep my websites up to date. Currently I'm hosting at 1and1, but again I'm questioning whether to keep it.

In terms of raw web hosting, there are only a couple of requirements...

  1. ASP, WScript, FileSystemObject, and ADO. I'm heavily invested in these muscles for doing the bidding of the brains I write in JavaScript. This limits my platform choices to ... Windows. And while that isn't always pleasing to me (it's a like/loath thing), it also gives me the opportunity to play with ASP.NET which is very prominent at my day job.
  2. FTP. Not much to say here, but I need it and since most places have it this isn't much of a restriction.
  3. URL Rewriting. A little more complicated, but there are lots of incorrect links out there to NeilStuff (many are my fault, such as using a single PHP file with ID's or having a folder with plus signs in it which some browsers remove or change to spaces incorrectly). This might be more difficult to procure, but I'm sure it's out there. On my 1and1 server I've been using Helicon's ISAPI Rewrite Lite which works fine, but it's easy to get yourself in trouble with infinite loops or bludgeoning URL's for files that actually exist (my fault, not Helicon's).

Besides the vanilla web hosting, I use my server to dabble in Subversion, scheduled tasks (I can run these locally with decent remote hosting), email (SMTP mostly, but I could conceivably use any email host), and file sharing (ah eMule how I love thee, but perhaps it's time I moved on and tried this BitTorrent thing).

Subversion is the big one, the thing I use almost every day on my server. So it's not surprising that it's been the focal point of my perusal this morning. I'm looking for acceptable Subversion hosts. And some things I plan on no longer placing within Subversion, most notably large and unchanging things like project archives, photos, and music. For those things I intend to lean on Amazon's S3.

The problem I find with Subversion hosting is it's either expensive or limited by the license you associate with your projects. On free hosts such as Google, Tigris, or SourceForge you can't simply commit arbitrary content, you must choose one of the many and confusing Open Source-approved licenses. That'd be fine with me if Creative Commons was a choice, but of course it's not. DreamHost appears to support Subversion, so it's definitely something I'll look at. I've heard their name before, so hopefully they've got a solid platform. Paying for hosting is fine, but losing anything from something you paid for is one of the worst feelings.

BSD DevilNow comes a time, I think, when Otechski will split off from my personal Subversion stuff. Specifically the code I share between projects will become a project in of itself: OtechSDK. The JavaScript files will still be under a "js/" directory and be easily mixed and matched through the include function I wrote. In addition I want to start plopping out some other types of source and have a home ready for them. I'm basing the easy-breezy-beautiful structure on a similar source collection I created at my day job: ObremC.

Since this project is as much for anyone interested in my code as for my projects themselves, it's important that it be readily available. So ... I'm going to move it under the New BSD License. This way I can host it at any of the three free hosts I mentioned above (probably Google at this point), keep it separate from my personal and proprietary projects, and have it be readily accessible to anyone.

Switching from Creative Commons to BSD might be a bit of research work, however, since it is a legalese thing. It will probably be that past versions of Otechski JS scripts will still be under Creative Commons, but future versions under BSD. I will pick and choose which scripts to move into this new project and yet I reckon many will remain the same. This will be a prime opportunity to do a bit of house cleaning on the namespace, which is acceptable to me considering I mentioned in my original readme that alpha versions may change function names and I haven't put any into beta since I started collecting back in 2005.

It must be time to go beta ... go beta or go home.

Other source code will go somewhere else, but I'll figure that out later. I think I'm going to play around with the plunge into my new plans. Now I just need to think of a clever summary for OtechSDK.

No comments: