We have an early Halloween treat from the WidgetFX team… a new software release! The 1.2.4 version of WidgetFX includes some new functionality and fixes a number of issues that our user community has requested.
The SlideShow widget was completely rewritten from scratch for this release. It makes use of the pre-release JFXtras XShelf component for transitions and paging forward and back. Simply click on the side images to scroll forwards and backwards through your library.
Here is a picture of the new SlideShow widget in action, paging through a set of Halloween pictures (courtesy of Keith Combs):
Happy Halloween from the WidgetFX Team!
If you are enough of an Anime buff to know which series these pictures came from, be sure to leave a comment below!
Japanese WidgetFX Article
The link that gets created to restart WidgetFX now picks up the correct JVM version on 64-bit systems and even handles paths properly for non-US versions of Windows. This is very important for our friends outsides the US, such as the growing Japanese WidgetFX community. As an example, check out this translated Japanese article in @IT by long-time WidgetFX developer, Hideki Kobayashi (he is also responsible for the Japanese location of our website).
If you have trouble running WidgetFX on a 64-bit system, make sure you have the 32-bit JVM installed on your machine. This can be installed side-by-side with a 64-bit JVM, and is required for JavaFX applications to run.
Our application signing certificate expired, producing warnings upon launch of WidgetFX. We have generated a new certificate, which should be good for another year.
If you noticed any problems with launching WidgetFX this week, please try again. We ran into a Webstart bug where it did not correctly update the jar file after the certificate upgrade causing a verification error on start-up. We were able to fix this by doing nothing but revving the version (missing some great opportunities for bad puns on the intermediate 1.2.3 version number).
We are always fixing small bugs or issues as they come up. One in particular was an infinite loop during start-up caused by some specific network settings.
If you notice any issues with WidgetFX, let us know so we can make it better!
I am pleased to announce the winners of the WidgetFX Developer’s Contest. There were lots of great entries (22 in total), which made this a very hard decision. You can browse the full set of entries yourself on the WidgetFX Library page:
http://widgetfx.org/portal/library
To try any of the contest entries below, simply click on the image which will install/open WidgetFX and add the widget to your dock.
In first place is Pär Dahlberg with his ScreenshotFX widget. Pär definitely went above and beyond in all respects, entering a full-blown application for taking screen captures and then editing them in a pop-up window. Some of the cool features in his application include:
Pär has a great blog on JavaFX, WidgetFX, and other topics of interest, so make sure to check out his contest winning speech.
Second place went to Yannick Van Godtsenhoven for his RadioFX Widget. In terms of visual design and widget polish, Yannick was head-and-shoulders above the competition.
He built a simple, yet functional widget that streams radio over the internet right to your WidgetFX dock. No more reaching for a web browser to catch your favorite Belgium tunes on StuBru!
I am definitely looking forward to more great creations from Yannick!
Finally, third place went to Larry Dickson for his Infix WeatherWidget. Besides his Weather widget, he also submitted 3 other widgets including a Clock, Calendar, and G-Mail widget, although his original creation was still the judges’ favorite.
By the way, Larry submitted this widget before the start of the contest, which was perfectly valid. Similarly, if you submit a widget anytime between now and the start of our next contest you will automatically be entered to win!
Congratulations to all of our winners!!! I have already sent them their prizes, which were contributed through a generous donation from my publisher, Apress.
Tomorrow is the last day for the WidgetFX Contest! We don’t have as grand of a finish line as IRONMAN in Germany, but I am sure there will be some excitement as we get down to the last couple hours.
It is a little too late to start a new Widget from scratch, but still plenty of time to wrap an existing JavaFX application as a Widget and submit it. (By the way, if you have trouble uploading a widget, drop an e-mail on the WidgetFX Users List.)
Best of luck to all the WidgetFX Contest Entrants!
With only 12 days left in the WidgetFX contest, there are a bunch of new entrants. You can see them all on the Widget Library page: http://widgetfx.org/portal/library
This includes Till Balendat’s TwitterFX Widget:
Takaaki Nakamura’s Bookmark and ColorPalet Widgets:
Henry Zhang’s Pac-Man Widget:
And also 4! widgets submitted by Larry Dickson:
Just as a reminder, here are the judging criteria:
(Also found on the contest details page: http://widgetfx.org/portal/contest)
Good luck with the contest, and thanks for supporting WidgetFX!
Last night I presented at the SDForum Java SIG to a very engaged and enthusiastic crowd. This was the longest presentation to date, but the audience was great, and even stayed afterwards to ask questions. Also, Rich Rein was an outstanding host, inviting us out to drink beers until midnight after the event (I hope his wife wasn’t upset!)
This is my last presentation gig until Devoxx at the end of the year, but I was able to get a great screencast recording of the session, which you can watch in full resolution on blip.tv:
Note: The end of the presentation got cut off due to a technical glitch in Camtasia, but to their credit it recovered the bulk of the recording on restart.
You can also browse the slide decks at your own pace in PDF format:
Part A (JFXtras): SuperchargingWithJFXtras-SDForum
Part B (WidgetFX): SuperchargingWithWidgetFX-SDForum
I hope you enjoy the video and slides!
I am pleased to announce the 1.2 release of the WidgetFX project. This brings the project up to speed with the latest JavaFX 1.2 release, and includes many bugfixes and improvements to the framework.
I want to thank all the widget authors who made an extra effort to port their widgets during the beta period so they would be available from day 1 on the new version.
So what are you running in your dock?
Here is a list of the major changes in this release:
You too can be a widget author and win some free prizes in our widget development contest. The deadline is July 31st with a grand prize of a year’s worth of free books donated by my publisher, Apress.
WidgetFX Developer Contest
Happy Widget Hacking!
We are proud to announce the 1.2 beta release of the WidgetFX framework.
Here are some of the new and noteworthy features and changes:
We will be adding more goodness before the official release, but wanted to get the major features implemented that would have API impacts on widget authors. Any changes from this point will be API compatible with the final 1.2 release.
The beta version of the WidgetFX dock can be launched via the following URL:http://widgetfx.org/beta/launch.jnlp
IMPORTANT: If you are an existing WidgetFX user, please delete your widget configuration prior to launching the new dock. This will ensure that the 1.2 versions of the built-in widgets will be loaded. Your widget configuration directory is under $USER_HOME/.WidgetFX.
We will release the final WidgetFX 1.2 version at 11:59PM PST on June 28th. If you have widgets that are available to the general public, please upgrade and test them in advance of this date, and push your 1.2 compatible widget out at approximately this time. This is required, because the 1.2 release is not binary compatible with 1.1… *sigh*
So, you have a Widget that you would like to upgrade to 1.2 and don’t know where to start… Here are the basics:
1. Upgrade to the latest beta version of the SDK.You can pick up the beta SDK here: http://code.google.com/p/widgetfx/downloads/list
The SDK is setup to automatically launch the widget runner against the beta URL if you test your widget by running it as a Web Start application. You can also use the following URL to directly invoke the beta widget runner:http://widgetfx.org/beta/runner.jnlp?arg=http://url/to/your/widget.jnlp
In addition, if you use any JFXtras components in your project, make sure that you use the 0.5 beta JFXtras version that comes with the SDK.
2. Modify your widget to use the new content sequence.The Widget base class now extends Panel rather than Skin. This was necessary to take advantage of layouts in JavaFX 1.2, but introduced a small API change. As an example, if you had the following code:
Widget { ... skin: Skin { scene: Group { content: xxx } } }
This becomes:
Widget { ... content: xxx }
Pretty nice, eh?
If you want to get adventurous, check out the Javafxdoc for Panel and make use of the layout features to improve your Widget code.
3. Upgrade the rest of your code to be JavaFX 1.2 compatible.This is beyond the scope of this article, but I happen to know an excellent migration guide: http://steveonjava.com/2009/05/31/javafx-1-2-top-10/
4. Sign your widget.If your widget invokes any operations that require access to resources outside the sandbox, you will need to sign it. The easiest way to do this is to self-sign your widget, which the javafxpackager will automatically take care of for you. The disadvantage is that since your widget can not be verified, you will get the mean yellow warning box:
If you put a little more effort in and sign up for a free trusted certificate service, such as Thawte Freemail, you can get a friendly blue information box instead (as shown at the top of this post).
Here are some very good instructions on how to sign your code using Thawte Freemail:http://www.dallaway.com/acad/webstart/
Good luck developing on the WidgetFX 1.2 beta release, and don’t forget to enter the WidgetFX Developer Contest!
I had the unique opportunity to present 3 different sessions, plus assist with a University Session at JavaOne this year, and had a blast doing all of it.
I put this blog post together as a reference for anyone who is interested in JavaFX, WidgetFX, and/or Piccolo2D and wants to learn more. Hopefully you will find it valuable!
Jim Weaver invited the entire Pro JavaFX author team to help out with presenting content for his Monday morning JavaFX University Session. Presenting at a University Session was an entirely new experience for me, because I have never attended one myself. I have to say that the format really lends itself to digging in much deeper on a technology than normal technical sessions can accommodate. Even after 3.5 hours, we still had not covered all our material, but the JavaOne University slides are a great reference!
As an example of mobile technology, we passed around an XPERIA X1 running the DrawJFX example from our book to give everyone a chance to try it out. Here is a photo of the collage the class drew as a collective:
JavaFX University Session DrawJavaFX Collage
The first technical session was with Jim Weaver, who is a seasoned presenter. Before we even got started with the session he already had the audience enthralled with his intro music! Rather than getting in the details, I encourage you to read Ed Ort’s excellent article on the Pro JavaFX session.
Pro JavaFX Book Signing (left-to-right: Weiqi, Dean, Steve, and Jim)
The highlight of the week came right after this session when Neal Gafter dropped in on our book plate signing. To my relief he was not there to sue me for defacing his book cover in the Pro JavaFX Platform slides, but instead dropped by for a chat with the Pro JavaFX authors.
I helped get the Piccolo2D project off the ground over a year ago with the support of Ben Bederson from UMD and the help of Michael Heuer, Sam Reid, Marcus Rohrmoser, and Willis Morse. While most of the project members couldn’t make it out for JavaOne this year, Michael Heuer made the trip, and both of us co-presented an evening BOF on Zooming User Interfaces.
If you are interested to learn more about Zooming User Interfaces, the Piccolo2D Presentation Slides are a great reference (and testament to all of Michael’s hard fought research). This was also a great chance to show off the MangaDesu Manga Viewer application that I wrote a little over a year ago (you may see this in the Java Store sometime soon):
Java Manga Viewer with a Zooming User Interface
The WidgetFX session was probably the most fun of the entire week.
The session had a great turnout, especially for the last day of JavaOne.
WidgetFX Session in Progress
As promised, we demonstrated Henry Zhang’s Pacman widget to the audience, which he put together in response to Jim’s challenge. We tried to have a little fun at the expense of the audience, but it quickly backfired when our random volunteer from the audience, Dan, easily bested us at our own game.
However, we struck back with a vengeance by having our Nabaztag rabbit (who was conspicuously sitting on the stage the entire time) trash-talk Carl of the Java Posse about his new Tesla.
Josh Interviewing Carl from the Java Posse
Carl took it in good humor, and we unveiled the Nabaztag widget that we were using to control the wifi-enabled rabbit. Besides being a great ambient notifier, Josh also choreographed a dance sequence to the music of the Bee Gees:
Nabaztag Bunny Dancing to the Bee Gees
We ended the session with the announcement of a Widget Development Contest with a grand prize of a year of books!
You can browse the full photostream from the event on Flickr, and download the slide deck here.
This was definitely a new JavaOne experience, because rather than being in the audience and heckling the presenter’s mistakes, I was the one on stage being scrutinized… Fortunately, I had great co-presenters (Jim, Josh, and Michael) and was so busy preparing that I didn’t have time to panic.
I hope you enjoyed this journey through my presentations, and maybe I will see you in the presenter’s lounge at a future JavaOne conference!
I just got word back yesterday that the WidgetFX session for JavaOne was approved! Josh Marinacci and I will be hosting the definitive session on desktop widgets for all you JavaFX fans.
The session is entitled "Getting Started with WidgetFX: Open-Source Widget Desktop Platform with JavaFXTM Technology", and will cover how to:
If you haven't already signed up for JavaOne and are a JUG member, make sure to take advantage of the $100 discount mentioned on Van Riper's blog.
See you at JavaOne!
We migrated the WidgetFX instance to a new server that has a number of benefits:
Depending upon how fast the DNS changes propagated, you may have noticed some downtime if you launched the dock in the past 24 hours while we worked out some of the kinks on the new server.
In particular, if your dock launches with an error of "<jnlp>codebase has an invalid value: $$codebase" then you might have a bad jnlp file wedged in your cache. It will eventually unwedge itself (jnlp caching is a black art), but you can fix it immediately by doing the following:
Open the Java Control Panel and click on "Settings...":
The next time you load the dock it will get a clean copy of the jnlp file and jars. (Good housekeeping anyway, because a large jnlp cache can cause performance problems.)