Gnutella Forums  

Go Back   Gnutella Forums > Gnutella News and Gnutelliums Forums > General Gnutella Development Discussion
Register FAQ The Twelve Commandments Members List Calendar Arcade Find the Best VPN Today's Posts

General Gnutella Development Discussion For general discussion about Gnutella development.


Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old March 18th, 2002
White Magician
 
Join Date: November 20th, 2001
Location: Hannover, Germany
Posts: 25
guido is flying high
Post 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
Reply With Quote
  #2 (permalink)  
Old March 18th, 2002
Unregistered
Guest
 
Posts: n/a
Default

why not just contribute to one of the existing clients? Code is already done.
Reply With Quote
  #3 (permalink)  
Old March 19th, 2002
Mutella Developer
 
Join Date: January 30th, 2002
Location: Germany
Posts: 87
maksik is flying high
Default

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
Reply With Quote
  #4 (permalink)  
Old March 19th, 2002
Unregistered
Guest
 
Posts: n/a
Default 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
Reply With Quote
  #5 (permalink)  
Old March 19th, 2002
White Magician
 
Join Date: November 20th, 2001
Location: Hannover, Germany
Posts: 25
guido is flying high
Default

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
Reply With Quote
  #6 (permalink)  
Old March 19th, 2002
Unregistered
Guest
 
Posts: n/a
Default

Good point. (source code comments *g*)
Reply With Quote
  #7 (permalink)  
Old March 27th, 2002
Devotee
 
Join Date: January 18th, 2002
Posts: 22
James Connolly is flying high
Default

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.
Reply With Quote
  #8 (permalink)  
Old April 3rd, 2002
Mutella Developer
 
Join Date: January 30th, 2002
Location: Germany
Posts: 87
maksik is flying high
Default

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
Reply With Quote
  #9 (permalink)  
Old April 12th, 2002
Unregistered
Guest
 
Posts: n/a
Default 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?
Reply With Quote
  #10 (permalink)  
Old April 12th, 2002
White Magician
 
Join Date: November 20th, 2001
Location: Hannover, Germany
Posts: 25
guido is flying high
Default 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
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
yet another Gnutella client?? dangermaus General Gnutella Development Discussion 11 September 5th, 2002 12:33 PM
New Client for gnutella Unregistered Gtk-Gnutella (Linux/Unix/Mac OSX/Windows) 1 July 17th, 2002 06:37 AM
New gnutella client for programmers Unregistered Mutella (Linux/Unix) 1 April 3rd, 2002 05:17 AM
Which gnutella client is the best? Unregistered Site Feedback 8 December 25th, 2001 08:29 AM
This Gnutella client is the best! Unregistered General Gnutella / Gnutella Network Discussion 1 November 18th, 2001 01:46 PM


All times are GMT -7. The time now is 12:02 AM.


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.