Project "affairs" are a great way to explore new technologies and ideas without mucking up projects that actually need to succeed.
I started working on yet another little project idea the other night, a private torrent tracker. Conceptually it's a pretty simple idea that I could probably complete the basic functionality in a few days by brute forcing it, but what kind of fun would that be? ;-}
The goal is to provide a means to exchange files between "friends" whom I trust. The files would only be available to members of the network and the only members of the network would be people I know and trust and their friends.
The easy way to do it is just setup an FTP or WebDAV server, problem solved. Simply setting the right permissions on an S3 bucket would work, but I wouldn't learn anything from the experience and although S3 is inexpensive, once the number and size of files grew it could cost me some serious squids to maintain.
S3 also has the ability to act as a torrent tracker by simply appending a "?torrent" to the end of a file's URL. That could reduce the storage and bandwidth costs significantly. I like that.
The answer I decided on is a private BitTorrent tracker that uses S3 to store the torrent files and possibly even some of the files themselves. The next requirement is storing meta information about the files. Again S3 comes to the rescue via the use of additional header attributes which can be retrieved by an http HEAD request. This eliminates the need for a DB although complicates searching a bit.
All that remains is a UI to make life easier. Originally I was thinking a web interface would be good, and may still be nice but given the audience I'm beginning to think that a smart client would offer some sweet benefits and play nicely into another idea code named Hologram.
I've completed some of the leg work now all I have to do is write it. If I'm being honest with myself I would say it will never see the light of day but in the process of working on it I will gain valuable insights that will help me become a better geek.
TTFN
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.