JetStreamQ – a zero-config JMS server

Posted in Uncategorized on October 7th, 2010 by Eric Bruno

Eric Bruno originally posted this on Dr.Dobb's Journal | Eric Bruno Blog.

>

I recently made available the fruits of a personal research project, called JetStreamQ, on my web site alluretechnology.com. The software project is a Java messaging server, which implements most of the JMS API, and requires no configuration to get started. The main goals are reliability, performance, and simplicity. Along those lines, the entire software package is compose of a single JAR file. Just import it into your JMS application and run. The single JAR switches between client mode and server mode automatically, discovers other JetStreamQ instances on your network, and automatically configures itself and clusters for high-availability. Again, with no configuration or administration required.

I think it's really cool, and since it started out as project to build the type of JMS server I was looking to use as a developer, I think most developers will be pleased to work with it. It performs really well for topic and queue based messaging, and when you limit it to two or three clustered servers, it offers high-availability with excellent performance. Give it a try with the free download available at alluretechnology.com/jetstreamq. You can also read more about it by downloading the datasheet slides. Let me know what you think of it!

Happy Coding!
-EJB

Particle Code for Mobile App Freedom

Posted in Uncategorized on October 5th, 2010 by Eric Bruno

Eric Bruno originally posted this on Dr.Dobb's Journal | Eric Bruno Blog.

>

I recently had the pleasure of speaking with Guy Ben-Artzi, co-founder and CEO of Particle Code, to speak about their new cross-platform SDK for mobile application development, called the Particle Platform. In brief, Particle allows you to write one code-base in a supported language of your choice, and target one or more mobile device platform for your application. The Particle Platform handles porting the single code-base to targeted devices, and the result is a set of native applications for those devices.

A Little History

Ben-Artzi was co-founder of Mytopia, a leading social games company that was acquired earlier in 2010. Mytopia was the first multi-player game development platform in the smart phone space, launched in 2006. Not only did it support multiple mobile platforms, Mytopia spanned the web and mobile spaces with its integration with Facebook. When 888 Holdings acquired Mytopia, the co-founders maintained the rights to the tools and platform software used to help port mobile applications natively across mobile operating systems. This code served as the basis for Particle Code.

How Particle Works

The Particle Code middleware and tools automate the porting process for Java, C#, and ActionScript3 applications to native code for the target mobile platforms. The platform currently supports all of the major mobile operating systems available today, with support for Internet-based TV as well as game consoles coming soon.

To begin, you choose a supported language (i.e. Java), target a mobile platform, and Particle Code uses the native language, compiler, and API for that platform to port your code into a native mobile application. The end result is an application that is indistinguishable from one that you wrote with that platform's native APIs to begin with. Therefore, Particle Code has never had an issue getting applications approved for Apple's iOS platform. In fact, with Mytopia, many iPhone applications have been available through Apple's App Store using this platform for some time now. This, combined with Apple's recent loosening of the rules around how iOS applications are built, all but removes this concern completely.

Some Limitations

Although Particle works well for application business logic and other non-UI code, it cannot port UI components across mobile platforms. This limitation was intentional, as Particle Code was not looking for a cookie-cutter approach, which could potentially lead to less-than ideal mobile applications across platforms. Instead, Particle has created a set of tools that let you begin your native UI development by targeting device capabilities and form factors. This includes screen size, form factor, touch interface support, and so on.

Getting Started

Two weeks ago, the Particle team revealed the Particle Platform at the Demo conference and won a DEMOgods award. When launched, the Particle Code platform will be available completely free to developers, and although not entirely open-source, portions of the platform will be released as open source over time. Sign up today to preview the Particle Platform at particlecode.com, to be released soon.

JavaOne: Amy Fowler’s Feelings on JavaFX and Swing

Posted in Uncategorized on September 21st, 2010 by Eric Bruno

Eric Bruno originally posted this on Dr.Dobb's Journal | Eric Bruno Blog.

>

Though I've never met her, I have deep respect for Amy Fowler as an engineer and leader of JavaFX design and development at Oracle. She's helped to review the book on JavaFX that I co-wrote with Jim Clarke and Jim Connors, and she's written some very intelligent articles and blogs on Java client-side programming over the past few years. From what I've heard, she's been a huge driving force for JavaFX within Sun and now Oracle.

If want to read some deep insight, and truth, on the future of JavaFX and Swing, as well as the death of JavaFX Script, I recommend you read her recent blog post on the subject.

I don't work for Sun/Oracle anymore, so it's with total honesty that I say I feel completely confident and comfortable with Oracle's Java and JavaFX plans for the future, having seen and listened to the material coming from JavaOne this week. Stay tuned as I continue to summarize and link to the best nuggets of information coming from the conference.

JavaOne: Java GC Myths

Posted in Uncategorized on September 21st, 2010 by Eric Bruno

Eric Bruno originally posted this on Dr.Dobb's Journal | Eric Bruno Blog.

>

My friend, and genius Java GC expert at Oracle, Tony Printezis is giving a talk on Java GC and HotSpot tuning at JavaOne. His talk will be on Thursday, where he'll discuss this topic, as well as work being done to improve Java GC for low-latency collection, even with very large heaps.

He will also talk about what he calls " The Eight Myths about Garbage Collection":

1-Reference counting GC will solve all my latency problems.
2-Malloc/free will always perform better than GC.
3-Finalizers should be called promptly, as soon as objects become unreachable.
4-Garbage collection will eliminate all memory leaks.
5-Life would be so much better if I could explicitly deallocate some important objects, since I know when they're unreachable.
6-I can get a GC that delivers both very high throughput and very low latency.
7-I need to disable GC in critical sections of my code.
8-Anything I can write in a system with GC, I can write with malloc/free.

JavaOne Slides: JavaFX Your Way

Posted in Uncategorized on September 21st, 2010 by Eric Bruno

Eric Bruno originally posted this on Dr.Dobb's Journal | Eric Bruno Blog.

>

Here, you can find the slides from Jonathan Giles' and Stephen Chin's JavaOne presentation, "JavaFX Your Way," where they discuss the proposed changes to JavaFX. You'll see early examples of JavaFX programming with Java, Scala, Groovy, and JRuby. Their disclaimer is that this is all in the proof-of-concept phase, but it's quite interesting nonetheless.

JavaFX, Open Source, and other announcements

Posted in Uncategorized on September 20th, 2010 by Eric Bruno

Eric Bruno originally posted this on Dr.Dobb's Journal | Eric Bruno Blog.

>

Thomas Kurian of Oracle announced that all of the JavaFX UI controls will be released to open-source when JavaFX 2.0 is release. Additionally, NetBeans will continue to be the premier Java IDE, with two releases already planned for 2011. In fact, there has been a 20% increase in downloads and usage of NetBeans over the past six months.

By opening up JavaFX to simpler Java-based APIs, through continuing improvements to the Oracle HotSpot JVM, and an improved hardware-accelerated rendering engine, JavaFX applications will benefit from an immense improvement in performance and efficiency. Nandini Ramani demoed a very complex JavaFX media application with thousands of nodes, and dozens of simultaneous HD video previews running. The performance was very impressive, especially considering the technology is not quite complete and has not yet been released.

The JavaFX API will not only be available to Java and other languages, it will be unified no matter what your target is: the desktop or the browser. In the browser, the implementation will include an HTML5/CSS rendering engine that works with modern browsers across OSs and platforms to bring HTML5 application development to Java developers transparently.

The Java VM will see improvements specifically around garbage collection for large-heap applications. The example given was a VM with low-pause collector (sub-second) with heaps in the terabyte range,

Moving on, improvements to Java EE planned for 2011 include continuing the simplification of enterprise Java applications. This includes the use of Glassfish and annotations to make it easier to launch REST-based services and other enterprise Java applications. Java EE profiles are continuing to be defined, and Oracle is looking to the community to define these profiles to meet the precise needs of enterprise developers.

Overall, Oracle is expressing their commitment to open-source development through Glassfish, NetBeans, and at least portions of JavaFX going forward. Also, Java ME will continue to be developed, and used to target lower-cost feature phones to allow people to develop world-class applications on these billions of devices. But the story doesn't end with mobile phones, but continues with other mobile devices such as Kindles, smart pens, desktop-integrated VOIP phones, and new classes of applications based on the JVM.

A lot of this discussion has been seen in the past, but something new discussed at JavaOne is the use of Java as a serious game development platform. This isn't a rehash of Chris Mellasinos and his research project, Project Darkstar, but instead a real platform ready to support millions of online gamers today. A demo was shown with the Java-based gaming platform running Star Wars: The Old Republic, which you can experience for yourself at www.starwarsoldrepublic.com.

Java FX 2.0 Details

Posted in Uncategorized on September 20th, 2010 by Eric Bruno

Eric Bruno originally posted this on Dr.Dobb's Journal | Eric Bruno Blog.

>

Oracle has just posted the roadmap for JavaFX 2.0 here. Also, you can hear the plans first-hand via the JavaOne "Future of Java" keynote taking place on the web here.

In summary:
-JavaFX Script will be going away in favor of a Java API that can be called via Java and other dynamic languages
-Binding and triggers will be supported via Java
-Support for multi-threading will be enhanced
-New classes and support for sequences and observables will be added
-Smaller on-disk and in-memory footprint
-Far better performance
-Improved startup time
-Complete keyboard focus and navigation support
-Extensive, comprehensive, blueprints, best practices, and examples will be included
-Improved animation transitions
-Texture painting added
-Improved layout and containers
-Improvements to media support including HD video, low-latency audio, full-screen support, media markers for easier programming around video
-Many other improvements including an integrated web browser, various UI controls, a media player control, and a new plugin that supports Prism (a new high-performance rendering engine).

Mark Reinhold announces Java SE 7 plan

Posted in Uncategorized on September 20th, 2010 by Eric Bruno

Eric Bruno originally posted this on Dr.Dobb's Journal | Eric Bruno Blog.

>

Last week, Mark Reinhold proposed breaking JDK7 into two releases: JDK7-lite, and JDK8 to follow closely behind. This was described as "Plan B", with "Plan A" being Java SE 7 released with all of the features planned for JDK7. Today, Mark announced that Oracle will go with Plan B, which is:

-JDK 7 (minus Lambda, Jigsaw, and part of Coin) - released Mid 2011
-JDK 8 (Lambda, Jigsaw, the rest of Coin, ++) - released Late 2012

A new milestone schedule will be posted on the OpenJDK site here: http://openjdk.java.net/projects/jdk7/milestones

Mark also made it clear that Oracle has no plans to dismantle the OpenJDK, as they did with Open Solaris. In fact, all of Java SE development will continue in the open, as part of the Open JDK projects. This development will be open and available to the Java community.

JavaFX 2.0

Posted in Uncategorized on September 20th, 2010 by Eric Bruno

Eric Bruno originally posted this on Dr.Dobb's Journal | Eric Bruno Blog.

>

What do you call JavaFX without the scripting language and without JavaFX Mobile. Apparently Oracle calls it version 2.0? Richard Bair summed it up as a hardware accelerated graphics library with some new controls and a Java API. Rumors suggest that the API will be accesible via other JVM languages such as Groovy. This actually sounds positive to me except for one thing: delivery Q3 2011.

I'm concerned about JavaFX losing what momentum it currently has as people stop working with JavaFX Script in anticipation of the new Java APIs. More details to come, I'm sure -stay tuned!

More info on JDK7

Posted in Uncategorized on September 19th, 2010 by Eric Bruno

Eric Bruno originally posted this on Dr.Dobb's Journal | Eric Bruno Blog.

>

Leading up to JavaOne10, Mark Reinhold has written a recent blog that further solidifies what Java SE 7 will look like. It includes most of what you'd expect (i.e. small language enhancements, NIO.2, Swing enhancements, InvokeDynamic, and so on) but there are new features as well. These features, never mentioned before, are most likely from work that Oracle was doing to JRockit prior to or during the Sun acquisition.

These include new internationalization features, additional NIO.2 filesystem enhancements, JDBC 4.1, Windows Vista networking improvements, and so on. Take a look at Mark's blog here for the details.