Gnutella Forums

Gnutella Forums (https://www.gnutellaforums.com/)
-   General Gnutella Development Discussion (https://www.gnutellaforums.com/general-gnutella-development-discussion/)
-   -   New gnutella client for programmers (https://www.gnutellaforums.com/general-gnutella-development-discussion/9345-new-gnutella-client-programmers.html)

guido March 18th, 2002 11:30 AM

New gnutella client for programmers
 
Hi

I'm currently writing my own, GPL'd, Gnutella client, for which I am still looking for co-developers.
The big difference to other Gnutella clients will be - as stated in the subject line -, that this client's main audience are other programmers, not end-users. I'm trying to form a base for other programmers to "hack upon", to try out new techniques and test new protocol extensions.

The source code is supposed to be easy to read, understand and extend, with a huge amount of comments in it. Ideally, a good C++ programmer should not need more than an hour to figure out the basic working principles of the code and where to stuff in his/her changes.

Some words about the client itself:
It is written in C++, the main platform is Linux, but I'm trying to keep it portable. It will be a demon, that means, there will be no direct user interface and it will be controlled via a network connection using a protocol which has yet to be defined and implemented.

The initial functionality of the client will be very basic - with the exception that I'm trying to support fully automated, segmented downloads right from the beginning -, but after the basic stuff is all more or less working, I'm going to implement as many new features and protocol extensions as possible. (That's the _purpose_ of that client...)

By now, everything is still very far from completion; many of the classes are still empty and many of the methods unimplemented. When you're reading through the code, please give me some feedback about whether you think it is a good approach to achieve the stated goals (easy to understand, easy to extend) and whether you've found any obvious errors. (I'm not a very experienced programmer, so there might very likely be some.)

Contact me if you're interested. If there's enough interest, I will open a sourceforge project.

Guido

Unregistered March 18th, 2002 03:35 PM

why not just contribute to one of the existing clients? Code is already done.

maksik March 19th, 2002 12:21 AM

Quote:

why not just contribute to one of the existing clients? Code is already done.
Indeed, why not helping me out with Mutella for example -- just read through the code -- comment what you like and re-implement what you dont. I'd appreciate this greatly.

--Max

Unregistered March 19th, 2002 03:28 AM

Re: personal opinion on mutella
 
Quote:

Originally posted by Unregistered
I know nothing of the code .. but I just downloaded it but stopped before using it, because the colours you have chosen are impossible to read with the terminal background I have ..

you should set it to provide a light background colour.

wrong forum and offtopic, go to the mutella forum plz

guido March 19th, 2002 05:01 AM

Quote:

Originally posted by maksik

Indeed, why not helping me out with Mutella for example -- just read through the code -- comment what you like and re-implement what you dont. I'd appreciate this greatly.

--Max

Because of the goals I've stated before.
I want to create a client which will push the networks development further, by allowing other developers to quickly experiment with new techniques and protocol extensions.
Of course, the clients source code needs to be well structured and easily extendable in order to allow this. I've found mutella to be especially hard to read and understand, mainly because of the complete lack of comments in the code, but also because you were using several not-so-common language cunstructs, many of which were completely new to me at that time.

If you...
a) convince me that mutella is suitable for the goals I've stated,
b) give me a detailled introduction to its working principles
and
c) promise me to extensively comment every bit of mutella source code you write in the future
I will gladly join you.

Guido

Unregistered March 19th, 2002 05:16 AM

Good point. (source code comments *g*)

James Connolly March 27th, 2002 10:54 AM

People should be directed towards contributing to an existing client as opposed to reinventing the wheel. However, there are reasons to start a new program as well. For example, I am writing a Gnutella server/client in C language, although I know little about C programming. Even if there was an existing, robust C client, my knowledge of C is so little that I would not want to contribute schlocky code to someone's project. I am killing two birds with one stone - I am writing a Gnutella servent, and learning C language more fully at the same time.

To further burden myself, I am trying to avoid looking at other people's programs, Gnutella or otherwise, so that I can learn how to do this by myself as opposed to just copying someone else's program and just modifying it. That way I learn better. In some cases, looking at other people's programs has become unavoidable when I hit a brick wall, specifically in dealing with -

STREAMS - sockets and file I/O
big-endian/little-endian issues
The Gnutella protocol

I have even copied some of the socket stuff line for line, but I am going to re-write those functions myself in the future.

If I was a code wizard I would probably check out all the existing projects and choose one to contribute to, but I will not be doing that until I become a better programmer. I have found bugs in other people's programs and notified them of them, and the developer's have fixed those problems. I have some ideas about the direction of Gnutella and P2P, but I think the direction set should mainly rest with the developers whose clients are most popular, and that their priorities like Ultrapeering and ping/pong caching will be my priorities once my client/server matches the initial spec.

Here is the <a href=http://www.geocities.com/gnutizen>web page</a> of my server/client, Gnutizen.

maksik April 3rd, 2002 05:14 AM

Hi Guido,

sorry, I did not follow this thread closely last days. Of course I want mutella to be
1. Open to others through clear design and documentation
2. Efficient (good design is not the last point here)
3. Developing fast (need more hands)

At the moment the code is nearly not doculented at all, I know. But most things I wrote at least shoud be quite understandable for the experienced C++ programmer I guess, but may be I am wrong. Anyway, I'll try to start documenting the code say from the new downloader class at leat there is a design elements there and I'll describe them.

What would you say?

--Max

Unregistered April 12th, 2002 07:26 AM

Re: New gnutella client for programmers
 
Quote:

Originally posted by guido

I'm currently writing my own, GPL'd, Gnutella client, for which I am still looking for co-developers.

You would get more leverage if you participated to some already existing client, with a proven ability to scale and evolve.

My favorite right now is gtk-gnutella. Although it is written in pure C, the new maintainter/author writes very good C (I've learned a lot reading his code) and he documents nicely what everything does.

I'm thinking about a few areas where I could contribute usefully myself.

Did you try to contact the author before jumping into writing your own client, which is a pure waste of human effort? How can the open source community compete with LW and BS if we disperse that way?

guido April 12th, 2002 12:50 PM

Re: Re: New gnutella client for programmers
 
Quote:

Originally posted by Unregistered


You would get more leverage if you participated to some already existing client, with a proven ability to scale and evolve.


Oh, yes, I forgot: UPDATE: I'm not looking for co-developers any more, I've abandoned my client and am now trying to contribute to mutella.

Guido


All times are GMT -7. The time now is 06:26 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.

Copyright © 2020 Gnutella Forums.
All Rights Reserved.