# MuSeeK mein neues Projekt..



## Looky (11. Juli 2008)

Hallo Java-Freunde,

ich möchte euer Augenmerk einmal auf mein neustes Projekt lenken. Mit dem Programm könnt ihr Musik suchen und euch diese anschließend direkt
anhören. Und das beste ist: Es ist völlig legal. Die Musik die von dem Programm gefunden wird, liegt auf öffentlich zugänglichem Webspace von Benutzern
hochgeladen.
Das Programm streamt die Songs anschließend zu euch 

Hier stelle ich das Projekt vor:

http://www.tutorials.de/forum/proje...seek-musik-suchen-streamen-und-geniessen.html

Dies ist die erste final Version des Programms und es werden noch einige Features hinzugefügt (Programm verfügt über eine Auto Update Funktion)

Viel Spaß damit und über Feedback würde ich mich natürlich freuen.

LG
Christian


----------



## HateSociety (11. Juli 2008)

wow  bin zwar noch nicht so lange bei java bei aber das ist echt der  hammer das programm  wie lange hast du daran gesessen wenn ich fragen darf


----------



## Looky (12. Juli 2008)

Danke das hört man gern. Mhm mit allen betas vorher (die in meinem Freundeskreis getestet wurden) schätze ich so ca n bisserl mehr als 4 monate. Immer abends nach der arbeit mal 2-3 stündchen

Ich denke Monatg wird nochmal n dickes Update kommen...

PS: Wenn dir das i wirklich gefällt würds mich freuen wenn du es weiterempfehlen würdest


----------



## zerix (12. Juli 2008)

Hallo,

du schreibst ja in der Dokumentation, dass es auch unter Linux laufen soll. Da stellt sich mir aber die Frage, wie man es dort starten soll. ;-)
Da es ein Java-Programm ist, würde ich es nicht so gut finden, wenn ich es mit wine starten müsste.

MFG

Sascha


----------



## Looky (12. Juli 2008)

nein du hast recht. ich werde auf der projekt homepage bald ein package für windows und eins für java haben. das java teil wird dann mit einem ausführbaren sh skript gestartet. Die Tests für die Linux version laufen allerdings noch.

Wird aber noch diesen Monat fertig


----------



## HateSociety (12. Juli 2008)

Ja klar sobald ich montag auf arbeit bin, werde ich denen das direkt empfehlen 

aber warum erstellst du nicht einfach ein jar-file?


----------



## Xandro (12. Juli 2008)

Moin,

jau, das ist schon was ganz Feines 

Aber wo ist denn die Minimierung in den System-Tray? *grinst*

Gruß,
Xan


----------



## Looky (12. Juli 2008)

guter vorschlag, hätteste auch einfach ins forum auf der projekt-seite bzw im programm menü unter ?-->Bugs/Feature request senden können. 
Aber ich habs in die Liste aufgenommen

Und wie gesagt, immer schön weitersagen


----------



## Looky (14. Juli 2008)

HateSociety hat gesagt.:


> Ja klar sobald ich montag auf arbeit bin, werde ich denen das direkt empfehlen
> 
> aber warum erstellst du nicht einfach ein jar-file?



weil ich mit der exe direkt den classpath mitgeben kann. (ich habe ja mehrere libs die alle außerhalb der eigentlichen jar liegen)

außerdem ist die jar so in einer exe Datei verpackt und ist ein wenig geschützter vor reverse engineering. Zumindest noch ein netter zusatz zum eigentlichen obfuscating 

lg
christian


----------



## HateSociety (14. Juli 2008)

hmm also wenn ich ein jar-file erstelle, dann packt er die anderen jar files die ich habe alle in einen extra ordner der lib heißt...

sorry mit dem rest kann ich nix anfangen(reverse engineering & obfuscating)

bin halt noch ziemlich neu in java


----------



## Looky (14. Juli 2008)

HateSociety hat gesagt.:


> hmm also wenn ich ein jar-file erstelle, dann packt er die anderen jar files die ich habe alle in einen extra ordner der lib heißt...
> 
> sorry mit dem rest kann ich nix anfangen(reverse engineering & obfuscating)
> 
> bin halt noch ziemlich neu in java



ja, aber wenn du dann die jar starten möchtest brauchst du auch wieder eine batch datei, die was enthält wie:

```
java -cp ./lib/bla1.jar;/lib/bla2.jar;MuSeeK.jar de.museek.Start
```
und das wollte ich vermeiden.

Reverse Engineering bedeutet im großen und ganzen, ein Programm zu analysieren und so Rückschlüsse auf den Code zu bekommen. Bei Java ist es noch einfacher, da eine Jar nix anderes alsne zip Datei ist. Wenn du die entpackst kannst du die Dateien mit einem Dekompiler im Klartext einsehen, sprich den Source. Ein Dekompiler wäre z.B. Jad.

Um das zu verhindern bzw zu erschweren gibt es die Methodik "Obfuskation". Das bedeutet im Grunde eigentlich nur, dass der Source (vereinfacht ausgedrückt) unleserlich gemacht wird. Sprich Methodennamen, Variablennamen usw werden ersetzt.

wenn früher eine Methode so hieß:

private void doSomething(){
 int i;
 {...}
}

heißt sie nun so:

private void a(){
 int xaxa;
 {...}
}

usw: Der Code ist also nach dem Dekompilieren für Menschen so gut wie unlesbar

Hoffe ich habe das verständlich rübergebracht, das alles war nun etwas vereinfacht

LG
Christian


----------



## HateSociety (14. Juli 2008)

ja danke ist super verständlich


----------



## zerix (14. Juli 2008)

> ja, aber wenn du dann die jar starten möchtest brauchst du auch wieder eine batch datei, die was enthält wie:



Nein, braucht man nicht. Du kannst alle zusätzlichen jar-Files die du brauchst im Manifest-File angeben und dann kann man die Jar auch mit Doppelklick starten.



> Der Code ist also nach dem Dekompilieren für Menschen so gut wie unlesbar.



Naja, unlesbar ist er nicht, sondern nur etwas schwieriger lesbar.

MFG

Sascha


----------



## Looky (14. Juli 2008)

zerix hat gesagt.:


> Nein, braucht man nicht. Du kannst alle zusätzlichen jar-Files die du brauchst im Manifest-File angeben und dann kann man die Jar auch mit Doppelklick starten.
> 
> 
> 
> ...



Mhm das mit der manifest wusste ich noch nicht. hast du da vielleicht mal einen guten Link zu?



> Naja, unlesbar ist er nicht, sondern nur etwas schwieriger lesbar.



Und meine Antwort war: Der Code ist also nach dem Dekompilieren für Menschen *so gut wie unlesbar*

Wmoit ich sagen wollte das es auch einfach nur schwerer ist, nicht unmöglich, sonst hätt ich das geschrieben


----------



## zerix (14. Juli 2008)

> Mhm das mit der manifest wusste ich noch nicht. hast du da vielleicht mal einen guten Link zu?


http://java.sun.com/docs/books/tutorial/deployment/jar/downman.html

MFG

Sascha


----------



## shutdown (14. Juli 2008)

> Es ist völlig legal. Die Musik die von dem Programm gefunden wird, liegt auf öffentlich zugänglichem Webspace von Benutzern hochgeladen.



Das alleine muss aber kein Hinweis sein, dass das legal geschehen ist. Wenn ich mich jetzt entscheide, mir ne neue CD im Handel zu kaufen, die in MP3 rippe und auf meiner Internetseite veröffentliche, wird die dann von deinem Programm gefunden?

Wenn ja, dann solltest du dir das nochmal überlegen.


----------



## Looky (14. Juli 2008)

zerix hat gesagt.:


> http://java.sun.com/docs/books/tutorial/deployment/jar/downman.html
> 
> MFG
> 
> Sascha



Perfekt, danke


----------



## Looky (14. Juli 2008)

shutdown hat gesagt.:


> Das alleine muss aber kein Hinweis sein, dass das legal geschehen ist. Wenn ich mich jetzt entscheide, mir ne neue CD im Handel zu kaufen, die in MP3 rippe und auf meiner Internetseite veröffentliche, wird die dann von deinem Programm gefunden?
> 
> Wenn ja, dann solltest du dir das nochmal überlegen.



Ich bin schon alleine dadurch fein raus, dass ich nur eine Schnittstelle zum finden der Musik benutze.... Der Anbieter dieser Schnittstelle ist eine Firma in Amerika, die schon 2 Anklagen abgeschmettert haben

LG
Christian


----------



## shutdown (14. Juli 2008)

Wenn ich nicht möchte, dass du ein Programm erstellst, über das meine Musik illegal zum Download angeboten wird, dann werde ich mich mit meiner Klage an dich richten. Welcher weiteren möglicherweise illegalen Schnittstellen du dich für dein Programm bedient hast, ist dann erst mal nicht das Thema. Natürlich kann ich versuchen, die Schnittstelle generell verbieten zu lassen.

Aber gerade in deinem Fall wäre es viel erfolgsversprechender, wenn ich dich als kleinen Mann direkt in Haftung nehme. Besonders wenn mir als Musik-Konzern ein großes und teures Anwaltsteam und viel Geld für lange Prozesslaufzeiten zur Verfügung stehen.

Mein Rat kann da nur sein: Sei vorsichtig, das kann durchaus auch in's Auge gehen.

Sieh's mal so, man könnte so ein Programm auch ohne vorgefertigte Schnittstelle erstellen, wäre dann vielleicht nicht ganz so mächtig. Wäre aber das gleiche Prinzip.


----------



## zerix (14. Juli 2008)

> Ich bin schon alleine dadurch fein raus, dass ich nur eine Schnittstelle zum finden der Musik benutze.... Der Anbieter dieser Schnittstelle ist eine Firma in Amerika, die schon 2 Anklagen abgeschmettert haben



Naja, nicht ganz. Man kann sie ja nicht nur finden, sondern auch downloaden, denn beim Streaming wird nichts anderes gemacht. Egal, ob sie gespeichert werden oder nicht, sie werden auf jedenfall runtergeladen. Nicht das Speichern, sondern der Upload oder der Download urheberrechtlich-geschützer Daten, deren Urheber man nicht ist, ist strafbar.

Du könntest die URL zu diesem Anbieter ja nicht statisch in den Code implementieren, sondern einen Dialog zur Verfügung stellen, mit dem man selbst eine URL eintragen kann. Damit liegt es am User, von welcher Quelle er Musik hört.

Mir ist unter anderen auch noch aufgefallen, dass man keinen Usernamen und Passwort für den Proxy angeben kann.

MFG

Sascha


----------



## Looky (17. Juli 2008)

So, nachdem ich nun mit meinem Patenonkel gesprochen habe, der Jurist ist, habe ich festgestellt, dass die Software solange ich sie nicht kommerziell vertreibe unbedenktlich ist, was strafmündigkeit angeht. Deshalb:

Heute gibt es eine neue Version mit Features, die einige von euch angefragt haben:

- Tabellen können nun mit einem Klick auf den Spalten-Header sortiert werden
- Eigene Playlisten können nun gefiltert werden (Textfeld am unteren Rand von MuSeeK in der eigenen Playlist)
- Beim Minimieren wird MuSeeK nun ins Systemtray minimiert
- Icon im Systemtray(Rechte Maustaste--> Menü)
- Bei Auswahl von minimaler Dateigröße = 0 MB werden nun nur Files gefunden die mind. 1 MB haben 
- Proxy Dialog ließt nun Werte aus der Config-Datei
- Neuer Wert in der Configuration (balloon) wenn true, werden Balloon Infos beim Systemtray angezeigt
- Autocomplete, einige Bugs entfernt
- Bug/FeatureListe --> Scrollbar bei Inhaltsfeld hinzugefügt

ES GIBT NUN ENDLICH EINE LINUX VERSION!!
- Autoupdate für Linux-Systeme angepasst
- Leider funktioniert das Systemtray Feature derzeit nur unter Windows

Da ich nur geringe Ressourcen zur Verfügung habe, konnte ich MuSeeK nur für Ubuntu und Xandros testen, über Feedback zu anderen Distributionen würde
ich mich also freuen!


Gruß
Christian


----------



## zerix (17. Juli 2008)

Wie sieht es mit Username und Passwort für Proxy aus?

Was ich auch noch gut finden würde wäre, wenn man die Playlist auch lokal abspeichern könnte. Also, dass man sich auswählen könnte, ob Server oder Lokal. 
Was noch nicht schlecht wäre, wenn man dann die Lokal gespeicherte Playlist auf den Server laden könnte, bzw das ganze auch umgekehrt.

MFG

Sascha


----------



## Looky (17. Juli 2008)

Moin,

Username und Passwort kommen in der nächsten Version, versprochen. Was bringt es dir denn wenn du die Playlist lokal abspeicherst? Um die Musik hören zu können musst du auf jedenfall online sein.

Und einfach alles aus der DB exportieren und dann als csv ausgeben kann ich leider auch nciht, da ich, sobald ich die Links für die MP3s ausgebe auch dem User die Möglichkeit des downloads gebe 

LG
Christian


----------



## zerix (17. Juli 2008)

Naja, ich sags mal so. 
Auf dem Server können immer noch die Playlists Usernamen in Verbindung gebracht werden. Da es meiner Meinung nach nicht nötig ist die Playlists auf dem Server zu speichern, sollte es beim User liegen, ob er diese auf dem Server speichern möchte oder nicht.



> Und einfach alles aus der DB exportieren und dann als csv ausgeben kann ich leider auch nciht, da ich, sobald ich die Links für die MP3s ausgebe auch dem User die Möglichkeit des downloads gebe



Das ist ja kein Problem. Du verschlüsselst die Daten einfach. So sind sie nicht im Klartext lesbar.

MFG

Sascha


----------



## Looky (17. Juli 2008)

mhm ja, kein schlechter gedanke.

ich denk mal drüber nach.


----------



## Looky (18. Juli 2008)

zerix hat gesagt.:


> Wie sieht es mit Username und Passwort für Proxy aus?
> 
> Was ich auch noch gut finden würde wäre, wenn man die Playlist auch lokal abspeichern könnte. Also, dass man sich auswählen könnte, ob Server oder Lokal.
> Was noch nicht schlecht wäre, wenn man dann die Lokal gespeicherte Playlist auf den Server laden könnte, bzw das ganze auch umgekehrt.
> ...



Sodelle, Username und Passwort können nun auch eingegeben werden

Have fun!


----------



## zerix (18. Juli 2008)

Damit gibts jetzt ein Problem.

Ich schätze du hast es damit gemacht

```
System.setProperty("http.proxyUser", user);
System.setProperty("http.proxyPassword", pwd);
```

bzw

```
System.setProperty("proxyUser", user);
System.setProperty("proxyPassword", pwd);
```

Das funktioniert leider nicht bei allen, wie es auch bei mir der Fall ist. 
Es gibt nämlich auch noch diese Variante.

```
URLConnection con = url.openConnection();
      con.setRequestProperty(
          "Proxy-Authorization", 
          "Basic " + new sun.misc.BASE64Encoder().encode(
            ("user" + ":" + "passwort").getBytes()
          )
        );
```


MFG

Sascha


----------



## Looky (18. Juli 2008)

aha. funktioniert diese 2. Variante IMMER wenn jemand ein User und ein PWD braucht? Dann werd ich das Handling der URLs darrauf Umstellen..


----------



## zerix (18. Juli 2008)

Das kann ich dir leider nicht sagen.

Da fällt mir noch ein. Du solltest für das Passwort ein JPasswordField nutzen.

MFG

Sascha


----------



## Looky (30. Juli 2008)

Hey allerseits,

es gibt eine neue Version, checkt die aus!!

Sascha, teste mal bitte, ob das nun mit der Proxyanmeldung geht...

LG
Christian


----------

