OpenDJ UNIX-based P2P Streamer 148
hardcorejon writes "I found the Streamer software interesting, particularly because I've also written a remarkably similar piece of software, called OPENdj. Because Streamer requires
Windows, I thought my fellow Slashdot readers would be interested in
OPENdj, which is an open source
Java/Linux-based distributed streamer. Development on OPENdj began over a year ago, with version 1.0.0 appearing this past May. It has some slick features, including
automatic archiving, archive search, stream meta-tagging, listener
counts and chat rooms. Download it, bang on it, send me patches :)"
It works!! And it doesn't crash!! (Score:5, Funny)
OpenDJ doesn't crash!
Is this a bug or a feature?
Will you be putting the crash thingee back in so as to make it comparable to its closed source Windows counterpart?
Re:It works!! And it doesn't crash!! (Score:1)
Re:It works!! And it doesn't crash!! (Score:1)
streamer [u-net.com]
Its Windows counterpart is not closed source (Score:2)
Re:Its JAVA!!!! (Score:4, Informative)
Err...Limewire??
Re:Its JAVA!!!! (Score:2)
Limewire sucks compared to alot of the other Gnutella clients, its a decent client but nothing about it makes it better.
The best thing I can say about limewire is it works.
Re:Its JAVA!!!! (Score:2)
Why didn't SUN though about providing native widgets? For the server side you don't need them, but if they wanted to hit Microsoft in the heart, they should have though of many a java app look as nice as any other app in windows (or linux, say gtk or qt).
I guess they'll never understand the desktop market. If it doesn't look nice, it's perceived as BAD.
I'm not only talking for myself, but for what I hear from people trying java stuff.
Because then it wouldn't be cross-platform (Score:2)
Re:Because then it wouldn't be cross-platform (Score:2)
Java widgets? Cool, they are needed and usefull. Native Widget are not needed to run an app, but people don't _want_ to run odd looking apps.
Anyway, was just a though. Though I like Java, it's lacking scope provided a strong reason for
Here's your explanation (Score:4, Informative)
Because server side networking code is REALLY easy in Java. Writing multithreaded code is REALLY easy in Java.
That said, OPENdj is really built on top of open wire-level protocols [opendj.org]. The current client and server are in Java. I'm working on a C client right now. If someone wants to reimplement the server in C, go for it!
- jonathan.
Re:Here's your explanation (Score:1)
Re:Its JAVA!!!! (Score:1)
but then again, processors are getting faster so soon java will feel like assembler...
P2P streaming... (Score:2, Redundant)
Now it is facing some stiff opposition in the form the RIAA and their demonic minions. I don't want to see internet radio go down because it is the only inexpensive way I've got left to get introduced to some good music. Sharing with my bearded linux hippie friends is nice but there isn't enough variety to really find off the wall shit I end up really digging. P2P radio seems like an obvious solution because of the P2P buzzword culture surging as of late. The model however runs into serious problems. The RIAA doesn't have to go after a single individual or group of individuals to take out P2P radio like they were able to with various sharing programs. All they have to do is make some deals with cable and DSL providers. Lets say there was a popular P2P radio in my town, all it would take is a deal or lawsuit against Charter and he would be toasted. We'd all end up with our bandwidth curtailed more than it already is and P2P radio would end up specifically forbidden in the AUP.
Re:P2P streaming... (Score:1)
It's very similar to Limewire in look/feel but only allows the trading of music by artists that allow the taping of their shows (and videotaping as well).
There is a Java client for those non-native OS's (Linux, etc).
I use it daily, it seems stable enough on my machine, try it out and see if you like it.
Re:P2P streaming... (Score:1)
Thanks for the suggestion. I've mostly gone back to listening to my own CD collection, but for a long time I was listening one of the various SomaFM [somafm.com] streams, sitting back, coding, and occasionally writing down the name of a new group [tres-belle.net] or album that I had never heard. I have made dozens of CD purchases [foetusized.org] based on that list. That source [somafm.com] is gone now, and the list [foetusized.org] (along with CD purchasing [cdnow.com] for the last few months) is frozen with its departure.
Another funny anecdote: While driving (the only time I ever consider subjecting myself to broadcast radio) recently, I actually heard a song I liked. Missed the name of the artist [http], but I paid close attention to the lyrics to see if I could pick out keywords. Went home, logged in to the nearest P2P network [about.com] and had that exact song in less than 30 minutes.
If someone would develop a system with that kind of response time, that would allow me to download what I want by the song, I'd pay for that. The RIAA has had at least half a decade to develop such a system, yet instead they have tried to legislate the technology back into Pandora's Box [pandorasbox.com].
This disgusts me to no end [216.239.33.100], and I think I'm now fed up enough where this will now become a personal crusade for me. These leeches do the public, and the arts no good. They've refused to evolve, so now it's time for their extinction.
Re:P2P streaming... (Score:1)
I'm here for your questions and comments (Score:4, Informative)
I'm really interested in getting as much feedback on OPENdj as I can. Towards that end, if you have any questions, comments, concerns that you'd like to direct towards me, please let me know.
Thanks,
- jonathan.
Suggestion: Obey the DMCA (Score:1, Funny)
Port to C immediately (Score:1, Informative)
Java apps are not easy to install usually for any OS because they require a Virtual Machine, why not just use C and develop cross platform? Please tell me why you picked java?
Thats the only problem i have with your app. I understand java allows easier cross platform development but you could have done the same thing with C, it wouldnt be as quick and easy but you'd have better support and better code in the long run.
Re:Port to C immediately (Score:2)
__________________________________________
New project: opendj-libopendj
OK, folks, I know that the current client broadcasting software (in Java) really sucks. The user interface is clunky, the installation is a pain, and the massive download size of the Java Runtime Environment is intolerable for DJs who are supposed to only need a 56K modem to broadcast.
Solution: opendj-libopendj and opendj-client-qt
The opendj-libopendj project, already underway, aims to provide a C library API interface to the client-side of the OPENdj Protocol. opendj-libopendj uses the Apache project's APR library to achieve platform independence.
The opendj-client-qt project, which is not yet started, will use opendj-libopendj as a foundation for a platform independent, C++ client based on the Qt Toolkit.
Re:Port to C immediately (Score:1)
Re:Port to C immediately (Score:2)
If someone wants to port the server, by all means, go for it.
And, IMHO, FreeNet is taking so long NOT because it's written in Java, but because their requirements are pretty insane. The protocol itself is fantastically complex. The OPENdj protocols are intentionally lightweight and simple.
See my other post [slashdot.org] on why I chose to go with Java.
- jonathan.
Re:Port to C immediately (Score:1)
Smell the irony, Jonathan.
Keep on keeping on. Do it in Java, do it in C, but most of all, DO IT RIGHT!!
Now, I'm not the developer, but I'll bite (Score:1)
That's kinda funny; I keep telling people that I'd love to help them out with their projects, if they'd port to Java.
Java apps are not easy to install usually for any OS because they require a Virtual Machine, why not just use C and develop cross platform? Please tell me why you picked java?
I develop java, because that is the language I know; I don't post in chineese because I don't speak chineese. Sure - you can develop cross platform, and I'm sure it's easy as pie, which is probably why everyone who develops in C develops cross platform.
The problem in your proposal is, that you need to support a huge number of platforms - with java you only need one; granted, the platform needs to support Java, but that's not my problem. Also I doubt you can reuse much code between Sparc+Solaris and x86+Linux.
I understand java allows easier cross platform development but you could have done the same thing with C, it wouldnt be as quick and easy but you'd have better support and better code in the long run.
Why would it have better support? And why on earth would it result in better code? I am yet to see any buffer overflows in Java, and they are probably the most common bug in software; even good developers fall for those.
Now - why don't you port it to C, and all the platforms that support java? Even if OpenDJ is not open source, I'm quite sure the author would allow you to do so. Or are you only in this for the right to bicker?
Re:Port to C immediately (Score:1)
Takes alot of the issues out of it, but yeah.. for cross platform almost literally plug-n-play, java rocks.
Re:Port to C immediately (Score:1)
I'm not him, but it might have something to do with Java being type-safe, portable, and immune to the innumerable overrun screws that plague code written in C.
Unchecked buffers are bad, m'kay?
Re:Port to C immediately (Score:2)
Compile Java with gcc (er, gcj) and (if you want) you get native code, just like with C, but without the buffer overflows.
C is for kernels and (perhaps) heavily used libraries. Anything else should use a higher level language.
Re:Port to C immediately (Score:2)
And a high level language? C is high level. C isnt assembly you know
Re:Port to C immediately (Score:2, Insightful)
And Java was designed to run on nothing but set-top boxes and was originally called Oak. It's great for embedded systems that can handle the bloat, or for programs that don't require snappy response. Unfortunately, writing anything speedy or quick with it or pretty much anything else except perhaps a calculator or notepad program lies outside that domain.
J++, on the other hand, has no use anywhere at all, so far as I can see.
This doesn't mean either Java or C are bad at anything at all! Its just a load of ranting from people who haven't programmed anything useful in either language!
Isn't slashdot great for that?
Re:Port to C immediately (Score:1)
I think you've taken what I meant out of context.
I was trying to say (in fewer words) that java is good for embedded systems that have the ability to be able to run bloated software.
>Hint: embedded systems, in general, have a considerably smaller amount of memory and a considerably slower CPU than a desktop machine.
That's why I said what I said. I see now, though, that I should have made it clearer.
>Java GUIs are pretty crappy (getting better, though), but the actual language itself is plenty fast enough for most purposes.
It sure doesn't beat most languages. It sometimes even lags behind Visual Basic (from what I've seen), which is usually the standard for "slowest code ever". Perhaps its just stupid coders, but the majority of Java code I've seen is this slow. So either Java is slow, or many java programmers are slow (not necessarialy yourself!).
>If you actually knew what you were talking about you'd know that almost all modern software (except in narrow realms, such as graphics-intensive games and scientific computing) is I/O bound, not CPU bound.
I didn't say I knew what I'm talking about (read my post), but while stuff is I/O bound, loading the CPU any more than is necessary is certainly not going to speed things up.
>If you were really all that concerned about speed you wouldn't be using a GUI in the first place.
A GUI isn't going to eat up an appreciable amount of CPU cycles unless your application is constantly redrawing stuff.
My 286 was able to run GeoWorks acceptably well, and my C64 could run GEOS. If a sub 2 Mhz processor can handle a GUI, but today's GUIs and applications require a Ghz processor to run well, it shows that today's GUI applications could use some optimization.
>As for "not having written anything useful", I've been making a substantial portion of my living from writing code for nearly 20 years.
I don't doubt it. Collectively, A/Cs have probably programmed thousands of man hours in any language.
But, without posting with an account, your claims come off us inconsequential. Sorry.
Re:Port to C immediately (Score:1)
Well, the letters exist on it, not in that pattern, of course.
Not to mention, my history goes back well over 1000 posts.
Yours goes back 0.
That's why people use user accounts, and why A/Cs are always accused of lying.
You can feel free to browse my old posts and see that I often do know what I'm talking about, and see that I often get +5.
You, however, only have a history of getting 0 for all posts, which is to say, only the one I'm replying to, because you could be anyone.
Also, you'll note I use the account shepd on various systems. Give the 'net a search and perhaps you'll find me. Or perhaps not.
See the difference?
[snicker, snicker]
Re:Port to C immediately (Score:1)
Pretty Bass-Ackwards way of thinking, isn't that?
Normally people looking for proof look to the past, which is impossible to fake perfectly. You, however, would prefer to take the risk of me contacting profesisonals and getting an A+ answer rather than be assured of the truth. How unusual.
As I said, its all right there. Browse it and take a look for yourself.
I just won't play your silly little game.
Oh, and I beat opensourceman [slashdot.org] at not only posts, but quality too.
As a final say, why don't you come back when you have something rational and intelligent to say?
Re:Port to C immediately (Score:2)
Lazy, ignorant, demanding SOB, aren't you? Okay, take a look at XWT [xwt.org], for one. Also take a look here [sourceforge.net] and here. [gnu.org]
Of course, the executable for a native Java app isn't going to look any different to the casual file(1) command than one compiled from C, C++ or even Fortran.
Re:Port to C immediately (Score:2)
s/Java/Perl/
Is this the only / real problem you have with Java?
I disagree with the "better support and better code"; C is more diagonal than Java, and diagonality leads to obfuscation. (Perl being the most diagonal language I know; I love that feature of Perl, but it is not this that I am disagreeing with
Cheers
Make it easy to install (Score:3, Insightful)
Offer a download button which downloads all the file in one tar or zip, have some instructions on how to install it on your website.
Delphi Delphi Delphi (Score:1)
And also Windows... The client should have Windows support.
Thanks.
Question (Score:2)
Thanks,
-Jon
Lauging... (Score:2)
But anyway, you're right, I thnk of OPENdj as not really P2P but more like "public access" Internet radio. A soapbox that anyone can stand on and shout!
- jonathan.
hmm (Score:1)
Re:hmm (Score:2)
- jonathan.
I hate to be the one to point this out, but... (Score:1, Redundant)
Yeah yeah, I know I know... troll/flamebait. *sigh* Whatever.
Yeah, well...so what.. (Score:2)
W
Re:Yeah, well...so what.. (Score:2)
Point well taken, though.
Re:Yeah, well...so what.. (Score:2)
- jonathan.
Re:I hate to be the one to point this out, but... (Score:1)
Re:I hate to be the one to point this out, but... (Score:2)
Too bad I'm just a PHB, and my programmer bailed on me:(
Re:Better get a lawyer (Score:2)
I may have to pull the archive facility, but there is nothing illegal about the OPENdj technology in and of itself. People could use this to stream their original music, or just do talk radio, neither of which infringes on anyone else's rights.
- jonathan.
Re:Better get a lawyer (Score:2)
I am a techno DJ.... I spin trance in clubs, and hardhouse for parties and clubs sometimes... and the majority of my music is released either A) underground or B) with the full knowledge of the label that it is being pressed for public use and is generally encouraged to do so.
Go into any record store (vinyl catering to DJs, not CD store..) and you will find bins of LPs with white sleeves and white labels... penned on some track name or genre or play speed (33/45)..
The RIAA has *NO* say about how this music is played as its not under their domain!
So, to make my point, I think its perfectly fair and common to spin tracks in such a manner without even dealing with the beforementioned copyright/licensing/royalties/CARP shit..... Thats basically implied upon purchase of the record.
Re:Better get a lawyer (Score:1)
Well, who really cares?
Re:Better get a lawyer (Score:2)
I don't believe that DMCA mandates copy controls. It punishes things that circumvent existing controls but does not require new ones. He might be clear under DMCA.
It's less clear what would happen under CBDTPA (or, as I like to call it, PHHHFT
fees (Score:3, Interesting)
Re:fees (Score:2)
Eater
Judo Radio (Score:4, Interesting)
There's no need to actually invent new P2P-stream-distribution techniques: a better approach would be to merge live, refreshing station playlists with existing P2P file-sharing networks, like Gnutella, ED2K, FastTrack, etc.
You can think of this as as "Judo Radio" because it uses a tiny, smart control channel to throw around a giant amount of content that lives and travels on outside networks.
I wrote more about it here:
It's not quite the same as typical P2P-webcasting proposals because it leverages open, ownerless content-distribution networks that are already in place, and in fact the "stations" can be agnostic about how the data arrives to audiences. They just say, "get and listen to this next", ad infinitum.Whether the "stations" need any licenses whatsoever to the tracks they "recommend" seems a debatable point to me: the stations themselves make no copies of copyrighted material at all, instead leaving that completely up to the audience to do on their own.
This approach thus has the same resiliency (or weakness) of the underlying P2P file-sharing networks themselves.
Re:Judo Radio (Score:2)
OPENdj works because the upstream connection from the broadcaster can be virtually anything (like a 56k modem), and the server relays the signal over a high-bandwidth connection to the listeners. In that sense, it's not the P2P that you refer to. But from the viewpoint that "anyone who can listen could also broadcast" (any client is also a potential server), it is P2P.
The difference between OPENdj and a simple relay is that opendj acts as a "controller" to the encoder port, and enforces the channels schedule by only allowing the correct broadcaster to connect and stream. OPENdj also handles the "hand-off" when one broadcaster finishes and other needs to start. Imagine one guy in brazil, the other in london, and the stream transitions is seamless to the listener.
There's a lot more material explaining how this all works (and other nifty features too) on the OPENdj project site [opendj.org].
- jonathan.
Re:Judo Radio (Score:2)
An interesting idea, but I believe it will be let down by the unreliability of P2P networks. Downloading a particular piece of content from current P2P services often requires a long period of trying various sources for an open download slot. In a real-time medium like radio this delay would be unacceptable.
Re:Great stuff . . . if your'e a webmaster! (Score:2)
The intent is to make the life of the would-be broadcaster as easy as possible. There are a lot of non-technical people out there who would love to broadcast and know lots about music but not much about computers.
As a secondary goal, it should be easy to install your own OPENdj station. As you note, currently this is not the case.
Also bear in mind that OPENdj has a lot of features Streamer does not - automatic archiving, configurable rerun scheduler, listener counts, real-time chat with your listeners, etc.
- jonathan.
Oh, now I get it (Score:1)
Java Bad! C Good! (Score:2, Insightful)
Lets just say 20 sec to load a notepad clone is sad, and it has to redraw all widgets when you multitask. (which can take another 10-20sec)
Picked up Crimoson Editor, written in C++, has many more features, and runs like a charm.
Perhaps if someone came out with a Java Compiler that turns Java code to machine code I'd like it better.
Until then, you have fun with your Java proggies, I stick with my C/C++ programs.
Re:Java Bad! C Good! (Score:2)
Hmm... I seem to recall that gcc had experimental support to do just this... not sure of the current state of it, though.
Re:Java Bad! C Good! (Score:2)
Re:Java Bad! C Good! (Score:1)
Re:Java Bad! C Good! (Score:1)
You also have two possible ways to have security holes in a Java application, one in the application itself and one in the VM that runs it.
Using C++ you can also use toolkits like Qt and wxWindows it is possible to make portable applications that can run on multiple operating systems without changing a single line of code, and these toolkits are getting better.
I am not saying that java can't get there, once Java can be compiled directly into machine code easily, then Java will likely be more accepted. When that happens Java will be a portable, easy to use, and FAST language.
Re:Java Bad! C Good! (Score:1)
GCJ, TowerJ, VisualAge for Java, BulletTrain, Jove, Visual Café etc., need I go on?
Of course the upside of using java is garbage collection...no more annoying memory leaks, improved productivity, lower cost to market etc. etc. etc.
Re:Java Bad! C Good! (Score:1)
reposted story....sorta (Score:1)
http://slashdot.org/comments.pl?sid=35116&cid=3
Isn't Downloading ALSO Streaming? (Score:1)
One wonders whether non-realtime "streaming" (read: downloading) can also be made illegal by RIAA/CARP
Re:Isn't Downloading ALSO Streaming? (Score:2)
Only if you're listening to it while you're downloading it.
You'd need some major QoS across the entire Internet for that to work. All good streamers cache (buffer) data.
Whether you allow people to download it or stream it, you're still distributing it. Wireless radio stations pay fees, IP radio stations will soon pay fees. Of course, the point of all this software, in my (idealistic) mind, is for non-RIAA-controlled content, but there will be lots of people playing top40 crap anyway.
Many content providers really like streaming because, in many cases, users can't easily save their content and redistribute it. Note the lack of a 'save' button in RealPlayer.
Freedom is great! (Score:1)
Please give me some comments on this. Is it even possible ?
For user authentication, how about SSH Certificates or PGP keys ?
On-demand http streaming (Score:1)
fwiw, Andromeda has been well received on Freshmeat [freshmeat.net]. -Scott
UNIX based you say? (Score:1)
Re:ITs java, it sucks (Score:2)
This is one example of why Open Source programming ideas are bad. When the developer comes out, other's bitch at him without anything to contribute. That's why authors get burnt out.
Quick question (Score:1)
I haven't reached the bottom of the 26 comments so far, and you have posted your hatred of java three times so far
Did you flunk your java course or something?
Re:Neat app, but: (Score:1)
CARP and bandwidth issues (Score:3, Interesting)
The broadcasting software that DJs use tells them how many listeners they have, so if they need to use that to calculate what they owe, the can use it.
On the bandwidth side, a 24 or 32Kbps upstream signal is about all a 56k modem can do. I've tested it with PacBell dialup anyway, and it works OK.
Which brings me to another thought: I hope the RIAA realizes that these low-quality streams are not really worth prosecuting. They are listenable, but certainly won't infringe on album sales - the difference in quality is just too huge. Now if I were streaming at 128k, then you might have a different story.
- jonathan.
Re:CARP and bandwidth issues (Score:1)
This effectively kills most broadcasts. Your average music enthusiast at home, who decides they love their eclectic, offbeat mix of music so much that they want to do a radio show on the Internet, doesn't have the money to pay "protection money" to the RIAA thugs. I know this isn't your problem, but it's a major problem that keeps this project from being terribly feasible.
Fact is, a lot of the most esoteric, indie-label stuff falls as much under the RIAA's grasp as the latest Titney Queers bullshit. Until and unless they resolve this crap (read: throw out this extortion idiocy), about the only people who can afford to broadcast on the Web are going to be the Clear Channels of the world. And we know what that sounds like . . .
I had my signup form all filled up, and was about to hit "submit" before I was reminded of this.
Note to the RIAA: Great job. You've defeated yet another person who actually gives a damn about music. Unlike you crooks, evidently.
Re:People with black background HTML (Score:1)
White/green letters on black backgrounds have been around on computer displays since the teletype started going out of style.
The problem is either your web browser or your eyes or both.