Re: Re: Implementing a Gnutella-structured network only with basic HTTP

Arne Babenhauserheide <[email protected]> Fri, 26 Feb 2010 18:29:09 +0100
Newsgroups gmane.network.gnutella.devel
Message-ID <[email protected]>
Am Freitag, 26. Februar 2010 09:57:23 schrieb [email protected]:
> People have to learn to dive into an unknown codebase.  It will not always
> be possible to start a project from scratch.

That's clear. 

But there are ways to make it easy to start contributing, for example easy to 
use module interfaces and support for scripting languages. 

For example I added preliminary runtime python scripting support to Phex (you 
can access eeverything via Python at runtime), but got stuck when I couldn't 
figure out how to define tasks in the API (there are no easy to use convenience 
functions except “quit”). 

Another example is the extension support in Mercurial, which allows newcomer 
to change Mercurials behavior via clearly defined interfaces and without having 
to dive into the codebase - and many developers started with extensions and 
slowly went deeper: 

- http://mercurial.selenic.com/wiki/UsingExtensions
 
> By your line of reasonning, no new developer would ever be attracted to do
> operating system work because, well, writing a kernel from scratch is a
> huge undertaking (remember, linux started out very small and grew over
> time).

Sure, but 70% of the kernel hackers are paid for their work, and the kernel is 
already the base of their whole system. 

Still you can see how much was hindered by making it so hard to get in, when 
you look at the many great ideas which suddenly became a reality with FUSE. 

-snip- 

> Perhaps we don't have these things because they don't make sense, or
> because the people "in charge" don't have time to be distracted by corner
> features, or because it's better to let some things separated, or because
> nobody took care of actually implementing this stuff.

Or because people who tried it gave up when there wasn't an easy way to reuse 
the work already done in Gnutella and turned to custom made networks instead, 
which initially were simpler. 

> You're not talking about Gnutella here really but about applications that
> could be built on top of Gnutella (or any other P2P network with the
> ability to conduct a search by name and/or a structured search by key).

Jepp. And I ask myself: “Gnutella has a tag-search performance far above 
anything else I know. Why don't people use it?”

> What you need to do is think about which interface you would like Gnutella
> servents to offer (from a command-line perspective, say) to be able to
> serve as an enabler for the higher level features you're talking about. 
> Then if it is general enough to be implemented, it will eventually.

I tried something similar in the past, but for “what does a GUI need for 
general searches”: 
http://www.phex.org/wiki/index.php/Concepts#What_does_a_GUI_need_from_a_backend.3F

Maybe it can serve as a starting point…

Best wishes, 
Arne

--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- 
   - Ein Würfel System - einfach saubere Regeln -
                           http://1w6.org



[Non-text portions of this message have been removed]