Thursday Apr 25, 2013

JavaOne India: Hear about Java from the Source!

JavaOne India
May 8-9, 2013,
Hyderabad International Convention Center

Java Strategy and Technical Keynotes 

Technical Sessions, In addition to Technical Sessions, Hands On Labs and an OTN VIP room with community sessions, and the Java Demogrounds, JavaOne India will include keynotes from the people who develop and drive the Java language and platform. You can hear from them, meet them, and ask your questions directly (you can tweet them during the keynote!).  In these keynotes, Oracle’s Java engineering luminaries will provide a glimpse of the future:

Java Strategy Keynote Speakers
Anil Gaur, Vice President of Server Technologies, Oracle
Nandini Ramani, Vice President of Engineering, Java Client and Mobile Platforms, Oracle
Georges Saab, Vice President of Development, Oracle
Sharat Chander, Group Director, Product Technology Outreach, Oracle

Java Technical Keynote Speakers
Angela Caicedo, Senior Member of Technical Staff, Oracle
Stephen Chin, Java Technology Ambassador and JavaOne Content Chair, Oracle
Arun Gupta, Java EE Technology Evangelist, Oracle
Simon Ritter, Java Technology Evangelist, Oracle
Jim Weaver, Consulting Member of Technical Staff, Oracle

What more could you ask? How about a savings of INR 1,400 on Registration Through 7 May 2013! Register now for JavaOne India, and you can acquire new skills, network with colleagues, and reconnect with your passion for Java.

Monday Apr 22, 2013

Java Certification

We regularly receive quite a few questions about certifications for Java. What’s available? What’s changed? Should I bother to get certified? Am I still certified? Do I need to take training to get certified?  I talked to Kate Jones of the Certification Team at Oracle University to get your questions answered. 

Q: Kate, what's the good news for Java developers?

A: Java is still the # 1 developer platform in the world. Java is everywhere and it keeps growing, with 97% of enterprise desktops, 115 million TV devices and 3 billion mobile phones now running Java. Recent surveys given to hiring managers and recruiters have validated the huge demand for skilled developers in the marketplace. More specifically, for skilled Java developers.

Q: If I’ve been a Java Developer for years, why should I get Java Certified?

A: Certifications hold much more value when combined with solid experience - so you're actually a perfect candidate for certification! Certification doesn't just validate what you know, it demonstrates your commitment to skill development. Check out the post Wanted: Java Certified Experts for more info on this topic.

Q: How different are the Java SE 7 certifications compared to the Java SE 6 certifications?

A: There are significant differences. Oracle University saw an opportunity to improve the Java SE 7 Oracle Certified Associate (OCA) and Oracle Certified Professional (OCP) exams to test a broader range of features and skills so they're more relevant to real-world job functions. Both exams include more advanced content, which gives the credentials more value in the marketplace. We’ve also revised the path to require individuals to achieve their OCA certification before pursuing their OCP exam. For those who already hold a Sun Certified Java Professional (SCJP) or OCP credential, upgrade exams are available to the OCP, Java SE 7 Programmer certification without having to take the OCA exam first.

Q: For the Java SE 7 Certifications, why is OCA now a prerequisite for OCP?

A: With the release of Java SE 7, we saw an opportunity to improve both the OCA and OCP Certifications. In the past, the OCA exam covered more introductory and fundamental concepts so it was not highly sought-after or valued by hiring managers. The Java SE 7 OCA exam now covers more advanced content, content that was previously covered on the OCP exam. We also added additional objectives to the OCP exam to give it more value. The result is that we now have two improved exams that will test you on a greater breadth of skills and position you for greater success.

Q: Do I need to buy training classes from Oracle University in order to earn my Java certification?

A: Training is not currently a requirement for the Oracle Certified Associate, Professional or Expert level Java certifications. Training is only a requirement for the Oracle Certified Master (OCM) level certifications, which includes the OCM, the Java SE 6 Developer and the Java Enterprise Architect certifications. Master certifications are the most advanced credentials so we require training to help prepare candidates for the hands on nature of the exam and to ensure candidates have an in-depth expertise of the technology area. 

Read Kate’s post Java Certification: Your Burning Questions Answered on the Oracle University blog. Have more questions? Ask us here. 

Thursday Apr 18, 2013

Getting Started with Oracle Java ME Embedded 3.3 on the Keil Evaluation Board

The new release this week of Oracle Java ME Embedded 3.3 for ARM Cortex M3 make the Oracle Java ME Embedded product available as a reference binary for the Keil MCBSTM32F200 platform for development/evaluation purposes. This binary comes integrated with RTX OS. To help you get up and running, Oracle Java Evangelist Angela Caicedo has created a new two part video that shows you all the steps you need to follow to develop your first applications using Java ME Embedded 3.3 on the Keil evaluation board.

Video: Getting Started with Java ME Embedded 3.3 Part One


   Part I

This new tutorial video provides the step-by-step guide to get Oracle Java ME Embedded for ARM Cortex M3 up and running on the on Keil evaluation board: from the configuration of the software and hardware, and how to    test; how to connect to the command line and logging interfaces; and of course how to get started with this Java ME Embedded application. Angela walks us through how to install, update and even uninstall the application.


Video: Getting Started with Java ME Embedded 3.3 Part Two


Part Two

In the second video, Caicedo uses Netbeans 7.3 with Oracle Java ME SDK 3.3 NetBeans Plugin, Java ME SDK 3.3 (early access) and the Oracle Java ME Embedded 3.3 for ARM Cortex M3/RTX software distribution to create an embedded application, run it on an emulator and provides tips on how you can debug your application. Then using these tools you will be taken through the steps to create your first application, deploy it, and test that everything is running properly.

Oracle Java ME Embedded 3.3 complete product functionality such as peripheral IO, AMS operations, headless operations, functionality for remote application management/configurability, etc. is available on the Keil MCBSTM32F200 platform. Download and see the documentation on OTN to learn more.

Tuesday Apr 16, 2013

Java SE 7 Update 21 Release and more

Oracle has released three updates to Java. It is important to note that they contain several security changes. The releases are:

Java SE 7 Update 21
This release contains new features and fixes for security vulnerabilities, including a new Server JRE, JRE Installer linked with Uninstall Applet on Windows platform, changes to Security Dialogs and more. Oracle strongly recommends that all Java SE 7 users upgrade to this release. 
Release Notes   Download

Java SE 6 Update 45
This release contains fixes for security vulnerabilities. 
Release Notes   Download

Java SE Embedded 7 Update 21
This release is based on Java Development Kit 7 Update 21 (JDK 7u21) and provides specific features and support for embedded systems. 
Release Notes   Download

Security Changes 

In addition to security fixes, Oracle has included new security features in this release. These are significant:

  • Starting with Java SE 7u21, a Server Java Runtime Environment (Server JRE) package is available for deploying Java applications on servers. The Server JRE includes the same high performance JVM that is available in the JDK and JRE packages, tools for JVM monitoring and tools commonly required for server applications.  It does not include browser integration (the Java plug-in), auto-update, nor installer. Learn more in the Release Notes.

  • Changes to Java Control Panel's Security Settings - In this release, low and custom settings are removed from the Java Control Panel(JCP)'s Security Slider. Depending on the security level set in the Java Control Panel and the user's version of the JRE, self-signed or unsigned applications might not be allowed to run. The default setting of High permits all but local applets to run on a secure JRE. If the user is running an insecure JRE, only applications that are signed with a certificate issued by a recognized certificate authority are allowed to run. For more information, see the Security section of the Java Control Panel documentation.

  • Changes to Security Dialogs - Specifically, all Java code executed within the client’s browser will prompt the user. The type of dialog messages the user sees depends upon the risk factors. Low-risk scenarios present a very minimal dialog and include a checkbox to not display similar dialogs by the same vendor in the future. Higher risk scenarios, such as running unsigned jars, will require more user interaction given the increased risk. See the Java Source Blog IMP: Your Java Applets and Web Start Applications Should Be Signed.

    Resources that will be helpful for both developers and end-users are:
  • Changes to RMI - From this release, the RMI property java.rmi.server.useCodebaseOnly is set to true by default. In previous releases the default value was false. This change of default value may cause RMI-based applications to break unexpectedly. The typical symptom is a stack trace that contains a java.rmi.UnmarshalException containing a nested java.lang.ClassNotFoundException. For more information, see RMI Enhancements in Java SE 7 documentation.

  • JDK for Linux on ARM - this release includes support for JDK for Linux on ARM. The product offers headful support for ARMv6 and ARMv7.

Monday Apr 15, 2013

Kotlin: A Conversation with JetBrains' Andrey Breslav

A new article, up on otn/java, by yours truly, titled “The Advent of Kotlin: A Conversation with JetBrains' Andrey Breslav,” explores the new statically typed language, Kotlin, which was named  Language of the Month in the January 2012 issue of Dr. Dobb's Journal. Kotlin is a product of the highly lauded Czech software development company, JetBrains, maker of the Java IDE IntelliJ IDEA. Project Kotlin aspires to create for developers a general-purpose language that can serve as a useful tool that is safe, concise, flexible, and 100 percent Java-compatible. Both the compiler and the IntelliJ IDEA plug-in are open source under the Apache 2 license, with source code available through GitHub.

Breslav, the lead language designer for Kotlin, discusses Kotlin's features in the interview.  Here are some things he points out:

* “Extension functions and properties in Kotlin can be added to any class/type without altering the definition of the class. This enables us to beautify even existing Java libraries so that the good old JDK looks nice and shiny.
* Higher-order functions (passing code around as values) are a lot more convenient, because Kotlin supports proper function types (as opposed to Java 8's SAM conversions that make you create a new interface every time you need a new function signature to be passed around).
* Declaration-site variance, and variant collections in particular, make common data processing much more natural by eliminating the need for ubiquitous wildcards in generic types.”

Breslav says that Kotlin promotes null safety, through nullable types and “offers control over data modification through read-only collections and data classes and enables safer runtime checks through smart casts.”

He states that Java developers who are in search of a new language will enjoy Kotlin’s clean abstractions, concise syntax, and type safety. Breslav encourages developers to download the compiler and/or a plug-in for IntelliJ IDEA, and start writing their own applications. Any feedback about what developers like and dislike, what they find difficult to understand, and how they are making use of Kotlin will be much appreciated.

Check out the article here.

Friday Apr 12, 2013

OpenJDK Governing Board Elects At-Large Members

The OpenJDK Governing Board, which oversees the structure and operation of the OpenJDK Community, has elected two At-Large Members: Andrew Haley and Doug Lea. Both were previously serving as at At-Large members and began new one-year terms on April 1.

Andrew Haley, of Red Hat, wrote in his candidate statement that his goal is to “stand up for freedom and steer the governing board toward helping people who crank out code to get their job done.”

Lea, of SUNY Oswego, wrote that he hoped “to continue my role as an advocate for continuing improvements in OpenJDK processes and mechanisms, especially as they impact the academic, research, and individual contributor communities.”

The OpenJDK Governing Board oversees the structure and operation of the OpenJDK Community. It has two At-Large Members who serve for a term of one calendar year, nominally starting on the first day of April each year.

Wednesday Apr 10, 2013

Java on SPARC T5-8 Servers is FAST

Watching the boats practicing on San Francisco Bay for the America's Cup reminds me that fast is fun!  Did you know that Oracle just announced world record Java benchmarks with SPARC T5 and Solaris?  

The Details

Oracle produced a world record SPECjEnterprise2010 benchmark result of 57,422.17 SPECjEnterprise2010 EjOPS using Oracle's SPARC T5-8 server in the application tier and another SPARC T5-8 server for the database tier. This result demonstrated less than 1 second response time for all SPECjEnterprise2010 transactions, while demonstrating a sustained load of Java EE 5 transactions equivalent to 468,000 users. A SPARC T5-8 has 8 chips, 128 cores, and runs a 3.6 GHz SPARC T5CPU. Translation: If you get some SPARC T5-8 servers, you can run your Java applications really, really fast.

About the Benchmark

SPECjEnterprise2010 is the third generation of the SPEC organization's J2EE end-to-end industry standard benchmark application. The new SPECjEnterprise2010 benchmark has been re-designed and developed to cover the Java EE 5 specification's significantly expanded and simplified programming model, highlighting the major features used by developers in the industry today. This provides a real world workload driving the Application Server's implementation of the Java EE specification to its maximum potential and allowing maximum stressing of the underlying hardware and software systems:

  • The web zone, servlets, and web services
  • The EJB zone
  • JPA 1.0 Persistence Model
  • JMS and Message Driven Beans
  • Transaction management
  • Database connectivity

Moreover, SPECjEnterprise2010 also heavily exercises all parts of the underlying infrastructure that make up the application environment, including hardware, JVM software, database software, JDBC drivers, and the system network.

Learn More

Blog: SPARC T5-8 w/ Oracle Solaris Delivers SPECjEnterprise2010 Benchmark World Record Performance
Blog: SPARC T5-2 w/ Oracle Solaris Achieves SPECjbb2013 Benchmark World Record Result
White Paper: Oracle Solaris: The Best Platform for Enterprise Java (PDF) 
Complete Results at SPEC.org: SPECjEnterprise2010

Monday Apr 08, 2013

Technical Article: Java EE 7 and JAX-RS 2.0

A new article by Java Champion Adam Bien, titled “Java EE 7 and JAX-RS 2.0” is up on otn/java. The article demonstrates how Java EE 7 with JAX-RS 2.0 has several new useful features which further simplify development, and lead to the creation of more sophisticated Java SE/EE RESTful applications.

Using a Java-friendly, but simplistic JAX-RS 2.0 example Bien takes the reader through aspects, request interception, client and configuration issues and much more. He concludes the article as follows:

“Interestingly, JAX-RS does not even require a full-fledged application server. After fulfilling the specified Context Types, a JAX-RS 2.0–compliant API can be anything. However, the combination with EJB 3.2 brings asynchronous processing, pooling (and so throttling), and monitoring. Tight integration with Servlet 3+ comes with efficient asynchronous processing of @Suspended responses through AsyncContext support and CDI runtime brings eventing. Also Bean Validation is well integrated and can be used for validation of resource parameters. Using JAX-RS 2.0 together with other Java EE 7 APIs brings the most convenient (=no configuration) and most productive (=no re-invention) way of exposing objects to remote systems.”

Check out the article here.

Thursday Apr 04, 2013

Golo – A Lightweight Dynamic Language for the JVM

Julien Ponge, who, in addition to being a Java developer and a professor, also writes technical articles for both otn/java and Java Magazine, has created Golo, a simple, dynamic, weakly-typed open source language that favors the explicit over the implicit. Developers can pick it up in a manner of hours, not days. Responses to its recent release at Devoxx have been favorable.

Built from day 1 with invokedynamic, and currently in beta, Golo takes advantage of the latest advances of the JVM. It is also a showcase on how to build a language runtime with invokedynamic.

The Golo Programming Guide is located here.

Julien is an Associate Professor (Maître de Conférences) in Computer Science and Engineering at INSA-Lyon in France, plus an R&D Computer Scientist at the CITI / INRIA laboratory. Learn more about him here.

Wednesday Apr 03, 2013

Introducing Kids to Java Programming Using Minecraft


By Arun Gupta, originally published on his blog

Minecraft is a wildly popular game among elementary and middle schoolers. The game allows players to build constructions of textured cubes in a 3D world.

My son has been playing the game for about a year, lets say addicted to it. Last Fall he told me that the game is corrupted because the JAR file snapshot has messed up the configuration. And that right away rang a bell in me as a Java Evangelist at Oracle.

My son has been playing the game for about a year, lets say addicted to it. Last Fall he told me that the game is corrupted because the JAR file snapshot has messed up the configuration. And that right away rang a bell in me as a Java Evangelist at Oracle.

I learned from him that the game is written in Java, has a trial version that runs as an applet in the browser, and downloaded as a JAR file for desktop. The game is modular where the players travel through a world and chunks are loaded and unloaded to keep the memory footprint small. Something unique about the game is the ability to modify the game from what it was originally designed for. In Minecraft language, this is called as a "mod" - short for modifications. For example, a mod can add new characters to the game, change look-and-feel of the play field, or make it easy to build new structures.

The game has a server and a client component. This allows the game to be played in a single player mode where a player connects to a server using a client and plays the game. Alternatively multiple players, using different clients across platforms, can connect to a server and play with each other collaboratively. Its very common to have a server run with multiple mods. There are almost an infinite number of mods someone could do to make Minecraft a more amusing game to play. There is no official API to create these mods but there are several third-party vendors that provide that capability; Bukkit is one such API. The ability to write mods and alter the game play gives players more control over the game and gets them more excited.

My son expressed his desire to write a mod and so we started exploring further. Then onwards, he started teaching me Minecraft vocabulary and I taught him the Java programming concepts. Our discussions in the car, on the dinner table, during the breakfast preparation, and elsewhere changed to reflect that as well. He already played with Scratch and Greenfoot last Summer and that was extremely helpful during this learning curve. We set up a goal to build a mod during Christmas break. After understanding the basic concepts and building a few mods, we decided to share the knowledge with a broader set of Minecrafters. And that's where the concept of doing a Minecraft Workshop was born.

My son came up with a list of his minecraft buddies and we announced a date for the workshop. Everybody invited for the workshop confirmed their presence right away. I found out that both the invited kids and their parents were equally excited. One friend could not attend because of a prior commitment and was extremely disappointed. On the day of the workshop, some kids were eager to come even before the formal start of the workshop.

The workshop was attended by 10 kids with age ranging from 10-14 years. Most of the kids had no programming experience, let alone Java. However there was high Minecraft experience in the group with some kids playing for about 2 years and up to 2 hours every day. When given the topic of Minecraft, the small group would talk excitedly about different aspects of the game, constantly using hundreds of game-specific terms and phrases as if speaking a different language. My goal was to leverage their passion and introduce them to Java programming.


The challenge for me was to introduce programming to these kids using analogies from the daily life. Using a car, features, capabilities, types, and car dealers and correlating with class, properties, methods, instances, and packages seem to work. Fruits and different methods of peeling, eating, and planting was used to introduce the concept of Interface in Java. I asked, “What can you do with a watermelon?” the first answer was obvious, “you can eat it.” The second one was a little less so, “You can chuck in a trash can.” The response was greeted with scattered laughter. I used that to explain the concept of Exceptions in Java.

kids programming

Short anecdotes and side-conversations kept the livelihood of the group going throughout the five hour programming session. There are almost an infinite number of mods someone could do to make Minecraft a more amusing game to play. But all these mods hold the same basic framework that we set up for any future work on making game-specific mods. By the end of the session, we had worked out an entire framework for making a mod. A Maven archetype to create a template Bukkit plugin allowed the attendees to avoid writing boilerplate code. A lower bar to get started and simplicity was the key for this audience. The mod built in the workshop added a new server-side command and printed a trivial message.

Although the goal of the workshop was to get an introduction on programming and make a Minecraft mod, I believe the attendees learned much more than that. I think the informal set up helped them discover that programming can be fun and useful to add to gaming experience. Programming is a vast field and we barely scratched the surface. But most importantly, the attendees had a good time and learned their first lesson of Java programming to start off an interest in it.

"Fun", "Easy", "Quick", "Awesome", "Short", and "Intuitive" described attendees' one word summary of building and running their first Hello World application using NetBeans.

All the instructions followed in the workshop, including a lot more pictures, are available atjava4kids.java.net/minecraft-workshop.

For me, it was quite a humbling and learning experience. I've delivered multiple workshops all around the world but mostly to professional developers. I realized how the instructions need to be completely spelled out in order for the attendees of this age to make progress. Something as simple as "Hit Enter after entering the command", yes, that is required. Anyway I plan this to be the first of many more workshops aimed to introduce the world of Java programming to school students.

One of the lessons learned during the workshop was to simplify the installation experience. All the kids had JDK and NetBeans set up already, pretty straight forward. However I wonder why Maven insists on JAVA_HOME variable instead of figuring it out. I need to investigate how to seamlessly install JDK, NetBeans, and Maven in a platform independent way. This will allow to focus more on building the actual mod rather than the multi-step installations.



This workshop was not possible without mentoring support from Allen Dutra and other parents. A huge shout out to my family who helped validate and calibrate my strategy for the audience. My nephews feedback from the lab is incorporated into this blog. Thanks to Oracle for sponsoring the snacks!

Thank you @notch for using Java to build the game! You've provided a great platform for young kids to learn Java and truly enabled Make The Future Java ...

Thank you to Arun Gupta, whose passion for Java is boundless! You can read his blog at blogs.oracle.com/arungupta.

Search

Archives
« April 2013
SunMonTueWedThuFriSat
 
1
5
6
7
9
11
13
14
17
19
20
21
23
24
26
27
28
29
30
    
       
Today