Developer Hub

Technical discussion about the NMDC and <a href="http://dcpp.net/ADC.html">ADC</A> protocol. The NMDC protocol is documented in the <a href="http://dcpp.net/wiki/">Wiki</a>, so feel free to refer to it.

Moderator: Moderators

Locked
Moch
Posts: 71
Joined: 2003-03-21 22:29

Developer Hub

Post by Moch » 2003-03-25 15:24

Hi,

I've been reading the threads in this group for some time now. I am in the process of writting my own DC++ compatiable client for Linux.

I saw that there is a developer chat hub, but what I need to know is there a developer hub that I can test my program on?

What I need is a place to connect to that has strict DC++ only rules so I can make sure the Linux port is emulating DC++ flags correctly. However, instead of being temp banned or for good I just need a message sent saying that A. I am not using DC++ or B. Detects and says I am using a hacked version of DC++.

I want to make a legitemant port of DC++ for Linux. There are some linux dc hubs (2 I counted so far), but all of the really good hub scripts I have found appear to be written for DC hubs made for windows.

This project I am working on is extreamly serious. There are two of us working on it right now. (I am the one that is going to be programming all of the communications between the hubs and clients) Once the software becomes in an Alpha stage we will put it up on sourceforge under GPL. This should happen in a week or two. The faster we can find a DC++ only hub to develope with the sooner linux will have a dc++ counter part.

Thanks,
Moch

Sapporo
Posts: 36
Joined: 2003-02-09 23:10
Location: AZ, USA

Post by Sapporo » 2003-03-25 17:41

I would just recommend you download one of the win32 hubs install it and do your own local testing with it. Of course, this assumes you have access to a win32 computer locally.

I think this would be the fastest way of doing things. As you wouldn't have to wait to communicate with a third party and you can do extensive testing with various scripts and/or more than one hub software.

Moch
Posts: 71
Joined: 2003-03-21 22:29

Post by Moch » 2003-03-25 17:54

I guess I could use windows through vmware... However, that is tons of bloat to add to my linux installation. My question is still valid though.

It is not like the development hub needs to be just for my development...... it could also be used by other people who would like to contribute.

Thanks for the response,
Moch

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2003-03-26 20:45

As a sidenote, have you considered merely porting/fixing the DC++ code to work on linux? No use reinventing a perfectly good wheel.

ODCH is for linux, have you checked whether it supports scripting, and whether or not you can find an appropriate script?

If you're just looking to interoperate with DC++, that's an entirely different issue.

Moch
Posts: 71
Joined: 2003-03-21 22:29

Post by Moch » 2003-03-26 21:13

GargoyleMT thanks for the response.

Yes this project is much bigger than just a port of DC++. I really don't want to give away exactly what the program is going to do, but let us just say DC++ support is more of a feature than a totallity of what this program will be. Don't worry though, it isn't going to be any hack of the DC++ protocol it will be a legitment program that I hope hubs would welcome just as widely as DC++.

Thanks for suggesting ODCH, I have not heard of that one. My friend is the one who is suppose to be researching the hub end of it. I will let him know to check that one out.

It seems that idealy I need a hub that supports VBScript scripts. They seem to be the most robust. I doubt I will find a hub for Linux that implements VBScript.. but who knows, Linux is an amazing place *L*

Thanks again for your response, if you have anymore ideas please let me know.

~Moch

ender
Posts: 224
Joined: 2003-01-03 17:47

Post by ender » 2003-03-27 05:31

Moch: do you know about other linux clients, QT-DCgui, QuickDC, DCTC... QT-DCGui is divided into a library that implements DC protocol and a GUI linked to that library, in DCTC the GUI is a separate program communicating with the downoader through sockets (I'm not sure how QuickDC works, I never tested it)...

Moch
Posts: 71
Joined: 2003-03-21 22:29

Post by Moch » 2003-03-27 13:33

Ender,

I have seen those. Most of the linux clients use dctc and are a front end to that. The problem I find with them is that when I use them I get banned from my favorite hubs because they A. don't implement DC++ flags and B. They contain features to fake shares and C. The hubs sometimes dont know what the heck they are, and those are all reason enough to get banned.

I am hoping by doing this project and making a DC++ compatiable client that "follows the rules" there will finally be a DC client that I can use in my favorite hubs that I am usually only allowed to be in when I am running DC++ in windows.

I just implemented a good chunck of my own DC++ library. There really is no point in dumping that work and using a diffrent library to do it. The hardest thing to do, I think, is download the hub lists and decompress them, and I have that done already. Everything else is basically sending straight text from the client to the hub. Transfering files from client to client is easy too.

Thanks for your response ender. I appreciate it. *L* I am still in search of a developer hub though if anyone is intreasted in helping me out in that way.

~Moch

ender
Posts: 224
Joined: 2003-01-03 17:47

Post by ender » 2003-03-27 15:13

QT-DCGui is becomming more and more accepted in hubs, and it has a tag, similar to DC++ (it's only problem is huge memory consumption). The only linux client that allows faking is DCTC, and I don't see anything wrong with it being banned.

Anyway, just out of curiosity, which GUI library will you use for your client?

Moch
Posts: 71
Joined: 2003-03-21 22:29

Post by Moch » 2003-03-27 16:29

Anyway, just out of curiosity, which GUI library will you use for your client?
Ahh that is one of the big secrets for now :wink: In fact, I am writing a daemon that will handle the DC++ connections, similar to how DCTC works. So, basically anyone would be able to write a front end. I know the problem is usually the packaged frontend is lame. I am hoping the front end my friend is programming will raise the bar when it comes to practical front ends. It is still in the works of course, considering his development is being hendered to the speed which I am developing the daemon. I will say this about the frontend though, it will be cross plantform compatiable, and no its not wxWindows api or anything like that.

Yes, perhaps I am being lame being a bit secretive of the project, but it isn't soley a DC++ project there is MUCH MORE to it. I am finding it hard to trust my code to the open source community because I take great pride in my ideas and I would like credit for them..... however, I am "getting over it" and once I have an alpha level that incorporates the main GUI and is mostly functional as a DC++ compatiable I will register it on SourceForge then I will be very grateful for any patches or suggestions. I will be sure to post the project's URL when that happens.


Oh and about DCTC.. I didn't know it was the only one that faked, thanks for the info. However, three out of four "DC Clients" I have used for linux is just a front end for dctc.

As always, thanks for the response.
~Moch

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2003-03-27 20:02

You mean "handle the DC" connections, right? DC++ is the name of "our" (TINU=there is no our) program, DC is the protocol.

I hope you don't see this as a nitpick, but please correct your terminology before you cause unnecessary work for others trying to parse your sentences. ;-)

Moch
Posts: 71
Joined: 2003-03-21 22:29

Post by Moch » 2003-03-27 20:51

GargoyleMT,

Yes, "handle the DC" connections, like you said. I didn't mean to cause any confusion, thanks for catching it.

~Moch

ender
Posts: 224
Joined: 2003-01-03 17:47

Post by ender » 2003-03-28 08:13

I don't understand why some people are so afraid to open their code to the public... stick it with appropriate license, and sue anybody who breaks it :)

Anyway, it would be nice if the daemon could be controlled remotely, it would allow me to get rid of X on my server...

About DCTC: I never thought it has so many frontends... I only tried it with the default (that comes with package - and which I couldn't get to work) and LDCC (which was way too unstable for me - and limited to 80x24)...

Moch
Posts: 71
Joined: 2003-03-21 22:29

Post by Moch » 2003-03-28 13:28

ender,

I really don't want to get off thread here, so maybe we should start another for this issue (but I am sure there prob is one already). How do you know if someone takes your algorithim and modify it? For example, I have a linear time sort program for strings I wrote, I have never seen anyone else do it, but even if I released it GPL and then saw someone else use it I could not say, "For sure they copied me! No one else would of thought of that!" because it is possible for other people to think of it too... Also, If someone uses the code in a closed source project how do you even begin to know they used your open source code to do it? It is not the ideals of Open Source I am afraid of, I am all for that. It is the idea that alot of people are dishonest.

Well right off hand the gui's for dctc I know about are: dc_gui, dc_gui2 (which is VERY unstable), dc_qt (not to be confused with QTDC_gui), phpDC and (you said)LDCC.

Well anyway... no matter if there are 50 dc clients out for Linux, I desire to write the 'best' one. I am also going to make it open source. There are some things in our life we just have to do, and this project, for me, is one of them *L*

So everyone, stop trying to talk me out of it :wink:

Ender, thanks for your response.
Moch

ender
Posts: 224
Joined: 2003-01-03 17:47

OT

Post by ender » 2003-03-28 13:55

Go to www.xvid.org, and scroll to the bottom of News page. You can read about Sigma Design there, who used XviD source in their propriertary codec, and how they found it out...

Moch
Posts: 71
Joined: 2003-03-21 22:29

Post by Moch » 2003-03-28 14:21

Heh, well let's just say I am sure the people that code XviD are about 100x smarter than I. I doubt I would of been able to figure it out.

Thanks for the response,
Moch

aMutex
Posts: 10
Joined: 2003-02-07 15:04

Post by aMutex » 2003-03-29 03:39

"I have a linear time sort program for strings I wrote"

I don't know how familar you are with mathematics, but every student in the first semester is able to show you that NO algorithm can exists to sort in linear time - O(n) - (or atleast your strings have special additional properties and then they aren't real strings anymore) 8)

sandos
Posts: 186
Joined: 2003-01-05 10:16
Contact:

Post by sandos » 2003-03-29 03:51

What about radix sort, bucket sort and count sort then? ;)

aMutex
Posts: 10
Joined: 2003-02-07 15:04

Post by aMutex » 2003-03-29 04:02

Yeah, but did i mention that i'd suggest an "acceptible" amount of memory for sorting, and i had also excluded some "special property qualification" of strings ;)

Moch
Posts: 71
Joined: 2003-03-21 22:29

Post by Moch » 2003-03-29 13:29

aMutex wrote:I don't know how familar you are with mathematics, but every student in the first semester is able to show you that NO algorithm can exists to sort in linear time - O(n) - (or atleast your strings have special additional properties and then they aren't real strings anymore)
Well I am pretty darn familar with that thing people call mathematics heheh..... I do have a degree in Computer Science after all, and unlike some people that I know, I actually deserve it :wink:

I know about your O(n^2) proof for sorting.. it shows that there is no way to sort faster than O(n^2) with any COMPARISSON sort algorithim. That is just it, like the sorts sandos mentioned, my sort program uses a NON-comparisson sort algorithim...It's a modified bucket type sort if you had to give it a name.

Since we are so off thread here, I'll continue hehe.. That is why I wrote it, because all of my instructors were saying it was such a big deal and there were only examples of linear time NUMBER sorts in our book. So just to satisfy my own curiosity and have a real challenge I implemented a linear string sorting algorithim.

It is a bit memory hungry, but really..... The memory actually LEVELS OUT after there has been enough input to represent an average length of any string in the list that is to be sorted. The very nifty part about this algorithim is that you can also run a NON-comparisson search on the list of words as well and the time it would take is O(n) where n represents the length of the string... Of course, after the list is sorted in memory it takes no more memory to do a search.

Anywho.... *L* Alll I want to do is find a developer hub, not argue of the semantics of things. aMutex, I am glad to know that the first year CS majors at your college actually get to that stuff... Where I went to College Discrete Math (first class with O(*) stuff in it) is an upper level course. I actually took it at the end of my first year though cause I had my calculus taken cared of in Highschool.

Thanks for the response aMutex, and thanks for the sorts sandos *L*
~Moch

aMutex
Posts: 10
Joined: 2003-02-07 15:04

Post by aMutex » 2003-03-29 13:56

actually you proove O(n*lg n), not O(n²).

and i only wanted to bring some light to your famous O(n) - sort algorithm ... now i know what i have to think about your "I have a linear time sort program for strings"-citate :lol:

Moch
Posts: 71
Joined: 2003-03-21 22:29

Post by Moch » 2003-03-29 14:12

Now isn't that egg on my face :o *L*

Moch
Posts: 71
Joined: 2003-03-21 22:29

Post by Moch » 2003-04-03 13:41

Oh.. BTW I don't need that developer hub anymore, thanks though for *ughum* all of your support.

~Moch

---End Thread---

Dj_Offset
Posts: 48
Joined: 2003-02-22 19:22
Location: Oslo, Norway
Contact:

Post by Dj_Offset » 2003-04-05 10:54

ender wrote:Moch: do you know about other linux clients, QT-DCgui, QuickDC, DCTC... QT-DCGui is divided into a library that implements DC protocol and a GUI linked to that library, in DCTC the GUI is a separate program communicating with the downoader through sockets (I'm not sure how QuickDC works, I never tested it)...
QuickDC is written from scratch in C++ using a single threaded model.
At the moment it supports most things supported by DC++ (multihubs, bz2, extended protocol etc). I haven't bothered to add the description tags yet...
I wrote QuickDC - A DC++ compatible client for Linux and FreeBSD.

Locked