Posted by Peter on 19:47:00 07-30-2001
It's time to get it together now folks. There has been a long time talking about this and we argued a lot about details. We should get to some work .
Here's my 100 dollar weekend: (as a variation to "my 2 cents")
We do a core system, in c/c++
No GUI, just the functions, and a text-based thing to try it out.
We do a server program to run on our servers. I suggest we use as many of our own servers as possible, Svara has one, Robert has one and I have one part-time. The clients will check which server is up and connect to the best one avaiable.
As soon as anything is done, everyone can start writing their own GUI, clone or port of it. Java, VB, PHP, whatever.
This way everyone can do what they're best at and everybody's happy. Oh, and I'll do the website. KaGez can do a Flash intro if he insists (optional, of course ).
The server
Receives requests from qualified clients (of course)
Has a serverlist with avaiable servers
Lists users, w/ ip, nickname and files shared - file type support
Sends IPs at request to hook up the users to each other
Monitors transfers
Communicates with other online servers (they share their data)
Allows searches
The client
Checks avaiable servers & connects to one
Sends requests (of course)
Lists online members
Lists a chosen member's stuff
Stores downloaded files
Shares files in a certain dir
Is funny
I will do this whatever you guys do . I am most intersted in doing the server actually.. But I'd love to be part of the client coder team too .
(we need a name for it too, but that's not a priority question - we will come up with one soon)
[ This Message was edited by: Peter on 2001-07-30 19:53 ]
Posted by epall on 19:53:00 07-30-2001
I was thinking that maybe each client was a server also. Here's an example:
Client A and Client B are both online and know about each other. Then, Client C connects, he only knows about Client A so he makes a connection to Client A and asks for all of the other nodes that Client A knows about. Client A then tells Client C about Client B.
How does that sound?
Posted by Peter on 19:56:00 07-30-2001
Sounds cool, but somewhere it has to start . That's where the server comes in. I would stick to separate clients and servers, but what do the rest of you think?
Posted by johny-5 on 20:00:00 07-30-2001
Well I think its all a good idea but considering that each client is someone with the executable. If everyone is online at once thats 115 clients, thats alot for the network to handle. It could cause overflows in the network which can cause either lags or the network itself crashing. Just something to think about.
Posted by epall on 20:11:00 07-30-2001
I think there should be a way around this problem.
Posted by loucura on 20:13:00 07-30-2001
Johny: That is what the client being a server would help... If there are 115 clients on, they each can share amongst each other, negating any need for a centralised server.
Sounds good...
Should also involve file-sharing too... just because it would be neat.
Posted by epall on 20:16:00 07-30-2001
I'd really like to do a pure Java client so I'd like somebody to write some kind of protocol definition page ASAP.
Posted by Peter on 20:20:00 07-30-2001
Well, I'll write one protocol definition as soon as I can, I promise .
I dunno, am I OK as a project admin for this? Or was it originally somebody's idea I am stealing? Robert? Anyone? Any bidders?
[ This Message was edited by: Peter on 2001-07-30 20:25 ]
Posted by epall on 20:22:00 07-30-2001
ok, thanks. Also, I'm willing to head the project.
[ This Message was edited by: epall on 2001-07-30 20:25 ]
Posted by Peter on 20:28:00 07-30-2001
Hm, who's gonna head the project now then? I would like to, epall would like to.
I'd agree to a combined leadership, but only if I can have ideas all the time and not having to ask for acceptance .
[ This Message was edited by: Peter on 2001-07-30 20:31 ]
Posted by epall on 20:54:00 07-30-2001
how about napCode for the name?
Posted by Peter on 21:34:00 07-30-2001
codeNap perhaps.. or never mind the name..
Well, Gnutella style is pretty cool in my taste. I mean, the structure of it, not the name .
[ This Message was edited by: Peter on 2001-07-30 21:41 ]
Posted by epall on 22:14:00 07-30-2001
about the structure. I figured out a pretty big flaw in my system: What about the dynamic IPs?
Posted by jgrant on 00:53:00 07-31-2001
Codster, heh good name.
How about all the server does is hold a list of the clients currently online, and when a client signs online it connects to the server and gets a list of all the ips for the clients. Then the client connects to those clients and downloads there list of files.
Maybe you should include something for chat in the protocol, so you wont have to modify it later if you want to add it.
Posted by Peter on 07:46:00 07-31-2001
Epall's idea was pretty good. And if ya get a dns name at www.no-ip.com , I think you can use that instead of the IP.
Posted by robost86 on 17:39:00 07-31-2001
When I get time, I'll start working on the server & a text based client. When (if) i've made a bit on that program, I'll post some information about the protocol used, so other people can start working on Java clients, graphical clients, UNIX ports etc.
Posted by fsvara on 18:23:00 07-31-2001
I've just bought that book about Linux socket programming.. yay!
I haven't read it, yet, tho, and I haven't got any time because i'll be on vacation soon, w/o computer.
Posted by jgrant on 05:10:00 08-01-2001
How can it be a vacation without a computer?
Posted by johny-5 on 18:34:00 08-01-2001
This is all a good idea, I can do whatever anyone asks me to do. I will be dedicating my full focus and time to the YPN from now on. Also something to think about. We need some sort of modification for the FTP protocal that will allow all the users to connect to the servers and download. If anyone knows about the FTP protocal, maybe they should try and modify it a little bit to work like that.
Posted by ^pixel on 18:39:00 08-01-2001
I personally find the client/server concept works much better. When the user connects to the server and logs in they can simply provide a file list which can be stored on a dediated database server. The problem I see is how do you sort/index code snippets?
Posted by Peter on 19:32:00 08-01-2001
People will somehow have to describe the files. Either by, perhaps, make a little text file for each own file with a description, or by sorting files in a certain directory tree (like C/Sockets/, C/FileIO etc).
I dunno
Posted by sachac on 17:17:00 08-02-2001
A WikiWikiWeb (or some derivative thereof) is a quick and easy way to get people to start posting snippets of code. Has a nice collaborative structure. I'm starting to build a knowledgebase/cookbook on our intranet, and it might be interesting to do on a larger scale.
Having it on the Web means you don't need specialized clients or servers, and you can access it from pretty much anywhere.
http://phpwiki.sourceforge.net/ is the home of PhpWiki, and a quick google or freshmeat search will turn up more.
Forgive me if you've already done this or talked about it before - I'm rather new here. =)
Posted by johny-5 on 18:34:00 08-02-2001
Well, this is all a good idea, but I STILL DONT UNDERSTAND how its gonna work, maybe someone can give me an idea that I can oppose or something
Posted by Peter on 19:59:00 08-02-2001
Actually, I've started writing a standard definiton/blueprint for the thing. I hope nobody will hate me for it, but well, you can either team up with it and contribute or just throw it away...
The main point is that everyone should be able to do their versions of it, in their preferred language, but we want it to be ONE working network.
I'll post the document as soon as I'm finished with an alpha version.
Posted by epall on 17:32:00 08-03-2001
ok, sounds great!
Posted by jgrant on 18:39:00 08-03-2001
All the clients should have there source available on the network too. Maybe there should be an index file that has keywords for each source file, so you can search by keywords.
I wanna make a Pascal client
Posted by robost86 on 22:48:00 08-03-2001
I've got a good sock lib for Delphi, if you wanna do it in Pascal
Posted by jgrant on 04:44:00 08-04-2001
I did not know Delphi componets work with Pascal compilers.
Posted by robost86 on 11:22:00 08-04-2001
Delphi is a pascal variant
You could maybe use Free Pascal, I think there are some socket functions in it.
Posted by johny-5 on 16:41:00 08-04-2001
O.k, are the blueprints complete because im still a little lost on how this does what its supposed to do?
Posted by Peter on 19:02:00 08-04-2001
A blueprint beta will be released next week some time. Don't shoot me, I'm just the, uh, bass player... I'll work as fast and hard on it as I can.