FIDER - FileUploader

Hallo!

Ich möchte euch mein Programm vorstellen, an dem ich gerade programmiere: FIDER (kommt von FileUploader).

FIDER ist ein OpenSource-Programm (Java), das zum Upload von Bildern zu dem Sharehoster Abload (http://www.abload.de/) dient.
Der Vorteil ist die einfachere Bedienung und die Werbefreiheit gegenüber der webbasierten Oberfläche.
Es ist geplant, auch andere Dateiformate zu unterstützen (also nicht nur Bilder).

FIDER ist zwar erst in der Alpha-Phase und erst im Aufbau.
Aber genau deswegen kann ich eure Tipps und Ratschläge gut gebrauchen - und wer sich an meinem Projekt beteiligen will, kann sich gerne bei mir melden (entweder hier im Thread, per PN oder per Mail)!

Die Homepage findet ihr hier: http://sites.google.com/site/javafider/

Schnappschuss:

Gruß,
pcworld

PS: Ich freue mich über jedes Feedback!

Ohne jetzt dein Programm oder Abload zu kennen - sicher, dass du das von Seiten Abloads darfst? Oftmals wird sowas verboten, eben wegen der Werbeeinnahmen, die dem Anbieter entgehen.

Hab (nachträglich :-)) um Erlaubnis gefragt - und eine bekommen.

Übrigens kommt in ca. 3-4 Wochen eine neue Version raus, wo der Dienst file-upload.net implementiert sein wird.

Gruß,
pcworld

Finds durchaus cool. Hast schön gemacht bis jetzt :wink:

So, jetzt ist die neue Version draußen, Weiteres hier: http://sites.google.com/site/javafider/Home/blog/alpha1-03-veroeffentlicht

Gruß,
pcworld

Fehlerbehebung - Abload geht jetzt wieder mit FIDER: http://sites.google.com/site/javafider/Home/blog/alpha1-031-veroeffentlicht-abload-geht-wieder

Gruß,
pcworld

mein erster eindruck (hab den src runtergeladen)

  • warum muss ich mir noch die libraries zusammensuchen ? warum sind sie nicht schon dabei ?

  • es gibt die Globale Variable Controller - die auch noch zig weitere Objekte referenziert… somit hast du nicht nur die eine Instance global auch jede andere - Globale States sind nicht gut …

  • throws IllegalArgumentException ist nicht noetig… es ist eine RuntimeException

  • Programmiere immer gegen interfaces - zb statt public ArrayList getUploadArray() -> public List getUploadArray() oder gar public Collection getUploadArray()

  • Tell dont ask

		httpClient = new HttpClient();
		SimpleHttpConnectionManager conManager = (SimpleHttpConnectionManager) httpClient
				.getHttpConnectionManager();
		conManager.getParams().setConnectionTimeout(8000);

		table = new UploadTable();
		tableScrollPane = new JScrollPane(table);

		linkBox = new ImageLinkBox(this);
	}

deine API luegt in dieser Hinsicht - dem Verwender ist nicht klar was AbloadUpload fuer Abhaengigkeiten hat… Abhaengigkeiten immer explizit angeben und nicht selbst herbeizaubern.

  • nicht ein Test zu finden

Vor allem fuer Tests ist dieser Code nicht zugaenglich und das ist nicht gut. Weiterhin, was macht jemand der ueber 8000 port nix tun kann ? etc

ist nicht boes gemeint, aber sind generelle Sachen, die man beachten sollte - als Tipp fuer zukuenftige Sachen

[QUOTE=deathbyaclown]mein erster eindruck (hab den src runtergeladen)

  • Programmiere immer gegen interfaces - zb statt public ArrayList getUploadArray() -> public List getUploadArray() oder gar public Collection getUploadArray()
    [/QUOTE]

Ich hab den Sourcecode nicht angeschaut, aber was ist der Vorteil wenn man gegen Interfaces programmiert? Wenn intern eine ArrayList verwendet wird, sehe ich keinen Grund nur eine Liste zurückzugeben - im Gegeinteil, außen weiß man ja nicht mehr welche Klasse genau vorliegt und welche Methoden genutzt werden können. Man verliert sozusagen Details oder?

nein, implementierungsdetails sollten NIE nauch aussen gegeben werden. Statt eine ArrayList weiterzugeben gibt List zb raus. Da ArrayList das List interface implementiert kann der Verwender alle Methoden nutzen, ohne zu wissen dass es eine arrayList oder eine LinkedList oder deine eigene super performante List ist.
Man macht sie somit nicht von einer konkreten Implementierung abhaengig.
Warum soll der aussenstehende wissen welche Implementierung man genommen hat… es ist eine List, ergo kann ich alle in List angebotenen Methoden auch nutzen.

Weiterhin stell dir vor du hast ueber ArrayList geschrieben und Leute benutzen nun deine API und dementsprechend auch ArrayList. Jetzt hat sich aber rausgestellt dass ArrayList nicht gut ist sonder die SuperDuperList ist wesentlich besser… viel Spass beim Aendern :wink:

Durch Interfaceimplementierung hast du und deine API keinerlei Probleme Implementierungen auszutauschen, da die Kommunikation nur ueber die Schnittstellen (Interfaces) geht .

Okay, der letzte Punkt ist wirklich einleuchtend :slight_smile:

Hallo,

auch wenn das ganze schon etwas älter ist, ich wollte es Testen aber unter Java schmiert mir das ganze als ab und bleibt wenn das nicht ist einfach hängen.

Öffnet sich denn bei dir ein Fenster? Und wann schmiert es ab bzw. bleibt es hängen?

Edit:
Wenn ich hier schon mal etwas schreibe, möchte ich erwähnen, dass ich schon länger nicht mehr an diesem Projekt weiterentwickelt habe (da ich andere Projekte angefangen habe). In der neuesten Version, die allerdings nur auf meinem PC vorhanden ist, besteht die Möglichkeit, einfach weitere Hoster hinzuzufügen (Pluginfähigkeit).
Wenn jemand Interesse daran hat, kann ich den Source evtl. auch nochmal rauskramen.

Hallo,

das Problem liegt wohl an meinem Rechner selbst.
Direkt nach dem Starten friert mein System ein und auch einmal mit einer Stopp Meldung / Blue Screen.

0x804F15CF

Es erscheint das Jave Symbohl im Try

Ob ich jetzt Java 6 installiert habe, habe ich nicht geprüft. Intresse besteht an diesem Programm!

Hätte ja sonst hier nicht geschrieben.

lg

Hallo,

dass bei dir ein Bluescreen kommt oder diese „0x804F15CF“-Fehlermeldung, hat ganz sicher nichts mit meinem Programm zu tun.

Was meinst du damit?

Dann überprüfe es. In Windows: Start → Ausführen → cmd.exe → Enter → „java -version“
Ausgabe sollte sein:
java version „1.6.*“

[QUOTE=Blackloard;14004]Intresse besteht an diesem Programm!

Hätte ja sonst hier nicht geschrieben.[/QUOTE]
Für deinen Bilderhoster? (falls ich das richtig verstanden habe, dass du einen Bilderhoster betreibst)

Moin,

nach einem Restart meines System, konnte ich auch das Java Päckchen ausführen.


java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode, sharing)

ohne Probleme und es lief schnell.

Intresse besteht auch für meinen Bilderhoster , das ist Richtig!
Hierzu sollte man allerdings auch seinen Username und Login Details eingeben können, damit der Überblick im Archiv besteht.

mfg