X

Topics and trends related to the Java ecosystem with occasional random rants.

Build JDK 10 for your Raspberry Pi Right on your Device

Starting with the release of JDK 9, Oracle's list of supported hardware architecture / operating system platforms for its Java SE implementation has been trimmed.  No longer are 32-bit versions being provided, nor are binaries for the Arm architecture, including those for the wildly popular Raspberry Pi.  However, work supporting the 32-bit armhf architecture is incorporated in the OpenJDK source including that for OpenJDK 10.  So for all the Raspberry Pi / Java aficionados...

Wednesday, May 30, 2018 | Read More

OpenJDK 10 Now Includes Root CA Certificates

With the release of OpenJDK 10 on 20 March 2018, Oracle and the Java community have made good on their commitment to furnish Java releases every six months.  The JDK 11 project is well underway and the proposed schedule calls for its release on 25 September 2018, six months after the GA (General Availability) of OpenJDK 10.  Alongside this significant change in release cadence, Oracle has pledged to make its commercial implementation of OpenJDK (Java SE or the Oracle JDK) as...

Friday, March 23, 2018 | Read More

Bitcoin Mining: Six Months Later

About six months have passed since first setting up a personal Bitcoin mining rig.  As a follow up to that original post, I thought it make make sense to return to see what's transpired during this brief -- and tumultuous -- period, and to discuss adjustments made to the rig. What's Changed in the Bitcoin Universe?My Humble Bitcoin Mining Rig (version 2.0)Configuration ChangesReturn on Investment? Really? What's Changed in the Bitcoin Universe? In a word, a lot (actually that's...

Wednesday, February 28, 2018 | Read More

Help for Signing Deployment Rule Sets

Among other benefits, the Java SE Advanced offering provides customers with access to security patches for Java releases that are no longer publicly updated.  And as a result, many of these organizations have become diligent -- deservedly so -- in keeping up to date with Oracle's quarterly cadence.  If you are one of those customers who falls into this category, you may have noticed that the most recent October 2017 updates for Java 6 (6u171) and Java 7 (7u161) will no...

Thursday, December 14, 2017 | Read More

JDK9 keytool Transitions Default Keystore to PKCS12

When it comes to the JDK9 release, project jigsaw garners nearly all the attention, sucking the air out of the room and leaving very little oxygen for many other smaller but interesting enhancements. One such feature addresses the universal quest to modernize overall security and involves an improvement to the keytool utility. For approximately two decades, Java and keytool had relied on the JDK-specific JKS keystore type as its default store. As specified by JEP 229, JDK9...

Tuesday, October 24, 2017 | Read More

And Now For Something Completely Different...

To steal a phrase from Monty Python's Flying Circus, this article represents a departure from the standard fare.  Today, I'd like to discuss my foray into the Bitcoinworld, and in particular, how contributing (in an infinitesimally small but meaningful way) strengthens the decentralized Bitcoin network.  In short, I have become a Bitcoin miner.  Before going any further, let me be perfectly clear: there is no gold in them thar' hills. Unless you plan on mining on an...

Tuesday, September 5, 2017 | Read More

Mimicking Java Flight Recorder Triggers Outside Java Mission Control

As highlighted in this previous article, Java Flight Recorder triggers enable you to selectively dump detailed runtime information about your Java application when user-defined conditions are met.  In order to take advantage of this powerful feature, you must create and enable trigger rules inside the Java Mission Control client.  For one or a very small number of applications, using Java Mission Control might be acceptable, however if you need to manage a large number of...

Friday, July 28, 2017 | Read More

Using Java Flight Recorder Triggers

A good amount has been written and said about Java Flight Recorder, its integration into the Oracle Java SE Java Virtual Machine (JVM) and the very low overhead associated with enabling the framework.  It not only makes the notion of collecting detailed runtime information about a Java application in production a possibility, it makes it a reality. Many opt to place a program in Java Flight Recorder's Continuous Recording Mode.  In this state, the Java application...

Thursday, June 1, 2017 | Read More

Updates to Java Serial Communications, Raspberry Pi 3

Why not kill a few birds with one stone?  First, it was high time to finally learn how to post an article with our new blogging platform (based on Oracle Content Marketing).  Second, and this is of course relative to my little world, it would be useful to provide an update to one of my more historically read topics dealing with serial communications and Java. A recent comment to one of the Java Serial Port Communications posts mentions difficulty with using the provided RxTx...

Thursday, May 18, 2017 | Read More

Creating Custom JDK9 Runtime Images

For a brief overview of how to take advantage of a new feature in JDK9, namely the ability to create custom runtime images, please view the YouTube video that follows.  As an addendum to this video, a recently published blog explains how the creation of runtime images can be automated inside a NetBeans project.  Please Check out Automating the Creation of JDK9 Reduced Runtime Images for further edification. <p> </p&a...

Thursday, February 16, 2017 | Sun | Read More

Automating The Creation of JDK9 Reduced Runtime Images in NetBeans

With the upcoming release of JDK9, the Java SE platform will cease to exist in monolith fashion and will instead be built from the ground up as a series of modules.  This sea change will allow developers to modularize their own applications and furthermore enable them to create runtime images with only those modules that are required to run their application.  Much has been, and certainly will be, written about this massive evolution.  Today we'llfocus on the ability to...

Monday, February 13, 2017 | Sun | Read More

Java.net and Kenai.com Forges Closing, Moving to GitHub

Aside from all that eloquent prose (wink, wink), my entries have, through the years, referenced a fair amount of source code and provided downloads to some of those examples.  Having wanted to move these to a modern source code repository for a while now; an approaching event has forced the issue: namely that Oracle has announced the closing of the Java.net and Kenai.com forges on April 28, 2017.  In accordance, I've revisited a few blog entries and rehosted referenced source...

Wednesday, November 2, 2016 | Sun | Read More

Adding a Timestamp to a Signed Java RIA

As the title suggests, the focus for this article revolves around adding timestamps to signed Java Rich Internet Applications.  The related subtopics are worth mentioning up front in case the reader is interested in jumping right to one of those areas:   Example Signed (and Timestamped) RIAs What is Timestamping and Why Should I Care? How Can Code Be Signed and Timestamped? How Can you Verify That a Jar File Has Been Signed and Timestamped? How Can you Integrate Signing...

Tuesday, March 8, 2016 | Sun | Read More

The $5 Raspberry Pi

Less than a year after the introduction of the Raspberry Pi 2, the Raspberry Pi foundation has once again outdone itself with yet another landmark product launch: the Raspberry Pi Zero.                       Image taken from https://www.raspberrypi.org/blog/raspberry-pi-zero/ The Raspberry Pi Zero is truly revolutionary.  At 40% the size of the original Pi, it consumes less than half of the power, and can be configured to draw as little as 80mA. It has a faster processor than...

Monday, January 25, 2016 | Sun | Read More

Installing Trusted Certificates into a Java Keystore

As software environments continue to ratchet up security measures, the odds of having to deal with digital certificates in more than a superficial manner only increases over time.  Furthermore, platforms are not only mandating the use of certificates, they are to a greater extent shunning the self-signed variety and instead insisting upon certs that originate from a trusted authority.  When managing certificates in the Java world, the utility you're most likely to encounter...

Monday, November 16, 2015 | Sun | Read More

Using Java Flight Recorder with Compact Profiles

Like it's big brother Java SE, the Java SE-Embedded 8 platform provides support for Java Flight Recorder, an invaluable profiling and event collection framework built into the Java Runtime Environment.  However, Flight Recorder is only available with the Java SE Embedded 8 Full JRE, not with the smaller Compact Profiles.  So the question becomes, is there anything that can be done to use Java Flight Recorder with Compact Profiles? At the current time, the smaller Compact1...

Tuesday, September 8, 2015 | Sun | Read More

New for Java 9: jshell

A sampling of indices gauging computer programming language popularity (e.g. PYPL and TIBOE) shows that Java, after 20 years, still enjoys a huge following.  In general, depending upon whom and/or when you ask, Java usually comes in first or second place in these surveys.  Although it might be hard to imagine recent computer science graduates without Java exposure, one trend is evident: top universities are gravitating towards teaching "simpler" languages in lieu of Java for...

Friday, July 24, 2015 | Sun | Read More

Update to JavaFX, Sockets and Threading: Lessons Learned

Recently, a reader commented on a dated article of mine, circa 2010, entitled JavaFX, Sockets and Threading: Lessons Learned.  In it he correctly stated that, as the original content is based on the deprecated JavaFX 1.3 framework (aka JavaFX Script), he cannot test or utilize that code with the modern JavaFX API.  What follows is an update to that blog entry with code and references appropriate for the JavaFX 8 (Java SE 8 with JavaFX) platform. Overview For a more thorough...

Thursday, April 9, 2015 | Sun | Read More

Welcome Raspberry Pi 2!

Having surpassed 4 million units shipped and clearly establishing itself as a de facto reference platform, the folks at the Raspberry Pi Foundation are not resting on their laurels.  Earlier this month (February 2015), they introduced the Raspberry Pi 2 Model B: Compared to its predecessor, the Raspberry Pi B+, this newer model is packaged with a Broadcom BCM2836 SoC at 900MHz.  It is not only superior in performance to the original single core BCM2835 processor on...

Tuesday, February 17, 2015 | Sun | Read More

Managing Java Flight Recorder Enabled JVMs with SSL

One advantage Java Flight Recorder enjoys is that its event collection and profiling framework is built right into the JDK, allowing instrumented JVM instances to operate with near-zero overhead.  At arguably negligible expense, would it then make sense to consider enabling Java Flight Recorder on production applications?  We say absolutely! You can google around to search for how this framework can be configured to monitor remote JVMs, and nearly all of the...

Wednesday, January 14, 2015 | Sun | Read More

USB Device Access for Java SE and OSGi

One of the challenges in creating the content for the Java One 2014 Java SE Embedded Internet of Things Hands-on-Lab concerned interacting, via Java and OSGi, with a USB temperature sensor.   Unfortunately a USB communications API is not part of the Java SE standard (as of this post: Halloween 2014).  So the question is, how can Java/USB communication be established, and furthermore and how does this work within the OSGi framework? In looking around at some of the available...

Friday, October 31, 2014 | Sun | Read More

Java SE Embedded IoT Hands On Lab Returns for Java One 2014

After a one year hiatus, a Hands On Lab featuring Java SE for Embedded devices will return for The Java One 2014 Conference.  Entitled HOL2097 Java SE Embedded IoT Hands On Lab, students who attend this lab will: Have their own individual embedded device to gain valuable hands on experience Learn how to create Java 8 Compact Profiles using the eJDKjrecreate tool.  Students will use and deploy those Compact Profiles on their individual device. Learn about profile-aware tools...

Tuesday, August 26, 2014 | Sun | Read More

Java Serial Communications Revisited

Last touched upon in this article dated August 2011, it's high time to revisit the state of Java serial port communications options for the following reasons: As the hype around Internet of Things continues to ratchet up, serial communications are a requirement for a certain class of IoT sensors and devices. RxTx, the platform with arguably the most history, cannot be built with the recently released Java 8 JDK without some modifications. For some time now the website hosting...

Friday, June 20, 2014 | Sun | Read More

An Embedded Java 8 Lambda Expression Microbenchmark

It's been a long road, but Java 8 has finally arrived.  Much has been written and said about all the new features contained in this release, perhaps the most important of these is the introduction of Lambda Expressions.  Lambdas are now intimately integrated into the Java platform and they have the potential to aid developers in the traditionally tricky realm of parallel programming. Following closely behind, Compact Profiles promise to open up the tremendous benefits of...

Monday, March 17, 2014 | Personal | Read More

Introducing the EJDK

In lock step with the introduction of Compact Profiles, Java 8 includes a new distribution mechanism for Java SE Embedded called the EJDK.  As the potential exists to confuse the EJDK with the standard JDK (Java Development Kit), it makes sense to dedicate a few words towards highlighting how these two packages differ in form and function. The JDK The venerable Java Development Kit is the mainstay of Java developers.  It incorporates not only a standard Java Runtime Environment...

Monday, March 10, 2014 | Sun | Read More

Java SE Embedded Pricing Explained

You're probably asking yourself, "Pricing?  Really?  In a techie blog?", and I would normally agree wholeheartedly with your assessment.  But in this one instance the topic might be worthy of a few words.  There is, as the expression goes, no such thing as a free lunch.  Whether you pay for software outright, or roll your own with open source projects, a cost must be paid. Like clockwork, we regularly receive inquiries for Java embedded information that go something like this: D...

Friday, December 6, 2013 | Sun | Read More

Oracle Java Now Part of Raspberry Pi Raspian Distribution

Having sold more than 1.75 million units in its brief lifespan, there is no denying the profound impact the Raspberry Pi has had on the embedded development community.  Amid all the hoopla surrounding the recently completed Oracle OpenWorld and Java One events, one announcement that flew under the radar dealt with the fact that the Oracle JDK is now part of the Raspberry Pi Raspian distribution. This means that by default, when you download and install the latest Raspian...

Monday, October 14, 2013 | Sun | Read More

Comparing Linux/Arm JVMs Revisited

It's been about 18 months since we last compared Linux/Arm JVMs, and with the formal release of the much anticipated Java SE Embedded for Arm hard float binary, it marks a good time to revisit JVM performance.  The information and results that follow will highlight the following comparisons: Java SE-E Arm VFP (armel) vs. Arm Hard Float (armhf) Java SE-E armhf Client Compiler (c1) vs. armhf Server Compiler (c2) And last but certainly not least ... Java SE-E 7u40 armhf vs. Open...

Tuesday, September 17, 2013 | Sun | Read More

Compact Profiles Demonstrated

Following up on an article introducing compact profiles, the video that follows demonstrates how this new feature in the upcoming Java 8 release can be utilized.  The video: Describes the compact profile feature and the rationale for its creation. Shows how to use the new jrecreate utility to generate compact profiles that can be readily deployed. Demonstrates that even the smallest of profiles (less than 11MB) is robust enough to support very popular and important software...

Monday, August 12, 2013 | Sun | Read More

An Introduction to Java 8 Compact Profiles

Java SE is a very impressive platform indeed, but with all that functionality comes a large and ever increasing footprint.  It stands to reason then that one of the more frequent requests from the community has been the desire to deploy only those components required for a particular application instead of the entire Java SE runtime environment.  Referred to as subsetting, the benefits of such a concept would seem to be many: A smaller Java environment would require less...

Wednesday, July 31, 2013 | Sun | Read More

Is it armhf or armel?

Arm processors come in all makes and sizes, a certain percentage of which address a market where cost, footprint and power requirements are at a premium.  In this space, the inclusion of even a floating point unit would be considered an unnecessary luxury.  To perform floating point operations with these processors, software emulation is required. Higher-end Arm processors come bundled with additional capabilitythat enables hardware execution of floating point operations. ...

Sunday, March 17, 2013 | Sun | Read More

Source Code for JavaFX Scoreboard Now Available

For the last few years, many of the JavaFX related blog posts found here have made reference to all or parts of a Scoreboard application written in JavaFX.  For example, the entry prior to this contains a video demonstrating how this Scoreboard application can be run on an embedded device such as a Raspberry Pi and displayed on an ordinary flat screen TV. Alongside those posts, some have asked for access to the source code to this application.  I've always felt...

Thursday, February 7, 2013 | Sun | Read More

A Raspberry Pi / JavaFX Electronic Scoreboard Application

As evidenced at the recently completed JavaOne 2012 conference, community excitement towards the Raspberry Pi and its potential as a Java development and deployment platform was readily palpable.  Fast forward three months, Oracle has announced the availability of a JDK 8 (with JavaFX) for Arm Early Access Developer Preview where the reference platform for this release is none other than the Raspberry Pi. What makes this especially interesting to me is the addition of JavaFX...

Sunday, December 23, 2012 | Sun | Read More

Sprinkle Some Magik on that Java Virtual Machine

GE Energy, through its Smallworld subsidiary, has been providing geospatial software solutions to the utility and telco markets for over 20 years.  One of the fundamental building blocks of their technology is a dynamically-typed object oriented programming language called Magik.  Like Java, Magik source code is compiled down to bytecodes that run on a virtual machine -- in this case the Magik Virtual Machine. Throughout the years, GE has invested considerable...

Monday, November 5, 2012 | Sun | Read More

Raspberry Pi and Java SE: A Platform for the Masses

One of the more exciting developments in the embedded systems world has been the announcement and availability of the Raspberry Pi, a very capable computer that is no bigger than a credit card.  At $35 US, initial demand for the device was so significant, that very long back orders quickly ensued. After months of patiently waiting, mine finally arrived.  Those initial growing pains appear to have been fixed, so availability now should be much more reasonable. At a very...

Tuesday, October 9, 2012 | Personal | Read More

Java One 2012 Java SE Embedded Hands On Lab Returns!

After successful runs at Java One 2011 San Francisco and Tokyo, The Java SE Embedded Hands On Lab returns for Java One 2012.  If you're attending the Java One event in San Francisco (Sept 30 - Oct 4), please consider signing up for this session.  As an added incentive, we will be raffling off a couple of the Plug Computer devices that you'll gain experience with during this lab.  Seating is limited to 100 students, so register early. Here's an overview: This hands-on lab aims...

Monday, August 13, 2012 | Personal | Read More

Healthcare Mobile Database Synchronization Demonstration

Like many of you, I learn best by getting my hands dirty.  When confronted with the task of understanding a new set of products and technologies and figuring out how they might apply to a vertical industry like healthcare, I set out to create a demonstration.  The video that follows aims to show how the Oracle embedded software portfolio can be applied to a healthcare application.  The demonstration utilizes among others, Java SE Embedded, Berkeley DB, Apache Tomcat, Oracle...

Friday, June 22, 2012 | Sun | Read More

Take Two: Comparing JVMs on ARM/Linux

Although the intent of the previous article, entitled Comparing JVMs on ARM/Linux, was to introduce and highlight the availability of the HotSpot server compiler (referred to as c2) for Java SE-Embedded ARM v7,  it seems, based on feedback, that everyone was more interested in the OpenJDK comparisons to Java SE-E.  But there were two main concerns: The fact that the previous article compared Java SE-E 7 against OpenJDK 6 might be construed as an unlevel playing field...

Monday, March 19, 2012 | Sun | Read More

Comparing JVMs on ARM/Linux

For quite some time, Java Standard Edition releases have included both client and server bytecode compilers (referred to as c1 and c2 respectively), whereas Java SE-Embedded binaries only contained the client c1 compiler.  The rationale for excluding c2 stems from the fact that (1) eliminating optional components saves space, where in the embedded world, space is at a premium, and (2) embedded platforms were not given serious consideration for handling server-like workloads. ...

Wednesday, February 15, 2012 | Sun | Read More

Tomcat Micro Cluster

The term Micro Server has been bandied about recently as a means to provide a certain class of server functionality. As embedded systems continue their inexorable drive towards better performance, and standard hardware/software architectures become ubiquitous, the notion of using low-cost, low-power, small-footprint devices as servers becomes quite realistic.  Just as data center managers have utilized multitudes of affordable rack mount servers to provide scalability, why...

Tuesday, January 3, 2012 | Sun | Read More

Java ONE 2011 Hands on Lab for Java SE Embedded

Now that the dust has settled, sincere thanks go out to my compadres (you know who you are) for helping make The Java One 2011 Java SE Embedded Hands on Lab such a success.  In fact it was so well received, our peers in Asia are already planning on replicating the effort for JavaOne Tokyo in April 2012.  In addition to the Tokyo event,  we hope to provide future opportunities for this venue elsewhere.  In the interim, we'd seriously consider hosting this lab, albeit on a...

Monday, October 24, 2011 | Sun | Read More

Serial Port Communication for Java SE Embedded

The need to communicate with devices connected to serial ports is a common application requirement.  Falling outside the purview of the Java SE platform, serial and parallel port communication has been addressed with a project called RXTX.  (In the past, you may have known this as javacomm).  With RXTX,  Java developers access serial ports through the RXTXcomm.jar file.  Alongside this jar file, an underlying native layer must be provided to interface with the...

Friday, August 19, 2011 | Sun | Read More

Observations in Migrating from JavaFX Script to JavaFX 2.0

Observations in Migrating from JavaFX Script to JavaFX 2.0 Introduction Having been available for a few years now, there is a decent body of work written for JavaFX using the JavaFX Script language. With the general availability announcement of JavaFX 2.0 Beta, the natural question arises about converting the legacy code over to the new JavaFX 2.0 platform. This article reflects on some of the observations encountered while porting source code over fromJavaFX Script to the new...

Tuesday, June 21, 2011 | Sun | Read More

Java SE Embedded Development Made Easy

Slowly but surely this old dog (who can learn new tricks, but at a snail's pace) came to the realization that although still quite relevant, a whole generation of people prefer not to read lengthy writings, but would rather digest information in small pieces using new media formats.  Thus the rationale for the following blog... Certainly no thespian when it comes to public speaking, I will say this:  based upon my experience demonstrating Java SE on embedded devices, people...

Wednesday, June 1, 2011 | Sun | Read More

The Shackles are Off

Today marks an important milestone for JavaFX 2.0.  Prior to this date, only a select few partners had early access privilege to the technology, and for good reason.  During that early access period, the API was in a very fluid state, and from personal experience I can tell you that changes to the JavaFX 2.0 API were done almost on a build-by-build basis.  The announcement of a public beta not only makes the software available worldwide, but also signals that the JavaFX 2.0...

Thursday, May 26, 2011 | Personal | Read More

The Unofficial Java SE Embedded SDK

Developing applications for embedded platforms gets simpler all the time, thanks in part to the tremendous advances in microprocessor design and software tools.  And in particular, with the availability of Java SE compatible Virtual Machines for the popular embedded platforms, development has never been more straightforward. The real beauty behind Java SE Embedded development lies in the fact that you can use your favorite IDE (Eclipse, NetBeans, JDeveloper ...) to create,...

Tuesday, March 15, 2011 | Sun | Read More

Java SE Embedded Refreshed

As embedded processor designs continue their inexorable drive towards ever increasing capability, the natural desire to utilize more robust software platforms, previously reserved for powerful desktop computers and servers, follows suit.  Recognizing this trend, a version of the Java Standard Edition platform, called Java SE Embedded, has been developed to address this growing market.  In addition to bringing all of the benefits of the ubiquitous Java Standard Edition to the...

Thursday, December 16, 2010 | Sun | Read More

Why I like the New JavaFX

I have a vested interest in seeing the original JavaFX Script based platform prosper. As an early adopter of this technology, a good portion of my life these past few years has been spent developing, blogging and even co-authoring a book on the subject. So when the inevitable demise of JavaFX Script was formally announced, those of us intimately involved did not take it lightly. Perhaps not unlike yourselves, I’ve viewed the plans to morph JavaFX into a Java API with a bit ofsk...

Sunday, November 28, 2010 | Sun | Read More

NetBeans with Subversion, SSH and Windows

Having spent too much time wrestling with the various components required to get NetBeans to access a subversion repository via ssh, I thought it might make sense to jot down a few notes in an effort to save others from such hardships. NetBeans does have built-in support for CVS, Mercurial and Subversion, but that doesn't mean that these source code revision systems work in a turnkey fashion.  In particular, subversion, especially with Windows, does require some work. 1. To...

Friday, February 19, 2010 | Sun | Read More

JavaFX, Sockets and Threading: Lessons Learned

When contemplating how machine-dependent applications might communicate with Java/JavaFX, JNI or the Java Native Interface, having been created for just such a task, would likely be the first mechanism that comes to mind.  Although JNI works just fine thank you, a group of us ultimately decided against using it for a small project because, among others: Errors in your JNI implementation can corrupt the Java Virtual Machine in very strange ways, leading to difficult diagnosis. JN...

Wednesday, February 10, 2010 | Sun | Read More

GlassFish on a Handheld

Until now, the idea of running something akin to a Java EE application server on a small handeld device would have been greeted with ridicule.  Suddenly that notion doesn't seem so ridiculous when considering the recent technology that's been made available. In particular, the following software advances make this pipe dream more of a reality: Java Standard Edition for Embedded Devices: A series of Java virtual machines are available from Sun for many of the popular embedded...

Thursday, December 31, 2009 | Sun | Read More

Consumer Electronics: Your Utility Company's Best Friend

If you're reading this article, the chances are real good that your home is full of electronic gadgets.  Moreover many are permanently plugged into wall sockets.   Having recently purchased a P3 International P4460 Kill A Watt EZ power meter, I've been running around getting a feel for how much energy some of these common components use. For this first table, I wanted to see how much energy was being consumed by audio/visual components that were plugged into the wall, but not...

Wednesday, November 4, 2009 | Personal | Read More

Java RTS 2.2 Early Access 2 Released

Sun recently announced the availability of a second edition of its Java Real-Time System (Java RTS) version 2.2 Early Access.  In a previous blog post, many of the important new features of this release were highlighted.  But I felt compelled to jot down a few additional words, not only because there's a newer version of the software to evaluate, but because there's one interesting component that deserves a little more exposure. I spent some time today speaking with my...

Tuesday, September 8, 2009 | Sun | Read More

JavaFX Scenegraph Performance Revisited

Prior to the release of JavaFX 1.2, an earlier blog post explained how creating an application with a scenegraph containing a large number of nodes can have performance implications.  That entry was subsequently picked up by Java Lobby and recently posted here.  Partly because it was a few months old, it resulted in a rash of, shall we say, interesting comments. As one commenter pointed out, the initial results represent JavaFX performance in the 1.0/1.1 timeframe.  JavaFX 1.2...

Tuesday, August 11, 2009 | Sun | Read More

Getting the JavaFX Screen Size

In a previous post, I showed one way in which you could size the nodes in your scenegraph relative to the screen size without having to use binding, thus eliminating the potential for a bindstorm.  At the time, the suggestion was to get the screen coordiantes via a call to AWT (Advanced Windowing Toolkit) as follows: var AWTtoolkit = java.awt.Toolkit.getDefaultToolkit (); var screenSizeFromAWT = AWTtoolkit.getScreenSize (); This currently works for JavaFX Desktop deployments...

Friday, July 24, 2009 | Sun | Read More

Early Access version of Java RTS 2.2 Released

Just in time for the start of JavaOne 2009, Sun released the latest version of its real-time Java platform, Java RTS 2.2, in early access form.  New features of this release include but are not limited to: OS Platform support for Solaris 10 (x86 and Sparc - Update 5 & 6), Red Hat MRG 1.1 and  SUSE Linux Enterprise Real-Time 10 (SP2 Update 4) 64-bit support for the three operating systems mentioned above. In addition, 32-bit support continues to be supported. Faster throughput....

Wednesday, June 10, 2009 | Sun | Read More

JavaFX Book Arrives!

Since the beginning, the deadlines set forth for producing our book have been aggressive to say the least.  Ultimately, we wanted them to be physically available for sale at the JavaOne 2009 conference.  These things arrived literally hot off the press, having been flown in the opening day of the show.  This effort was not in vain; the results are in.  According to our friends at Digital Guru, JavaFX was definitely the hot topic of the week and JavaFX - Developing Rich...

Tuesday, June 9, 2009 | Sun | Read More

You Are What You Eat?

So you may ask, what effect does the food we eat have on our blood pressure?  My experience, documented below, won't likely hold up to whole lot of scientific scrutiny, but it's good enough lesson for me. A combination of poor eating habits and genetics lands me in that ever-increasing group of individuals who have high blood pressure.  At first I was what you might consider borderline hypertensive.  Being thin and active, in conjunction with my doctor, we only monitored my...

Monday, May 11, 2009 | Personal | Read More

JavaFX Book Available Online at Safari.com

Our book, entitled JavaFX: Developing Rich Internet Applications, having gone through the copyedit and proof stages, is now available online at Safari @ http://my.safaribooksonline.com/9780137013524.  Please feel free to provide feedback/comments on any aspect of the book that you've chanced to read.  We're still on schedule to have hardcopies available at the Java ONE show which will start on June 2.  If you plan on attending,please stop by the Addison-Wesley/Pearson/SMI...

Friday, May 1, 2009 | Sun | Read More

Node Count and JavaFX Performance

In a recent blog entry entitled Best Practices for JavaFX Mobile Applications (Part 2), Michael Heinrichs espouses that keeping the scenegraph as small as possible helps JavaFX applications perform optimally. Regardless what version of JavaFX you're using, this is sage advice.  Having spent some time trying to create components for a scoreboard-like application, I was concerned over the amount of CPU time being consumed by the clock component pictured directly below. You can...

Monday, April 6, 2009 | Sun | Read More

Hooray! Acrobat Reader for [Open]Solaris x86

Today truly marks a milestone in the history of Solaris for the x86/x64 platform.  One of the most ubiquitous applications, Adobe Reader (notably Acrobat), is now available on [Open]Solaris for both Sparc and x86. It's been a long time coming, one argument for the lack of Solaris x86 support till now was that [Open]Solaris didn't have the critical mass.  That's a hard one to swallow for the following reasons: There's been a Solaris Sparc version for a long time.  Solaris x86...

Tuesday, March 24, 2009 | Sun | Read More

Bindstorming

It is within our nature, even in the most infinitesimal way, to leave our mark on this world before we exit it.  I'd like to coin the following term, heretofore unseen in the JavaFX space, and submit it as my humble contribution to the human collective: bindstorm \\'bïnd•storm\\ (noun): condition where a multitude of JavaFX bind recalculations severely hampers interactive performance Yeah, I know, using the word you wish to define inside its definition is bad, but there is...

Thursday, March 19, 2009 | Sun | Read More

Registering Multiple Actions (or Handlers) in JavaFX

Java developers, especially those performing any type of GUI work, will ultimately encounter Java's event-driven programming paradigm.  In short, if programmers want to act upon some kind of event they bundle up a chunk of code into a Java method, typically referred to as a handler, and register the handler with that event.  Whenever that event occurs, the handler code will automatically be executed. JavaFX provides a similar mechanism.  For a straightforward example, the code...

Tuesday, February 24, 2009 | Sun | Read More

JavaFX Book Coming to a Theatre Near You

Despite the considerable attention JavaFX has garnered, publications (i.e. books) that discuss JavaFX in any detail are few and far between, and anything that has been published, as good as it may have been, is unfortunately hopelessly out of date.  The reality is that up until recently, the JavaFX platform has been a moving target.  With the advent of JavaFX 1.1 however, the platform has stabilized to the point where you should begin to see legitimate books appearing on the...

Tuesday, February 17, 2009 | Sun | Read More

Overhead in Increasing the Solaris System Clock Rate

In a previous entry entitled Real-Time Java and High Resolution Timers, we discussed how Sun's Java Real-Time System requires access to timers with a resolution greater than the default 10ms to do anything really interesting.   It was also stated that most modern processors have an APIC or Advanced Programmable Interrupt Controller which supports much finer-grained clock tick rates. Unfortunately there are many instances where a system does indeed contain an APIC, but it is...

Wednesday, January 14, 2009 | Sun | Read More

Why JavaFX is Relevant

This week marks the formal release of JavaFX 1.0.  During the interval between the early marketing blitz and now, we've heard a lot from our friends in the press and the blogosphere, and in many instances what they had to say was not very pretty.  Some think the Rich Internet Application platform battle lines are already drawn between Adobe and Microsoft, and dismiss Sun as having arrived too late to the party.  Others opine that JavaFX's underlying Java platform is so...

Thursday, December 4, 2008 | Sun | Read More

OpenSolaris on the Smallest System Yet?

One of my compadres forwarded me this link from CompuLab, an Israeli company which has created this real small, very energy efficient PC.  It may just be the smallest full-featured system to date.  I'm a sucker for these types of things, and thought it would be interesting to get a reduced footprint version of OpenSolaris up and running on it.  Haven't gotten around to playing with wi-fi, or for that matter the graphics (as the reduced footprint version of OpenSolaris has no...

Wednesday, November 5, 2008 | Sun | Read More

Fast Booting Solaris

A veteran Java ONE keynote presenter, Perrone Robotics has developed some real interesting technologies which take the concept of using autonomous (i.e. unmanned) vehicles to a whole new level.  One of their key ingredients is the MAX software platform which utilizes common commercially available components to enable Perrone to very quickly and cost-effectively retrofit nearly any vehicle in short order. The MAX robotics platform runs on a (roughly 4" x 6") low-power PC board...

Wednesday, July 23, 2008 | Sun | Read More

Real-Time Java in a Zone

As is often the case, Sun's technologies and offerings are being applied in ways which we hadn't necessarily anticipated.  Yet another example has reared its head in the govenrment/military space where customers have expressed interest in using Sun's Java Real-Time System with Solaris Trusted Extensions.  As it stands right now, Java RTS will neither operate nor install within the confines of such an environment.  Let's investigate why thisis so, and see what current...

Tuesday, June 17, 2008 | Sun | Read More

Are Solaris RAM Disks Swappable?

As memory access is typically orders of magnitude faster than disk access, the idea of using a part of RAM as an in-memory storage device has been one of the earliest performance optimizations realized by the computer science community.  Even though today this type of optimization takes place transparently inside modern operating systems (via mechanisms like the disk buffer cache),  there are still circumstances where manually creating a RAM disk might still be quite useful.A...

Thursday, May 29, 2008 | Sun | Read More

Working Around a Simple Directory Server Install Issue with Windows

While working with a customer evaluating Sun's Directory Server Enterprise Edition 6.3 for Windows, we came across a problem during very basic install and setup.  For posterity's sake, I thought it might make sense to document the issue and offer a few potential workarounds.  How to replicate 1. Install the directory server.  In this case the downloadable image has been unzipped into the c:\\tmp\\dsee63\\DSEE_ZIP_DISTRIBUTION directory C:\\tmp\\dsee63\\DSEE_ZIP_Distribution> d...

Monday, May 19, 2008 | Sun | Read More

Using Solaris to Burn the OpenSolaris 2008.05 CD Image

If you're using Solaris or OpenSolaris as a platform to download and burn the recently announced OpenSolaris 2008.05 image, the instructions found here may need a slight modification.  After downloading the Live CD, you are instructed to use the cdrw(1) command as follows to burn the image to CD: cdrw -i /path/to/iso/image/os200805.iso Here's what might happen on your system when you attempt to use the 'cdrw -i' command: The cdrw(1) command fails because it thinks the ISO image...

Tuesday, May 6, 2008 | Sun | Read More

Modifying and Respinning a Bootable Solaris ISO Image

As an adjunct to the previous blog post, a slightly customized boot environment capable of enabling serial console kernel debugging was required to diagnose Solaris install problems.  The post itself mentioned that a nice way to accomplish this was to set up PXE network boot via Solaris jumpstart.  It is indeed flexible and enables one to experiment with modifications and quickly test whether they perform as expected.  The one downside to this environment is that an...

Monday, April 21, 2008 | Sun | Read More

Enabling Remote Console Debugging of Solaris x86 Boot/Install

Our partners do a fair amount of business supplying ruggedized Solaris-powered Panasonic Toughbook computers to their US government/military customers.  As a regular part of the product cycle, Sun usually works with both the integrators and Panasonic to assure that as new models become available, Solaris runs on these systems properly.  Furthermore, when we can get our grubby little hands on the systems, we'll run them through our certification suite of tests and formally...

Monday, April 14, 2008 | Sun | Read More

Reduced Footprint Java SE: Bringing Java Standard Edition Down to Size

A previous blog post demonstrated how you can, with minimal effort, lessen the disk footprint of a typical Java SE 5.0 runtime environment by about a third without violating the Java Standard Edition Licensing agreement. That post focused primarily on removing optional files and compressing class library jar files.  It turns out that with a little more engineering,  there is significant opportunity for further space optimization. These additional savings involve more intimate...

Wednesday, March 26, 2008 | Sun | Read More

Reducing Your Java SE Runtime Environment Footprint (Legally)

Because the resource requirements for Java Standard Edition are by no means insignificant, developers interested in utilizing Java on smaller platforms have traditionally opted for one of the Java Micro Edition configurations.   It should therefore come as no surprise that some of the Standard Edition functionality has to be sacrificed in these constrained Java ME environments.  However, as the trend towards more capable devices continues, it becomes reasonable to once again...

Thursday, February 14, 2008 | Sun | Read More

Good Things Come To Those Who Wait

Java RTS 2.1 EA (Early Access) marks the arrival of a commitment made some time back, namely that Sun would provide a version of the Java Real-Time System for Linux.  Perhaps to some, it was long time in the making, but in fact there are at least 2 good reasons why a Linux version wasn't available till now: Until recently, there was no standard Linux release/kernel which had true real-time support.  Typically the versions available were non-standard and did not constitute any...

Thursday, January 31, 2008 | Sun | Read More

Java RTS 2.0 Update 1 Released

After blogging about the relationship between high resolution timers and Java RTS, a comment was posted by a reader stating that they couldn't use Java RTS 2.0 with the latest Solaris 10 update.  Unfortunately that reader was correct. At the time of the post, Sun had released Solaris 10 Update 4, while Java RTS 2.0 would only support Solaris 10 update 3.  To further exacerbate the situation, once Sun releases a new version of Solaris, they do their best to encourage users to...

Wednesday, December 19, 2007 | Sun | Read More

General Purpose Always Wins ... Why Not for the Real-Time Market Too?

The brief but brilliant era of computing has seen companies come and go, many relegated to the ash heap of history because they failed to heed this simple rule:       In the long run general purpose solutions will always win out over specialized proprietary ones.   As a long time employee of Sun Microsystems, I've witnessed firsthand the effects, both positive and negative, that this law has had on my company.  Sun can attribute it's initial meteoric rise to the fact that it...

Monday, October 15, 2007 | Sun | Read More

Real-Time Java and High Resolution Timers

Any modern x86/x64 processor worth its salt comes equipped with an Advanced Programmable Interrupt Controller, or APIC.  Among the features that an APIC provides is access to high resolution timers.  Without such capability, the default interrupt source for timer and cyclic operations has a precision on the order of 10 milliseconds -- hardly fine-grained enough for any serious real-time work. The cyclic subsystem, introduced in Solaris 8, gives Solaris the capability to...

Tuesday, June 19, 2007 | Sun | Read More

Real-time Java Meets Wall Street

Jim Clarke, Eric Bruno and I have been selected to present this year at Java ONE.  The title of our session is called "TS-1205 The Sun Java Real-Time System Meets Wall Street".  We're scheduled to present on Wednsday, May 9 at 10:55AM - 11:55AM Pacific in the Moscone Convention Center in San Francisco.  If you plan on attending, please stop by and see us.  For those that can't make the event, we'll be sure to post the slides once we're permitted. To get an idea of what we'll...

Friday, March 30, 2007 | Sun | Read More

Crosstool Environment in a Solaris Zone

Background The task of building Java ME CDC-HI binaries and their associated cross development environments tends to be very linux-centric.  Utilities like Crosstool, which make this process much more tolerable, also make various linux and GNU assumptions that differ from standard Solaris.  By introducing new paths and GNU versions of applications, it is possible to mimic this environment in Solaris.   Furthermore, by creating a new zone with this environment, wecan isolate...

Thursday, March 8, 2007 | Sun | Read More

Solaris Was Real-time Before Real-time Was Cool

In the financial services market, there is a general trend to move key systems close to, or even right inside the exchanges themselves -- the idea being that the nearer you are to the source, the less network infrastructure and latency you'll experience.  With this advantage firms can potentially take on additional transaction loads at higher transaction rates.  These systems typically use the latest Intel or AMD processors and run a commercial distribution of Linux.1 [1]...

Friday, February 23, 2007 | Sun | Read More

The Verbal Regret Coefficient

I am convinced that scientists will some day find an explanation for my continual verbal ineptitude.  It will probably be identified as a sequence in our genome and they'll call it something like The Verbal Regret Coefficient.  We are all born with it, and we can't escape how it influences us everyday.  In advance of its discovery, I propose this definition: The Verbal Regret Coefficient is that innate ensemble of dispositions whichguarantees that after uttering a number of...

Friday, February 16, 2007 | Personal | Read More

Framework to Help Create Small Footprint RAM Resident Solaris Configurations

As Sun continues to avail more of its intellectual property to the community, the advantages Sun employees have regarding access to internal resources almost disappear.  In fact now when attempting to post questions to internal Sun mail aliases, I am often times redirected to the community.  The ramifications of this change hit me square in the gut this summer. Having stumbled upon an internal project investigating how Solaris might be minimized forembedded use, I thought an...

Wednesday, February 7, 2007 | Sun | Read More