Wednesday, April 06, 2005
I'm writing a file sharing program.



First let me explain why I've decided to do this. I've had a never ending issue: I want to simply move files from one computer to another. Just drag files over and be done with it. I have multiple operating systems and samba/windows file sharing just plain sucks. Samba has way too many things to configure to get running and windows file sharing has things that randomly go wrong and are nearly impossible to diagnose.

So I decided to look around the internet for other solutions. Novell started an interesting program called iFolder. It looks cool and runs on all platforms. Then I discovered the major flaws - it's written in .NET, it's not in gentoo's system, and their stable release requires you get a central server for it. Frustrated, I decided it's time to write a serious program for this -- I call it Chungles.

I decided firstly to write Chungles in java. I like java. It's kinda slow, but it's nice to code in and it runs on all platforms. Cross-platform language is good for this.

Next up was the UI. I hate swing (it's ugly!) but I came across SWT when playing around with that nice bittorrent client Azureus. SWT offers a native GUI via java. That's right kids! Have your windows, linux, or os x look and feel and not ugly java swing look and feel. I'm going to add a nice drag and drop bit to it, and computers show up in an organized tree.

Then the actual networking. This is a huge part. I want it to adapt to most networks with little to no configuration. Playing around with macs a lot, I've become fond of Rendezvous (aka Zeroconf). Rendezvous allows you to discover computers (well, services) on networks nearly flawlessly. Apple uses it in iTunes for music shares. It's really nice, so I decided I want to use it for computer discovery.

I actually have the code written for computer discovery so far and when I was resolving an issue with it not running on multiple network interfaces, I came up with two interesting ideas to make Chungles spiffy: 1) Allowing a client to copy files from one share to another share. That is, act as middle man. Which is similar to feature 2) Acting as a bridge for two Chungles networks. That is, all the computers seen on one can be shown on others if they have two networks (disabled by default).

So what do you think? Am I wasting my time? Is this really needed? Is there something already written that does a better job than I'm doing? If this is a good idea, what else could I make it do?
posted by Alex at 2:11 AM 0 comments



Archives:
04/06/2005   04/08/2005   04/11/2005   04/12/2005   04/17/2005   05/08/2005   08/04/2005   08/06/2005   08/11/2005   10/08/2005   03/28/2006   04/19/2006   05/02/2006   09/29/2006   10/12/2006   11/01/2006   11/03/2006   11/05/2006   11/16/2006   11/21/2006   12/01/2006   12/03/2006   12/04/2006   12/07/2006   12/09/2006   12/11/2006   12/26/2006   01/28/2007   10/27/2008   08/08/2009