Java Magazine – May/June 2014

This May/june-2014 issue of java magzine is out….


Seven Open Source Tools for Java Deployment
Bruno Souza and Edson Yanaga present a set of tools that you can use now to drastically improve the deployment process on projects big or small.

Developer Tools and Trends
Oracle’s Chris Tonas discusses plans for NetBeans IDE 9, Oracle’s support for Eclipse, and key trends in the software development space.

Quick and Easy Conversion to Java SE 8 with NetBeans IDE 8
Discover new tools in NetBeans 8 for leveraging the functional features of Java SE 8.

Build with NetBeans IDE, Deploy to Oracle Java Cloud Service
Harshad Oak shows you how to save time and effort deploying applications.

A Sprint in the Life of a Scrum Master
Take a tour of a development team’s Scrum sprint.

Mix and match the two technologies to create sophisticated applications.

And more!


NetBeans News

Project News

Two IDE Polls, One Conclusion?

NetBeans IDE has done really well recently in two different polls, one on and the other at Read all about it!

Plugin: Aspose File Format

The Aspose team have produced seamless integration for their file format APIs, such as PDF and Excel rendering, for NetBeans IDE. Download and install it today!


Top 5 Favorite NetBeans Features

Gradle, Git, GUI builders, and more! Read the features that Mark Wilmoth and Scott Palmer appreciate most about NetBeans

Score Card: NetBeans Governance Board #20

The NetBeans Governance Board has come to the end of its term. Hermien and Toni share their experiences.

Using a Raspberry Pi to Deploy JavaFX Applications

imageThis tutorial covers how to configure a Raspberry Pi as a development platform for the JavaFX platform.


New Book: Java EE & HTML5 Enterprise Application Development

The latest greatest book on Java EE, HTML5, and NetBeans IDE is set to be published. Buy yours today!


Register today for the Oracle Java ME Embedded MOOC!

imageWe are pleased to announce that the Oracle Massive Open Online Course: Develop Java Embedded Applications Using a Raspberry Pi is open for enrollment. This free course, designed for Java developers, is delivered over 5-weeks. Take the course at your own pace – weekly we will add new lessons, quizzes and homework assignments. The course will start March 31st!

NetBeans Platform Training in Germany (April 14-16)

Join Geertjan Wielenga (Oracle) and Toni Epple (Eppleton) for a two-day NetBeans Platform training in Leipzig, Germany. The training blends theory and practice–you learn the fundamentals behind the NetBeans API and then start to develop applications. Register today. Training is FREE for students.

Programming in Quorum Workshop (July 17-23)

The Experience Programming in Quorum (EPIQ) Workshop is an international professional development workshop for educators to learn the foundational skills necessary to teach students computer science using the Quorum programming language.

NetBeans Weekly Newsletter is brought to you by the NetBeans Team.

Laws of Software Design

Software design just like any other engineering design endeavor, requires a fair amount of effort, experience, patience and knowhow in order to be done right.

Based on Akin’s Laws of Spacecraft Design I present our readers with a slightly modified list of what I believe are the basic “Laws of Software design” especially when you are dealing with customer oriented, “tailored” software product solutions.

As this is considered a “basic” list, let me clarify that you are more than welcome to contribute with you own experiences and comments on the matter. So lets start …

  1. Software design is done with numbers. Analysis without numbers is only an opinion.
  2. To design software products right takes an infinite amount of effort. This is why it’s a good idea to design them to operate when some things are wrong.
  3. Design is an iterative process. The necessary number of iterations is one more than the number you have currently done. This is true at any point in time.
  4. Your best design efforts will inevitably wind up being useless in the final design. Learn to live with the disappointment.
  5. (Miller’s Law) Three points determine a curve.
  6. (Mar’s Law) Everything is linear if plotted log-log with a fat magic marker.
  7. At the start of any design effort, the person who most wants to be team leader is least likely to be capable of it.
  8. In nature, the optimum is almost always in the middle somewhere. Distrust assertions that the optimum is at an extreme point.
  9. Not having all the information you need is never a satisfactory excuse for not starting the analysis.
  10. When in doubt, estimate. In an emergency, guess. But be sure to go back and clean up the mess when the real numbers come along.
  11. Sometimes, the fastest way to get to the end is to throw everything out and start over.
  12. There is never a single right solution. There are always multiple wrong ones, though.
  13. Design is based on requirements. There’s no justification for designing something one bit “better” than the requirements dictate.
  14. (Edison’s Law) “Better” is the enemy of “good”.
  15. (Shea’s Law) The ability to improve a design occurs primarily at the interfaces. This is also the prime location for screwing it up.
  16. The previous people who did a similar analysis did not have a direct pipeline to the wisdom of the ages. There is therefore no reason to believe their analysis over yours. There is especially no reason to present their analysis as yours.
  17. Past experience is excellent for providing a reality check. Too much reality can doom an otherwise worthwhile design, though.
  18. The odds are greatly against you being immensely smarter than everyone else in the field. If your analysis says your terminal velocity is twice the speed of light, you may have invented warp drive, but the chances are a lot better that you’ve screwed up.
  19. A bad design with a good presentation is doomed eventually. A good design with a bad presentation is doomed immediately.
  20. (Larrabee’s Law) Half of everything you hear in a classroom is crap. Education is figuring out which half is which.
  21. When in doubt, document. (Documentation requirements will reach a maximum shortly after the termination of a program.)
  22. The schedule you develop will seem like a complete work of fiction up until the time your customer fires you for not meeting it.
  23. It’s called a “Work Breakdown Structure” because the Work remaining will grow until you have a Breakdown, unless you enforce some Structure on it.
  24. (Bowden’s Law) Following a testing failure, it’s always possible to refine the analysis to show that you really had negative margins all along.
  25. (Montemerlo’s Law) Don’t do nuthin’ dumb.
  26. (Varsi’s Law) Schedules only move in one direction.
  27. (Heinlein’s Law) There ain’t no such thing as a free lunch.
  28. (von Tiesenhausen’s Law of Program Management) To get an accurate estimate of final program requirements, multiply the initial time estimates by pi, and slide the decimal point on the cost estimates one place to the right.
  29. (von Tiesenhausen’s Law of Engineering Design) If you want to have a maximum effect on the design of a new software system, learn to draw. Engineers always wind up designing the vehicle to look like the initial artist’s concept.
  30. (Mo’s Law of Evolutionary Development) You can’t get to the moon by climbing successively taller trees.
  31. (Atkin’s Law of Demonstrations) When the hardware is working perfectly, the really important visitors don’t show up.
  32. (Patton’s Law of Program Planning) A good plan violently executed now is better than a perfect plan next week.
  33. (Roosevelt’s Law of Task Planning) Do what you can, where you are, with what you have.
  34. (de Saint-Exupery’s Law of Design) A designer knows that he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away.
  35. Any run-of-the-mill engineer can design something which is elegant. A good engineer designs systems to be efficient. A great engineer designs them to be effective.
  36. (Henshaw’s Law) One key to success in a mission is establishing clear lines of blame.
  37. Capabilities drive requirements, regardless of what the systems engineering textbooks say.
  38. Do not reinvent the wheel if you want to keep a new manned program affordable and on schedule.

The Most Popular Articles On OTN

Here is a list of the most popular articles, in terms of traffic, on otn/java in the last 12 months. It’s, as usual, a rich mix of Java and Java-related technologies, types of articles and variety of authors.

Check out any that you might have missed and vote with your visit.
1.  “Getting Started with Java® SE Embedded on the Raspberry Pi” by Bill Courington and Gary Collins August 2012

2. “How to Get Started (FAST!) with JavaFX 2 and Scene Builder”  by Mark Heckler  November 2012

3. “Arun Gupta on Higher Productivity from Embracing HTML5 with Java EE 7”  by Janice J. Heiss  February 2013

4. “Java Experts on the State of Java” by Janice J. Heiss   January 2013

5. “Java EE 7 and JAX-RS 2.0” by Adam Bien  April 2013

6. “Coding on Crete: An Interview with Java Specialist Heinz Kabutz” by Janice J. Heiss     January 2013

7. “Why, Where, and How JavaFX Makes Sense”  by Björn Müller  March 2013

8. “The Advent of Kotlin: A Conversation with JetBrains’ Andrey Breslav”  by Janice J. Heiss  April 2013

9. “The Enterprise Side of JavaFX”  by Adam Bien   June 2012

10. “JSR 356, Java API for WebSocket”  by Johan Vos  April 2013

And here are five runners up.

11. “Introducing Groovy”  by Jim Driscoll  July 2012

12. “The Enterprise Side of JavaFX: Part Two”  by Adam Bien  June 2012

13. “Expressing the UI for Enterprise Applications with JavaFX 2.0 FXML” by James L. Weaver  June 2012

14. “JavaOne 2012 Review: Make the Future Java” by Steve Meloan  October 2012

15. “Expressing the UI for Enterprise Applications with JavaFX 2.0 FXML – Part Two”

Java Magazine – July/August 2013

The July/August 2013 issue of Java Magazine! is out…

With Java at its core, Twitter supports more than 400 millions Tweets per day.

JavaOne Preview
Get ready for JavaOne! The conference returns to San Francisco, September 22–26.

Wind Powered. Data Powered.
ORACLE TEAM USA relies on a wireless Java system for real-time data to improve performance.

Q&A: Java Performance Tuning
We talk with Kirk Pepperdine.

Java 8: Lambdas
Get to know lambda expressions with Ted Neward.

NetBeans IDE 7.3.1
Learn how to use NetBeans IDE 7.3.1 to take advantage of Java EE 7.

And more!

NetBeans IDE 7.4 Beta

NetBeans IDE 7.4 Beta extends the advanced HTML5 development support introduced in NetBeans IDE 7.3 to Java EE and PHP application development, while offering new support for hybrid HTML5 application development on the Android and iOS platforms. In addition, this release provides support for working with preview versions of JDK 8, and includes continued enhancements to JavaFX, C/C++ and more.

Release Highlights Include:

  • HTML5
    • Phonegap application development
    • Support for Android and iOS Browsers
    • Editing support for stylesheet languages: SASS and LESS
    • Browser switcher in main toolbar
    • Saving changes from Chrome Developer Tools
    • Network monitor
  • Java EE
    • HTML5 features available in Java EE projects
    • Wizards for JSF 2.2 Resource Library Contracts and FacesComponents
  • PHP
    • HTML5 features available in PHP applications
    • Nette Framework 2 (with Latte templates) and Zend Framework 2 support
    • Atoum testing framework support
    • Editor and Rename type refactoring improvements
    • Static code analysis support
  • Java
    • Preview support for JDK 8 features: Profiles, Lambdas
    • Code completion, Hints and Refactoring improvements
    • Native packaging
    • Updated bundled Ant 1.9.0 and Maven 3.0.5
  • JavaScript
    • Editing support for AngularJS, Knockout and ExtJS frameworks
    • Navigator and code folding in JSON files
    • Enhanced code completion with improved accuracy
  • JavaFX
    • New FXML File dialog in Maven projects
    • Tighter alignment for JavaSE and JavaFX project types
    • Improvements to Project Deployment options
  • C/C++
    • Run/Debug launchers support
    • Find Usages improvements
    • C/C++ formatting style per project
  • Miscellaneous
    • Lock Contention for profiling tasks
    • Enhancements to Versioning tools: Subversion, Git, Mercurial
    • TestNG and Junit improvements
    • Improvements to Databases
    • New Tasks Dashboard and Notifications windows

NetBeans IDE 7.4 Beta is available in English, Brazilian Portuguese, Japanese, Russian, and Simplified Chinese. Visit the 7.4 New and Noteworthy page for a complete list of highlights.

The final release of NetBeans IDE 7.4 is planned for Fall 2013.

Java SE 7 Update 25 Released

Oracle has released Java SE 7 Update 25. This release includes important security fixes. Oracle strongly recommends that all Java SE 7 users upgrade to this release. For more information, see the Oracle Java SE Critical Patch Update Advisory.

download Java


Release Notes

Here some important changes to note: 

Java API Documentation Updater Tool 

To address CVE-2013-1571, users hosting publicly facing Java API Documentation generated with javadoc 5u45, 6u45, 7u21, or earlier are strongly encouraged to re-create the Java API documentation using javadoc from 7u25 or above. Alternatively, for convenience of users and for those who have further modified the generated documentation, Oracle provides the Java API Documentation Updater, a repair-in-place tool. Source code is available if you have a non-standard environment. The Java API Documentation Updater Tool is a separate download and not included in any JDK/JRE bundles.

New JAR Manifest File Attributes

JDK 7u25 release introduces the permissions and codebase attributes in the JAR Manifest File. These attributes are used to verify that the application is requesting the correct permissions level and is accessed from the correct location. See Preventing the Repurposing of an Application document.

Developers are advised to utilize at least the new permissions attribute, and if possible thecodebase attribute as well. In future releases, applications that do not include these protections may be blocked or subjected to additional warning dialogs.