Skip to main content

QuickTime Java

Posted by daniel on January 24, 2005 at 11:16 AM EST

Developer Notebook fills long-standing void

QuickTime Java seemed like a great solution to the gaps in Java's media offerings. It was a somewhat Java-like wrapper on the QuickTime APIs which ran on Windows and on Mac. The documentation tended to be lacking, but at one point there was a pretty cool demo application available online and a book by Bill Stewart and Tom Maremaa which detailed every nook and cranny of the API.

I thought the QTJ API was too C-like until I spent some time with the JOGL APIs. JOGL gives Java developers a much needed wrapper to the underlying OpenGL APIs and makes no pretense that it is anything other than a very thin wrapper. There are cool things you can do with JOGL, but suddenly I again see the benefits of exploring higher level APIs like QTJ.

Fortunately, the timing is perfect. Chris Adamson has just written QuickTime for Java: A Developer's Notebook. Of course, I'm biased because Chris is the associate editor for java.net and a friend - but this is a good book to have. This isn't a walk through the APIs, this is a sequence of cool things you can do. You learn to play and edit movies, capture audio and video, and to add effects and generally play around.

Chris and I met a couple of years ago at the first O'Reilly Mac OS X Conference where we were both speakers. Neither of us worked for O'Reilly then. In fact, we each spent some time speaking to the current editor of ONJava about writing some articles for the site. I later became editor of ONJava.com and have been happy that for the past six months or so Chris has taken over that role.

I've seen him do a bunch of presentations on QTJ - it amazes me what he is able to do from Java with the help of QuickTime. The reaction has not always been good. Some audiences were receptive until they found out the code was written in Java (I'm still not sure why). In any case, thanks Chris for sharing some of your tricks and techniques with us in your Developer's Notebook.


David Walend writes "It's yak shaving when the people you work for have no hope of fathoming what you're doing. Sharpening an axe is fine; someone asked you to chop down trees, so explaining that you need a good sharp axe is easy. When they catch you shaving the yak, they get mad and you get embarrassed. Yak shaving is something to avoid, and something I think I'm wandering towards." In today's Weblogs he asks serious technical questions about XML-database subsystems after musing on whether he is Sharpening the Axe or Shaving the Yaks?

In Certification or Indoctrination? Depends on You!, Andreas Schaeffer writes " John Reynold's Blog discusses the question if the Java exams are helping you to learn Java or help the provider to indoctrinate their (marketing) philosophy." He looks back at what he can conclude having passed the Microsoft Certified Software Engineer, some Microsoft beta exams as well as the Java Programmer and Developer exams.

In Blarg #12: "Copywright question" Jayson Falkner writes that he is "approaching you with one question in my mind bothering my conscience. I 'd love to receive your comment on my question as being the writer of the book dealing with Java Servlets and JSP technologies. You and Kevin have written the book, so therefore for you guys the whole story."


In Also in Java Today , the new J2SE 5.0 threading model is not available to J2ME applications. In the Wireless Core Tech Tip Understanding MIDP System Threads, Eric Giguere covers the use of system threads for J2ME. "A system thread is any thread not started and managed by an application. In a MIDP environment, system threads are created by the application management software (AMS) that controls MIDlet execution. Each active application has at least one system thread and zero or more application threads."

In Software Infrastructure Bottlenecks in J2EE Deepak Goel shows that it is possible for an application server, with its many duties (data persistence, object pooling, request handling, etc.) and the synchronization of all of them, can itself become a performance bottleneck. He shows statistics of what it looks like when systems become bogged down in this way and discovers that depending on the situation, the best way out might be a cluster on the same box and, if not, then a cluster across multiple new boxes.


In Projects and Communities, the NetBeans community announces the Early Access release 2 of the NetBeans IDE 4.1 with over 15 new modules for developing J2EE 1.4 applications including new support for EJBs and Web Services.

The Java Tools Community project Mocquer takes "mock object" unit testing and development to a new level. Some tools auto-generate mock objecs, but can only do so from interfaces. By using the Dunamis project, Mocquer is able to create mock objects for classes too.


NetSQL adds to the Mustang wish list in today's Forums. He suggests we "break up big rt.jar into smaler ones, so that each can move at a different speed."

MGrev would like to Enhance ButtonGroup Somewhat . "BG is a simple way to group toggle buttons. Though it could with simple means be made better 1) Add a vararg constructor: public ButtonGroup(AbstractButton... buttons) 2) Make it possible to listen on the button group for changes. 3) Add an 'initially selected' constructor."


In today's java.net News Headlines :

Registered users can submit news items for the java.net News Page using our news submission form. All submissions go through an editorial review before being posted to the site. You can also subscribe to thejava.net News RSS feed.


Current and upcoming Java Events :

Registered users can submit event listings for the java.net Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the Java 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 java.net Archive.

Developer Notebook fills long-standing void