[eMule-Web]

[eMule-Web] (http://www.emule-web.de/board/)
-   Xtreme MOD (http://www.emule-web.de/board/xtreme-mod/)
-   -   eMule v0.46c MAXmod v2.1 [07.01.2006] (http://www.emule-web.de/board/10165-emule-v0-46c-maxmod-v2.html)

Stulle 25. February 2006 17:33

Zitat:

Zitat von NetZwerg
48 Files :shock:
Und ich dachte immer das Open Source Software ordentlich designt wäre. Mh -- wird wohl dringend Zeit für ne Überarbeitung Richtung sauberer Schnittstelle. Aber das müssen dann die MAINs machen.

euhmmm... objektorientiertes programmieren. alles wunderbar geordnet. man erkennt schon am datei namen was die sache eigentl. macht. davon mal ganz abgesehen, wenn man zwei klassen in eine datei packt verlangsamt sich das compilen. erst ansehen, dann motzen

Zitat:

Zitat von NetZwerg
Laß dir Zeit, ne ordentliche (flexible) Implementierung bringt im Endeffekt mehr als ne reingepatchte. :mrgreen:

was heißt schon flexibel. man muß fast jeden code anpassen wenn man ihn einbaut. schonmal die src vom xtreme und vom morph verglichen¿ oder noch besser, vergleich mal die vom ePlus, eMule und eWombat! es ist immer eine frage des umfeldes wieviel man ändern muß oder auch nicht.

Zitat:

Zitat von NetZwerg
Ich hoffe das ich auch irgendwann die Zeit finden werde um mir die gesamten Sourcen mal anzuschauen. Ich danke man kann wohl in Sachen Softwaretechnik dort ne ganze Menge optimieren.

das find ich echt vermessen. denkst du wirklich, dass die devs von eMule keine ahnung haben von dem, was sie tun¿ die leute haben es geschafft nach und nach das eD2k netzwerk aufzuschlüsseln, so dass sie ihr eigenes open source programm schreiben konnten. zwar sind merkur und einige andere bereits gegangen, aber die neuen sind deswegen nicht schlechter. ZZ hat einen weg gefunden effektiv den upload über pings, lovelace über timestamps bei verbindungen und maella/ xman über den netzwerkadapter zu kontrollieren.
ein großteil derer, die bisher an dem projekt gearbeitet haben haben großes geleistet und das zeugt meiner meinung nach von einiger fachlicher kompetenz. nun einfach daherzukommen und zu behaupten das es da ne ganze menge zu "optimieren" sei find ich, mit verlaub, sehr vermessen!

just my 2 cents.

Stulle

NetZwerg 25. February 2006 20:44

Hey Stulle, erstmal locker, ich will hier niemanden angreifen geschweige denn beleidigen.

Zitat:

Zitat von Stulle
euhmmm... objektorientiertes programmieren. alles wunderbar geordnet. man erkennt schon am datei namen was die sache eigentl. macht. davon mal ganz abgesehen, wenn man zwei klassen in eine datei packt verlangsamt sich das compilen. erst ansehen, dann motzen

OOP alleine bedeutet noch keine effiziente Softwarearchitektur. Wenn ich zur Anpassung in 48 Klassen rein muß, um dort etwas zu ändern, dann stimmt etwas mit dem Softwaredesign nicht. Sollten sich die Dinge aber beim besten Willen nicht entkoppeln lassen, so könnten Änderung als Aspekt umgesetzt werden und mit den Techniken der AOP (Aspektorientierten Programmierung) implementiert werden.

Zitat:

Zitat von Stulle
was heißt schon flexibel. man muß fast jeden code anpassen wenn man ihn einbaut. schonmal die src vom xtreme und vom morph verglichen¿ oder noch besser, vergleich mal die vom ePlus, eMule und eWombat! es ist immer eine frage des umfeldes wieviel man ändern muß oder auch nicht.

Ich sagte ja bereits das ich mir die Sourcen noch nicht angeschaut habe.
Aber, Flexibilität ist entscheidend wenn es um das Anpassen von komplexen Systemen geht. Im Bereich der verteilten Systeme gilt Flexibilität als Grundmerkmal für Erweiterbarkeit und Wiederverwendbarkeit. Es bedeutet das mittels moderner Softwaretechniken, wie Inversion of Control und Dependency Injection, System so entwickelt werden, das andere Systeme daran mit einem Minimum an Aufwand andocken können.

Zitat:

Zitat von Stulle
das find ich echt vermessen. denkst du wirklich, dass die devs von eMule keine ahnung haben von dem, was sie tun¿ die leute haben es geschafft nach und nach das eD2k netzwerk aufzuschlüsseln, so dass sie ihr eigenes open source programm schreiben konnten.

Reverse Engineering eines Protokolls sagt noch nicht viel über besondere Kentnisse im Bereich der Softwareentwicklung aus.

Zitat:

Zitat von Stulle
zwar sind merkur und einige andere bereits gegangen, aber die neuen sind deswegen nicht schlechter. ZZ hat einen weg gefunden effektiv den upload über pings, lovelace über timestamps bei verbindungen und maella/ xman über den netzwerkadapter zu kontrollieren.

Das habe ich nicht behauptet und das will ich auch nicht behaupten. Ganz im Gegenteil, ich selber nutze eMule und bin auch mit der erbrachten Leistung sehr zufrieden. Und die Mods der von dir genannten Modder kenne ich ebenfalls und bin auch in der Lage die hohe Leistung dieser anzuerkennen.

Zitat:

Zitat von Stulle
ein großteil derer, die bisher an dem projekt gearbeitet haben haben großes geleistet und das zeugt meiner meinung nach von einiger fachlicher kompetenz. nun einfach daherzukommen und zu behaupten das es da ne ganze menge zu "optimieren" sei find ich, mit verlaub, sehr vermessen!

Sicherlich braucht man fachliche Kompetenz im die erbrachte Leistung zu erziehlen, das will ich auch niemandem abstreiten. Allerdings kann man sicherlich mittels moderner Architekturen noch etwas verbessern. Und wenn die Anpassung so schwer sind wie Max es beschrieben hat, dann gibt es noch ne Menge Möglichkeiten zu optimieren.
Letztendlich sollten die vielen kleinen Erweiterung der vielen Modder als Komponenten fungieren, die ohne große Anpassungen an das System angedockt werden können. Damit ließe sich der Portierungsaufwand um einiges veringern. Dafür bedarf es einer einheitlichen Schnittstelle, eines Komponentenmodells oder eines Frameworks. Diese(s) müßte aber im Core implementiert werden.

Das ist meiner Meinung nach nicht vermessen sondern eher ein guter Diskussionsansatz.

cya NetZwerg

Stulle 25. February 2006 21:11

Sieh mal, es geht ja schonmal los wenn ich nur die Geschwindigkeiten im MSN anzeigen will. Xman nutzt einfach andere Variablen für seine mod, da er ein anderes UL system hat. Hier muß geändert werden.
Die MainTimer Funktion (oder wie die hieß) ist bei der pHoeniX mod an einer ganz anderen Stelle, als im original eMule, also besteht hier der Änderungsaufwand darin die Funktion zu suchen.
Ich könnte jetzt in dieser Art und Weise fortfahren, aber ich denke du weißt schon was ich sagen will.

Zitat:

Reverse Engineering eines Protokolls sagt noch nicht viel über besondere Kentnisse im Bereich der Softwareentwicklung aus.
Ich denke es lässt sich recht einfach schlussfolgern, dass der, der so etwas kann doch mehr Ahnung von Programmierung etc. hat. Die momentane Strukturierung ist fast unumgänglich, es sei denn du hast Lust auf riesengroße Datein! Meine PartFile.cpp: 8071 Zeilen! BaseClient, DownloadClient, UploadClient (gehören einer Klasse an): 4203, 2795, 1805 = 8803 Zeilen!
Du siehst, die Klassen sind nicht einfach nur alle zerstückelt klein. Sie sind nach Logischen komponenten eingeteilt und bieten somit einen optimalen Überblick über das Programm bzw. den Programmcode.

Was mich an deinem Post gestört hat war, dass du ohne genaues Wissen über den Programmcode gesagt hast, dass es überarbeitungswürdig ist.

Bei 48 Datein kannst du ganz stark davon ausgehen, das 30-50% der Datein nur header-Dateien sind. Außerdem einige Listen oder ähnliche GUI Elemente.

MFG Stulle

NetZwerg 25. February 2006 23:56

Zitat:

Zitat von Stulle
Sieh mal, es geht ja schonmal los wenn ich nur die Geschwindigkeiten im MSN anzeigen will. Xman nutzt einfach andere Variablen für seine mod, da er ein anderes UL system hat. Hier muß geändert werden.
Die MainTimer Funktion (oder wie die hieß) ist bei der pHoeniX mod an einer ganz anderen Stelle, als im original eMule, also besteht hier der Änderungsaufwand darin die Funktion zu suchen.
Ich könnte jetzt in dieser Art und Weise fortfahren, aber ich denke du weißt schon was ich sagen will.

Ja Stulle, ich weiß was du mir damit sagen willst und indirekt unterstützt das meine Ausage. Das hat nichts mehr mit sinnvoll entkoppelten Systemen zu tun sondern ist eindeutig ein einpatchen der zusätzlichen Features und genau das habe ich bemängelt.

Zitat:

Zitat von Stulle
Ich denke es lässt sich recht einfach schlussfolgern, dass der, der so etwas kann doch mehr Ahnung von Programmierung etc. hat. Die momentane Strukturierung ist fast unumgänglich, es sei denn du hast Lust auf riesengroße Datein! Meine PartFile.cpp: 8071 Zeilen! BaseClient, DownloadClient, UploadClient (gehören einer Klasse an): 4203, 2795, 1805 = 8803 Zeilen!
Du siehst, die Klassen sind nicht einfach nur alle zerstückelt klein. Sie sind nach Logischen komponenten eingeteilt und bieten somit einen optimalen Überblick über das Programm bzw. den Programmcode.

Nein, genau das was da vor dir liegt sind riesengroße Dateien, Klassen mit 8000 Zeilen haben nichts mehr mit OOP zu tun, das ist modulare Programmierung. Logische Einheiten sind wichtig, aber wo sind die Factorys, Adapter, Observer, all die schöne Dinge die uns die GoF (Gang of Four) gelehrt hat? Wo ist das MVC umgesetzt, wo ist die Fassade die mir ermöglicht eine andere Variable für die Ausgabe der Geschwindigkeit festzulegen. Ich kann nicht sagen das diese Dinge fehlen, da ich den Code nicht kenne, aber aus den vielen Threads von Moddern die ich gelesen habe geht hervor das es immer wieder Probleme mit dem Design gibt.

Zitat:

Zitat von Stulle
Was mich an deinem Post gestört hat war, dass du ohne genaues Wissen über den Programmcode gesagt hast, dass es überarbeitungswürdig ist.

Ein guter Softwareentwickler weiß das kein Code optimal ist. Du hast damit Recht das das hier wie Motzen aussieht, aber ich habe mir schon einige Gedanken gemacht und ich weiß wie schwer es ist komplexe Systeme anzupassen, aber ich weiß auch um wieviel leichter es ist eine Software anzupassen die auf Erweiterung hin entwickelt wurde. Dies ist bei eMule scheinbar nicht der Fall, da es sonst weniger Probleme mit dem adden von Features geben würde.
Ich hoffe das ich bald die Zeit haben werde mich mal tiefgehender mit den Sourcen auseinander zu setzen, denn auch ich möchte meinen Beitrag für die Community leisten. Und wenn dieser Beitrag zur Folge hat das das Leben für alle Modder einfacher wird, dann ist das doch ein Erfolg, oder etwa nicht?
Denn die Modder sollten sich nicht um das WIE Gedanken machen müssen, sondern eher um das WAS.
Solche sinvollen Dinge wie USS, NAFC, Webcache etc. sollten viel eher zur Verfügung stehen und sind nur dadurch entstanden, dass pfiffige Köpfe Zeit zum Denken hatten. ;)

btw: ich würde gerne die Idee des Speed-Balancings bei Routern über SNMP umsetzen, damit hätten auch endlich die Leutz mit Routern ne Möglichkeit für stabilen Upload. Die Idee ist nicht von mir sondern wurde von einem Forenmitglied vorgebracht und ich halte sie für umsetzbar.

Zitat:

Zitat von Stulle
Bei 48 Datein kannst du ganz stark davon ausgehen, das 30-50% der Datein nur header-Dateien sind. Außerdem einige Listen oder ähnliche GUI Elemente.

MFG Stulle

Aber wenn man alle durchgehen muß, um nur ein Feature einzupflegen, welches nur den Core betrifft, im speziellen nur die Übertragung, dann ist das Konzept schlecht umgesetzt.

cya NetZwerg

Stulle 26. February 2006 00:12

sieh dir bitte erstmal den WC code und den code von eMule an bevor du hier fortlaufend irgendwelche behauptungen aufstellst.

aalerich 26. February 2006 01:03

@ NetZwerg :

Nun denn, auf auf und frisch ans Werk!

Mit freundlichen Grüßen
aalerich

NetZwerg 26. February 2006 03:45

@Stulle, aalerich
erstmal muß ich mein aktuelles Projekt zu Ende bringen, danach kann ich und werde ich mir die eMule-Sourcen zu Gemüte führen.

btw: gibt es eigentlich ein Klassendiagramm zum offiziellen eMule?

@Stulle
was heißt Behauptungen -- eher konstruktive Diskussion, kannst mir aber gerne Gegenbeweise bringen ;)

Stulle 26. February 2006 03:57

einfache definitionssache: du kennst den code nicht, machst aber trotzdem aussagen über ihn. diese können dem zufolge nur behauptungen sein.

MaxUpload 26. February 2006 09:56

@NetZwerg: Soviel zum Lehrbuch und zum Studierten ;-). Anhand deiner Aussagen schließe ich schon darauf, daß du ein fundiertes Fachwissen hast und das was du hier vorschlägst auch umsetzen kannst. Zumindest in der Theorie.

Also mir wäre es sehr lieb,wenn du dir mal ne reine WebCache Version vornehmen könntest und den Code anpaßt und wenn du dich da eingeabeitest hast höre ich mir sehr gerne deine Vorschläge an.

Meiner Meinung nach muß der WebCache Code dringend für eine leichtere Implementierung angepaßt werden und mit dieser Meinung stehe ich nicht alleine da.

Du solltest dir das aber alles nicht so einfach vorstellen. Emule ist ein sehr komplexes System und man muß sehr viele Klassen lernen. Das Hauptproblem mit dem wir alle zu kämpfen haben ist der Faktor Zeit.

MfG Max

NetZwerg 26. February 2006 17:01

Zitat:

Zitat von MaxUpload
@NetZwerg: Soviel zum Lehrbuch und zum Studierten ;-). Anhand deiner Aussagen schließe ich schon darauf, daß du ein fundiertes Fachwissen hast und das was du hier vorschlägst auch umsetzen kannst. Zumindest in der Theorie.

Danke dir, ich werde versuchen es auch in Praxis zu beweisen ;)

Zitat:

Zitat von MaxUpload
Also mir wäre es sehr lieb,wenn du dir mal ne reine WebCache Version vornehmen könntest und den Code anpaßt und wenn du dich da eingeabeitest hast höre ich mir sehr gerne deine Vorschläge an.

Das werde ich tun und ich freue mich auf nette fachliche Diskussionen.

Zitat:

Zitat von MaxUpload
Meiner Meinung nach muß der WebCache Code dringend für eine leichtere Implementierung angepaßt werden und mit dieser Meinung stehe ich nicht alleine da.

Ich denke es ist nicht unbedingt das Problem des WebCache sonder eher ein essentielles Problem der Integration neuer Features. Mag sein das beim Implementieren des Webcache Codes diese Probleme verstärkt zu "Tage treten".

Zitat:

Zitat von MaxUpload
Du solltest dir das aber alles nicht so einfach vorstellen. Emule ist ein sehr komplexes System und man muß sehr viele Klassen lernen. Das Hauptproblem mit dem wir alle zu kämpfen haben ist der Faktor Zeit.

MfG Max

Ja, das habe ich mir schon gedacht. Die Lernkurve am Anfang wird sehr hoch sein, das kann man kaum vermeiden, aber die Lernkurve bei einer neuen Version sollte minimal sein und das scheint derzeit nicht zuzutreffen. Auch wenn die Releasedauer mittlerweile etwas größer geworden ist, so wird eine Optimierung wohl über mehrere Releases der Fall sein, bis etwaige Reengineerings in die Basis einfliesen. Von daher wird es wohl kaum in naher Zukunft einfacher werden, aber wer weiß, vielleicht wird es bereits ab Version 0.50 wesentlich einfacher Features hinzuzufügen. Ziel der Entwicklung sollte sein, das kein Modder mehr an Klassen der Basis etwas ändern muß. Am besten nur noch ne XML-Datei ändern und der Rest wird über IoC (Inversion of Control) geregelt. :dance
Aber erstmal den Code studieren und prüfen was überhaupt machbar ist und dann mit Fakten arbeiten, bis jetzt ist alles nur Theorie. Die letzten Systeme die ich umgestellt habe brauchten mehr als drei Reengineeringzyklen um die gewünschte Flexibilität zu erreichen.

Danke.

cya NetZwerg

myrd 4. March 2006 16:25

hallo !

danke für diesen super mod. In letzter zeit habe ich einige ausprobiert und max gefällt mir für den normalbetrieb am besten. Leider vermisse ich noch ein paar option um releases effektiver zu verteilen oder auch andere releases unterstützen. Könnte man da nicht noch ein paar features einbauen ? An meinen ausführungen erkennt jeder sicher das ich mehr der anwender bin als der programierer, deswegen frage ich algemein.
Ansonsten ein wirklich super mod, vielen dank :)

maloxp 4. March 2006 16:36

Hallo myrd,

da kommt demnächst was. Hier ein Zitat vom Max aus einem anderen Forum:

Zitat:

Der MAXmod wird in Zukunft wohl die Richtung Xtreme meets Morph gehn. Außerdem arbeite ich an einem neuen Gemeinschaftsprojekt namens "ScarAngel". Evtl. werde ich auch etwas bei einer neuen Idee des Ackronic Teams mitarbeiten. Mal sehn wie es meine Zeit erlaubt.
Leider wird dies alles natürlich sehr zu lasten des MAXmod gehn,aber ich denke die neuen Projekte werden euch dafür entlohnen. Jedenfalls bleib ich bei euch und ich bilde mich von Tag zu Tag weiter um meine Arbeit qualitativ zu verbessern. Auch wenn dies zeitweilig meine Arbeit am MAXmod sehr ins stocken geraten läßt.

MfG Max
Mehr sag ich dazu auch nicht. ;)
Gruß,
malo

myrd 4. March 2006 18:03

thx für die schnelle antowort.
"Der MAXmod wird in Zukunft wohl die Richtung Xtreme meets Morph gehn"
Das is genau das was ich suche.

Dann verharre ich hier und freue mich auf die dinge die da kommen :)

JulGer 23. March 2006 12:47

Hallo??? Ist hier noch Leben drin? :whistle

aalerich 23. March 2006 22:08

Bei Bedarf sicherlich. Welches ist denn Dein Anliegen?

Bohrend fragend
aalerich


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102