We Came to Play
Podcasting, mobile streaming, and more media
I think it's fair to say that media is not currently one of Java's strengths. I'm reminded of this by the fact that in another window, I have the Pandora music player running. This is a browser-based application that asks you to enter some artists or songs you like and then finds music it considers "similar" and builds a personalized music stream, right there in the web interface. This morning, it's dealing me an odder-than-usual mix (last five artists: Yoko Kanno, Heather Duby, Loudermilk, The Radar Bros., and Frank Zappa).
Maybe this application could done be an AWT/Swing applet with some sort of media API to handle the audio playback, but the HTML source reveals it to be Flash, specifically
Sometimes when I see apps that could have been Java (or, in the case of the Windows-only manager app for the Sony Reader, should have been), I wonder if Java was considered and rejected for the implementation, or if it was simply not considered at all. Those are two dramatically different problems for Java Media to solve, and progress is impossible until the correct problem is determined.
Vikram Goyal has been giving the Mobile Media API a thorough going-over, writing an entire book on the topic: Pro Java ME MMAPI: Mobile Media API for Java Micro Edition. But sometimes, ambition gets the best of you, and you want to go farther than today's tools will take you. That's the case with today's Feature Article, Experiments in Streaming Content in Java ME, in which he tries to coax MMAPI to go beyond playing small files and instead support live streaming media. He writes that since publishing the book, this has been a hot topic:
I have been inundated with requests to help readers with streaming content via MMAPI for Java enabled mobile devices. This topic was an important omission from the book, but one that was simply not feasible to include because of the lack of support for it within various MMAPI implementations. In this article, I will show you the results of experiments I have conducted since the publication of the book to stream content via MMAPI using a custom datasource.
It's important to know before you memorize all the details that while MMAPI can handle a streaming
DataSource, it's not currently able to play that media to the device. Instead, what Vikram has is the results of an experiment that shows how far MMAPI gets you today, what the devices and the API need to change to be able to play streaming media, and the steps that will get you there once they do.
David Herron also has media on the mind in in today's Weblogs. In
Java posse #078 feedback / clarification, he responds to being misidentified as "The dude in charge of open sourcing Java", and proceeds to talk about Josh Marinacci's comment to the Posse that media formats don't matter for apps like YouTube and Google Video. David writes "video distribution is one of these issues where The Big Guys are trying to limit our choices. For example the Big Media companies don't want unprotected video widely available, because they earn their bucks over limiting the redistribution of video. For example Microsoft has for years been trying to steer Internet Video over to the Windows Media format, no doubt because it would increase sales of Windows systems."
Dru Devore digs deep into bytecode in Declare Variables Inside or Outside a Loop:
"This blog walks through the byte code for different scenarios of putting variables inside and outside a loop. Describing what is happening from the byte code level and which method is better."
Finally, Tim Boudreau has some
Continuation tooltips for JLists and JTrees:
"A while back I wrote support for Outlook-style completion tooltips for JLists and JTrees for NetBeans' Explorer components - for cases where part of a tree cell is not visible in a JTree or JList without scrolling. It's not NB specific - you can use it in your own apps as well."
kirillcoollooks at the challenges of Swing look-and-feel development
in today's Forums. In
Re: Alpha blended borders, he writes:
"as far as Basic vs. Synth, you have to consider the availability of resources. You have about 5-6 open-source look-and-feels inheriting from Basic, and you have only one *and* close-sourced inheriting from Synth. Sun's strategy with Synth can be at best be described as strange - not a single good and *complete* tutorial on Synth, no visual tools to build a Synth-based LAF (Romain was working on that but it was never completed). So, for both short and long term, i'd advise going with Basic."
robogeekclears up the motivations behind dual-licensing in
Re: Would more than one license be confusing?: "Dual-licensing is widely used .. e.g. MySQL is dual licensed. One thing it seems to allow is for a 3rd party to build a propriatary application based on the open source project. They would go to the "owner" of the open source project and do the licensing agreement for the closed version of the project in order to have the rights to redistribute a closed source application using the technology. e.g. someone bundling MySQL in a closed source application would to to the MySQL team for a license that lets them do so."
In Java Today,
the JDK Community notes "the good folks at Java Posse have provided the full audio of the Java Open Source press conference," in Java Posse #077 - Special Open Source Java Update. You can click the "POD" link on the episode page to get the 23-minute MP3 directly, or subscribe to the show's RSS feed with your podcasting client of choice.
Issue 254 of the NetBeans Weekly Newsletter is out, with items on the updated NetBeans C/C++ Pack and Enterprise Pack, the release of NetBeans 6.0 Milestone 2, NetBeans in your language, a new article on building and deploying web services, the return of the NetBeans Podcast, WebFrameworkProvider and HyperlinkProvider, 10 Tips for Coding with NetBeans, NetBeans Plug-in: Janino Plugin, Tapestry support for NetBeans and more...
Apologies for the cliché, but it's clear that two paths diverge in the browser client woods, as Frank Sommers considers The Two Roads to Ajax: "Two distinct approaches to Ajax application development emerged in recent years, each extending previous architecture models. As the two seem incompatible, you will need to make a choice."
In today's java.net
News Headlines :
- Early Draft Review
- JSR 291
- Jt 1.1 - Initial
LAF 3.0 RC
Registered users can submit news items for the
href="http://today.java.net/today/news/">java.net News Page using our
form. All submissions go through an editorial review before being
posted to the site. You can also subscribe to the href="http://today.java.net/pub/q/news_rss?x-ver=1.0">java.net News RSS
Current and upcoming Java
- September 6-8 - EclipseWorld
- September 6 - NetBeans Day - Seattle, Washington
- September 6-7 - Sun Tech Days: Seattle
- September 12-14 - JavaZone 2006
- September 12-15 - Enterprise Java Architecture Workshop Chicago
- September 13-14 - 10th Jini Community Meeting
- September 15-17 - Pacific Northwest Software Symposium 2006
- September 22-24 - Western Canada Java Software Symposium 2006
- September 25-29 - Java Training Philippines
- September 29-October 1 - New England Software Symposium 2006: Fall Edition
- October 1-6 - JAOO
- October 3-4 - AjaxWorld Conference & Expo
- October 6-8 - Greater Atlanta Software Symposium 2006
- October 11 - NL-JUG: J-Fall
- October 13-15 - Bay Area Software Symposium 2006
- October 20-22 - Greater Toronto Software Symposium 2006
- October 23-25 - The Ajax Experience: Boston
- October 27-29 - Lone Star Software Symposium 2006: Dallas Edition
Registered users can submit event listings for the
href="http://www.java.net/events">java.net Events Page using our
href="http://today.java.net/cs/user/create/e">events submission form.
All submissions go through an editorial review before being posted to the
Archives and Subscriptions: This blog is delivered weekdays as
Today RSS feed. Also, once this page is no longer featured as the
front page of java.net it will be
archived along with other past issues in the href="http://today.java.net/today/archive/">java.net Archive.
Podcasting, mobile streaming, and more media