Thursday Dec 03, 2009

Year of the store - Java Store

As usual, the picture tells the story, for more details, read below ...

The Chinese zodiac calls 2009 as the year of the rat. I'll argue that in the tech world it has been the year of the store (Nokia, Samsung, Microsoft, Google, etc.). The Java team has recently released a new UI of the Java Store client. The interface is written in JavaFX and the backend services are running on an Enterprise GlassFish deployment. Folks that want to get a better idea of what the store does and the developer angle (value proposition) should watch this excellent video.

If you are inspired enough to install the store, you can exercise the easier install in the history of software development :-)

Sunday Nov 22, 2009

Slow context menu on Windows

Most people get a virus/cold during the winter since they spend more time indoors interacting with each other. One could validate this fact by doing a study where introverted folks are compared with the ones that are more social. Anyway, during the cold (relatively since I live in California) season I got a case "slow context menu" any time I right-mouse-click in a Windows folder. My computer has been socialized with a bunch of 3rd party software, in addition to its native Vista OS. The kind of software I've installed tends to be geeky: Visual Studio.NET, NetBeans, Eclipse, SmartSVN, cygwin, Filezilla, Java, Mercurial, SQL Server, RealVNC, etc. So which software has been causing me the ... ailment. 

At first I searched the registry for "contextmenu". I found lots of entries and gave up after inspecting about a dozen. The internet came to rescue, once again. I found a great utility from the folks at NirSoft. Their utility (ShellExView) helped me to rapidly analyze the shell extensions on my system and I started to turn off the ones which did not come from Microsoft. I rapidly found the cause: SmartSVN (I've been using SVN for zembly and the Java Store). Once I've disabled the extension name every started to work fine (pop-up menus are snappy once again). I'll have to default to the client that NetBeans installs.

Many thanks for the folks at Nir Sofer for making the software available for free.

Monday Nov 16, 2009

Java Store application cleanup

I assume that most of the people in the Java community have already noticed that the Java team at Sun has released a beta version of the Java Store. Lots of details about the launch can be read here. If you are a consumer that uses the store, you have several options of installing and uninstalling the applications that you've installed from the store. I'll focus on the more obscure ways of uninstalling apps on Windows:

  • end user - launch the store, open the My Apps menu and uninstall at will
  • advanced user - launch the Start | Control Panel | Programs | Uninstall a program | look for the application by name, select it and choose Uninstall from the menu of the Windows application
  • developer - Open the Java Control Panel (Start | Control Panel | Choose Classic View | Java | General | Settings; here you either choose to delete all files or follow the path (e.g. C:\\Users\\<username>\\AppData\\LocalLow\\Sun\\Java\\Deployment\\cache) to where the apps are installed and give it your best shot. I really don't recommend doing this
  • hacker - javaws -uninstall <jnlp app name>; note that if you just call javaws -uninstall it will uninstall all Java Web Start apps from your system

Monday Nov 02, 2009

Java database application performance

Web enabled database applications is one my favorite old pastime. I've built tools for this usecase. There are many ingredients that go into making a technology decision as you are building a site and the choice of database (assuming that you have that choice). For convenience, many folks use PHP & MySQL on the front end since they is part of the LAMP stack. Others choose JavaServer Faces since it is already part of the Java EE standard and provides a rich component set as well as the ability to easily bind to data sources. No matter what choice you make, one will have to deal with the performance considerations as they build their tiered application.

A good opportunity to tune your performance skills will be available Nov 5th during this webinar. Mark is an expert and you'll be able to learn directly from the source (author of the Connector/J driver).

Wednesday Oct 21, 2009


The NetBeans team (Tomas, Jirka & all) has just released version 1.2 of the VisualVM, Java profiling and troubleshooting tool. A bunch of good stuff in this release:

  • Sampling CRU and memory profiler
  • Redesigned charts with dynamic tooltips (my favorite feature by far)
  • Enhanced support for jstatd connections

I've already had a version the visualVM that came with JDK 6 update 16 (look in <JAVA_INSTALL_DIR>/bin/ for jvisualvm executable), however these new improvements made it worthwhile to install the stand alone version as well.

Thursday Oct 01, 2009

G2 gets close but falls short

I just purchased a G2 phone from the local T-Mobile store. Naturally I am immediately inclined to compare with my 2nd gen iPhone. Since G2 is a also touch only phone, it gives my an opportunity to conduct a fare comparison. Here are my first impressions:

  • Craftsmanship - great; better than my iPhone as far as I can tell.
  • Screen is awesome (incredibly sharp). Resolution is 320x480, same as the iPhone
  • Lightweight, yet not slippery; advantage G2.
  • Intuitive to use, until you get to the browser functions, where you have to employ the "Menu" button to navigate to other URLs; advantage iPhone ... by a mile.
  • The software keyboard is giving me a hard time. I consistently fail to use space bar and backspace. I am not sure if this is an issue with the touch screen Perhaps in time I'll get better.
  • Finding and installing apps, was very easy and I was not asked to add any credentials. I downloaded a free demo Air Hockey application. Given that I have not spent a lot of time in this area yet, I'll call it even.
  • Dialer (this is a phone after all); not as sleek and integrated with visual voice mail as the iPhone.
  • Pleasant surprises:
    • Once I logged in during the setup, my contacts were populated with my gmail contacts data
ToDo: compare the two development environments, battery life, etc

Java at Oracle Open World

Oracle Open World is approaching fast and the Java team is signed up to present a few sessions and give a few demos. There are a few new highlights since Java One (June '09). First of all the Java Store, while still in beta, is completely redesigned. Second the Authoring Tool for JavaFX seems to be ready for the Early Access program. You'll also see JavaFX on a few handheld devices, also on a TV.

If you end up attending the Oracle Develop portion of the conference, I highly recommend the "Intro to JavaFX ..." session by Richard Bair and Stuart Marks. You'll get to meet the cool folks that are building this extension of the platform, get some details on the upcoming release of the platform, the obligatory demos, etc.

Monday Sep 14, 2009

Java Store and license management

The Java Store that was previewed during Java One earlier this year is getting ready to release support for paid applications. Developers who are getting ready to publish apps to the store should be aware of the license rights management facility. Here are the requirements in a nutshell:

  • Is transparent to users
  • Ensures users stay within their usage rights
  • Ensures that simple script based attacks to remove the rights management code aren't feasible
  • Eliminates the need to have an online connection when the application is used
Here is some sample code on how to use license management in your application:[Read More]

Duke's gallery

If you are looking for Java's mascot - Duke art work, you can now find it here. It is stored on the same infrastructure ( that powers many other open source projects.

Tuesday Sep 01, 2009

Javadoc meets wikipedia

Many of you are already familiar with and These are two sites where Javadoc meets web 2.0 and provide a participatory developer resource. What makes wikipedia great is the community of subject matter experts that share with the rest of us their wisdom and knowledge. So why should not be the case for developers? DocWeb brings a new dimension by introducing translations into the Javadoc realm. Of course, this has the opportunity to build a larger more diverse Java developer community.

Wednesday Aug 05, 2009

JavaFX and the music world

My friends are well aware that I am not a music aficionado. I use music to relax and as background for the times when I am deep thought (a dangerous past time :-)). In the past (think college) I've been interested in how music is digitized and the physics of waves.

In last few month I was exposed to a new music medium - the music console build by a Indaba. Beyond music, the interesting part for me has been the fact that the new version of the console is built using JavaFX.

Using the console blew me away. I had no idea that there are that many talented people willing to experiment with music and technology. Just a huge opportunity for creativity, a place for artists and geeks.

Monday Jul 27, 2009

JavaFX 1.2 now part of the "All" distro of NetBeans (6.7.1)

NetBeans just released a minor version update (6.7.1) which includes support for JavaFX 1.2. Developers will be pleased that the JavaFX plugin is now included in the "All" distro of NetBeans, in addition to having its own distro. This is the most (over 50%) downloaded NetBeans distro and will enable all the Java and web developers to experience JavaFX in the confort of their favorite IDE :-).

Friday Jul 24, 2009

Eclipse plugin for JavaFX is on the move

We are in the process of moving the Eclipse plugin for JavaFX, from to a more proper place - Eclipse foundation. Developers used to find the plugin at the kenai url, however the download is now available for install in a cleaner way. The process is still a little clunky, however once the plugin becomes an Eclipse project, one would be able to get the plugin through the usual channel, the update center.

Before you can get started with the plugin you'll have to point it to the location of the JavaFX SDK on your computer. Use the preferences (Window | Preferences |  Java | Build Path ...) dialog to set the JAVAFX_HOME varialble. See the screen shot below for more details. In my case the JavaFX SDK has been bundled with NetBeans. No big deal, Eclipse will be able to use this instance.

Thursday Jul 16, 2009

Java and the Centaur

Nowadays there is a lot of hype about Netbooks. I've seen several projection from our marketing folks talking about the potential growth. I finally gave up and decided to find out for myself if the Netbooks are worth ones time. I am mostly interested how Java (SE) fares on these hybrid devices. Given that the netbooks are small notebooks that exibit many of features and behaviours if a smart phone, I'll call them personal centaurs

[Read More]

Tuesday Jun 30, 2009

Build JavaFX viral application with zembly

Building Facebook applications is not trivial. Most of the content is build in PHP/JavaScript and the challenge is to find hosting for your app. Scalability is another issue once the application becomes viral. There is also the issue of ease of deployment of an app once you build it in one of the traditional development environments.

zembly provides an answer to many of the issues described above. Chris put togher a quick guide on how to deploy JavaFX web applications as zembly widgets. The next step would be to show how to produce a Facebook application (I'll leave that as an exercise to the reader ... until my next blog). Below I am reproducing Chris' blog with minor changes.

Web widgetizing a JavaFX application

\* Using a JavaFX applet in a zembly widget. This approach allows zembly to provide the seamless hosting of the widget and development of a server side mashup (a data service in zembly), while JavaFX provides the rich graphics (JavaScript would be used to communicating with the JavaFX runtime). Embedded a JavaFX applet can be done for both HTML widgets as well as widgets used within application types such as Facebook. There are several steps to use JavaFx in a zembly widget (The wiki contains more information about using JavaFX from zembly) :

         1. Upload the jar file containing the JavaFX code as a widget resource.

         2. In the HTML editor, add a script tag to reference the JavaFX JavaScript runtime.

            <script src=""></script>

         3. In the HTML editor, add another script tag to setup the JavaFX applet. The ${res(’Calculator.jar’)} substitution variable is obtained using the add to editor link from the widget resources panel. This variable ensure the URL link is resolved appropriately throughout the widget lifecycle.

            <script type="text/javascript">



                        archive: "${res('Calculator.jar')}",

                        width: 221,

                        height: 249,

                        code: "calculator.Main",

                        id: "appl"




Consuming zembly services in a Java of JavaFX application

\* Consuming data services (see the growing list of public Web APIs) available from zembly in a JavaFX application (running outside zembly). The zembly platform provides an open source client library which allows secure invocation of data services outside zembly. The client library has language bindings for Java and JavaFX. The wiki contains details on invoking data services outside zembly.

Thursday Jun 25, 2009

Contributing to OpenJDK

There is no secret that the Java community would like talented developers around the world to contribute their expertise to the OpenJDK project. There are many ways to contribute and not all of them have to include writing code. Though, I suspect that most of the folks are interested in scratching their itch (read - fix an annoying bug or adding their favorite lang feature). In my case I want to introduce #ifdef in Java (I still miss that from my days programming in C).

With that in mind, I decided to try to become an OpenJDK contributor and see where the community will guide me, based on expertise and skill set.

My enthusiasm was spoiled upon reading the contribution process. Having to fax the SCA is rooted in the 20th century. I pulled the sources from the repository without much fuss and I was pleasantly surprised by how fast is Mercurial. The documentation advises you to find a sponsor. Read ahead, since it seems that a sponsor is needed just for the basic setup :-).

Building OpenJDK (on Windows) should a lot simpler. The instructions on the project website are generally clear, however I could not find easily any info how to build the sources. I googled the topic and found some instructions which made me cringe. I have some of the software requirements other than cygwin. The rest seems very archaic. 

Once I have more time, I'll get back to the build process and I hope to come up with some suggestions on how to improve the process. Perhaps that will be a form of contribution in itself!

Monday Jun 15, 2009

Subversion support in NetBeans

I have not been into the code in the last couple of month, however I recently needed to look at the performance of a JavaFX application written by a 3rd party. I am using a new Windows notebook and I had the JavaFX development environment (NetBeans 6.5.1 + JavaFX SDK) setup, however the project had the sources in an subversion repository and I did not have it installed. Now onto the interesting part. As I used NetBeans in trying to connect to the SVN repository, the IDE prompted me to facilitate the installation of SVN for Windows. Sweet! I was up and running in no time. I guess this is one of the core the value proposition of IDEs - easy of use, and NetBeans delivered. 

On a related note, I am using the VisualVM (look for jvisualvm in your JDK install path) tool that now ships with the JDK, to profile and troubleshoot the 3rd party app. Some of you may know that the VisualVM is based on the NetBeans platform and offers a plugable model for building serviceability tooling for the Java platform. I hope that John's team will shortly port the Thread Scheduling Visualizer as a VisualVM extension.

Thursday May 28, 2009

JVM Language Summit

Brian Goetz and the VM folks are doing it again - the 2009 JVM Language Summit. Come share your programming language expertise with industry experts and the JVM crew. There will be a number of traditional talks as well as time to interact with subject mater experts in informal settings.

Sept 16-18 (Sun campus in Santa Clara, CA)

Friday May 22, 2009

Java for Business

Java One is around the corner and many times developers and analysts ask us how we make money with Java. In Jonathan's blog you get a glimpse of how we leverage the ubiquity of Java on the Windows desktops to sell distributions services. There is also licensing and middleware/hardware enablement via world class performance of our VM. One of the less known programs that enables us to monetize Java in the enterprise is Java for Business. Lot's of details on the website, however if you don't have the time, here is the offering in a nutshell:
  • A subscription service offering that provides more control for customers that depend on our software while developing a compelling partnership/relationship between Sun's key customers and Sun's Java experts
  • A replacement and enhancement for Java Multi-Platform Support offering
  • A framework to offer a wide range of requested services and features to our customers
    • Porting, tuning, custom work, special builds, emergency fixes, long-term support, etc.
    • Desktop, asset management, etc.

Sunday May 17, 2009

Ultimate cloud or crazy idea

Listening to Leo Laporte on the way to work today, I learned about Wolfram Alpha - computational knowledge engine. The concept is fascinating and I've been playing entering all kinds of nouns, expressions, verbs, etc. The results are amazing. It would be very interesting to see if the technologies that are being used to render the results evolve to include, JavaFX, Flash or the like.

 I'd also love to learn about the architecture of the (computational) service. I know that they are using MySQL as their database, however I have no data on their data center. It will be interesting to see if this research influences the future direction of Google.

Monday May 04, 2009

JavaFX IRC channel

If you are an IRC user and looking to get "idle", get tips, news, etc about JavaFX, please join the following unofficial channel: irc://

If you are not using chatzill, please join the ## javafx channel on freenode. See you there. 

Sunday May 03, 2009

Best buying experience ever

Fri night I helped a friend buy a new notebook, at the Apple store in the Hillsdale Mall. It turned out to the best buying experience ever. The guy who helped us - Chris, was awesome. Professional, courteous, knowledgeable, friendly, helpful, he presented options, provided clarifications, mentioned discounts, offered to tutor (my friend is a Mac newbie) while we were waiting for the memory upgrade. In a nutshell, if I would have my own business right now, I'd go back to the Apple store and offer Chris a job.

My friend ended up buying exactly what we came for: 13" MacBook, 24 GHz, 4 GB RAM, MobileMe subscription, a couple of other accessories.

Tuesday Apr 28, 2009

Drag to install on Macs

Apple just released a developer preview of Java based on Java 6 u13. Drag to install is only possible in conjunction with Safari 4 beta and appropriate setting in the Java Preferences console. You'll need ADC membership for the VM bit. Safari is publicly available. 

[Read More]

Friday Apr 24, 2009

SDK 3.0 for mobile Java developers

Craig Gering's team recently released the Java ME SDK 3.0. The bundle includes the Java Wireless Toolkit 2.5.2 and JavaToolkit 1.0 for CDC. The tooling is predictable (in a good way): emulator (Windows only for now) and utilities for rapid application development using CLDC/MIDP, CDC and BD-J. In addition you also get LWUIT support. This is cool, especially since I've seen very rich UI on HTC phones at the MWC in Barcelona earlier this year.

The SDK will be complemented later on this summer by the release of Java FX 1.2. The team is shooting for Java One in June. I am looking forward to seeing on devices on the show floor.

Monday Apr 20, 2009

Tempora mutantur, nos et mutamur in illis

Change is inevitable. The question is not how to cope with change, but how to embrace it, anticipate the next move and opportunity. Folks working in the computer industry are likely ahead of the curve, since changes in the technology are constant.



« June 2016