<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #251 - Jul 31, 2006</title>
<META NAME="description" CONTENT="Newsletter 2006-07-31">

<link rel="stylesheet" type="text/css" href="/netbeans.css">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">

<!-- ====================================================== -->
<!-- Please do not edit this file by hand, it is rebuilt    -->
<!-- automatically and your changes will be lost.  Contact  -->
<!-- webmaster for details.  Rebuilt at                     -->
<!-- #TIMESTAMP# 31-Jul 16:10 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #251 - Jul 31, 2006</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #251 - Jul 31, 2006<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2006-07-31.html'>https://netbeans.org/community/news/newsletter/2006-07-31.html</a>&gt;<br>
Interested in becoming a newsletter editor?  We're always looking<br>
for editors to help out. Contact <a href='mailto:nbnews_contrib@netbeans.org'>nbnews_contrib@netbeans.org</a><br>
Please send news contributions to <a href='mailto:nbnews_contrib@netbeans.org'>nbnews_contrib@netbeans.org</a><br>
<hr><pre>[ANNOUNCE] NetBeans IDE 5.0 BlueJ Edition
This special edition of NetBeans IDE is a collaboration between the
NetBeans community and the University of Kent, England. The NetBeans
IDE BlueJ Edition is targeted at teachers and students familiar with
the popular BlueJ tool. The NetBeans BlueJ Edition helps you "make the
jump" from BlueJ to a full-featured IDE, either when your projects have
grown too big to fit comfortably into BlueJ, or when you want to use
features such as code completion and drag-and-drop GUI building, which
BlueJ doesn't directly support. To learn more about using BlueJ and
NetBeans in education see:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=655">http://services.netbeans.org/newsletter/story.php?id=655</a>&gt;

NetBeans 5.5 Beta 2 with Application Server 9.0 Bundle Released
One week after the release of NetBeans 5.5 Beta 2, a bundle that
combines NetBeans and Sun Application Server 9.0 is also available. Sun
Java System Application Server 9.0 is based on open source Project
Glassfish, and is the first complete implementation of the Java EE 5
platform. This bundle provides all the tools and runtimes needed to
start developing Java EE 5 applications, including the Java DB database
(based on the Apache Derby project), in a single integrated package.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=656">http://services.netbeans.org/newsletter/story.php?id=656</a>&gt;

Last Call - Free 10-week "AJAX Programming" Online Course Begins Aug 4th
This course is for anyone who wants to learn AJAX for the first time or
increase their knowledge on AJAX. In this 10-week course, students
learn basic concept of AJAX as well as how to use various AJAX
frameworks and toolkits such as Dojo toolkit, jMaki, Google Web Toolkit,
and AJAX-fied JavaServer Faces (JSF) components. Each lecture will be
followed by a hands-on lab session using NetBeans IDE 5.0 or 5.5 Beta.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=671">http://services.netbeans.org/newsletter/story.php?id=671</a>&gt;

NetBeans WorldTour Enters Second Year
After the wildly popular series of NetBeans events between NetBeans
Software Day 2005 and 2006 in San Francisco, the NetBeans team will
once again hit the road for a WorldTour in 2006/2007. Check out the
preliminary list of upcoming locations.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=657">http://services.netbeans.org/newsletter/story.php?id=657</a>&gt;

Mevenide Maven2 NetBeans Integration 2.2 Released
Milos Kleint and the Mevenide team have announced the release of
Mevenide2 NetBeans 2.2. It allows you to open existing Maven2 projects
in the IDE, create new projects, helps with writing the Maven project
files and more. This latest stable version works with NetBeans IDE 5.0
and also the NetBeans IDE 5.5 Beta.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=658">http://services.netbeans.org/newsletter/story.php?id=658</a>&gt;

Developing GUIs on Mac OS X
NetBeans developers have gone out of their way to make using NetBeans
on Macintosh a delight for both the seasoned programmer and beginner
alike. Project Matisse allows you to create a truly cross-platform UI,
just by dragging and dropping.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=659">http://services.netbeans.org/newsletter/story.php?id=659</a>&gt;

Understanding the Travel Reservation Service
The TravelReservationService is a sample business process provided with
NetBeans Enterprise Pack 5.5 Early Access. The process acts as a
logical aggregator of other services and is based on business logic
typical of a travel reservation system.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=660">http://services.netbeans.org/newsletter/story.php?id=660</a>&gt;

Rendering Nodes Creatively
When developing NetBeans modules, how do you render your nodes? In a
tree structure, probably. Do you know that you could also render those
same nodes as icons? In a combobox? In a menu button? A lot more is
possible than you think, with the org.openide.explorer.view package.
And it really couldn't be simpler. Geertjan's blog tells you all about it:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=661">http://services.netbeans.org/newsletter/story.php?id=661</a>&gt;

BlueMarine from Tidalwave - Application of the Week
The Java Posse have named BlueMarine by Tidalwave as application of the
week. BlueMarine is a Java application for supporting the digital photo
workflow. It includes tools for managing, organizing, editing, and
publishing photos. The latest releases also added support for
GeoTagging. See a screenshot:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=663">http://services.netbeans.org/newsletter/story.php?id=663</a>&gt;
The application is now based on NetBeans and OpenIDE. At the moment,
Early Access builds are available. For more information vist:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=664">http://services.netbeans.org/newsletter/story.php?id=664</a>&gt;
Fabrizio Guidici has also written a recent blog "A better integration for
NetBeans IDE applications in the Mac OS X environment.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=665">http://services.netbeans.org/newsletter/story.php?id=665</a>&gt;

The IDE's Output Window in Your Own Application?
Hermann Matthes started an interesting thread on the nbdev mailing list
on the question of how to include the NetBeans IDE Output window in
your own rich-client application. And... at the end he got it to work!
Have a look at the discussion, which ended here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=670">http://services.netbeans.org/newsletter/story.php?id=670</a>&gt;

Java Web Start: NetBeans vs. Eclipse
"I will have to work on the deployment of an Eclipser RCP application
via Java Web Start," writes the author of Application-Servers,com, in
French. "NetBeans 5.0 could perhaps facilitate work for me... On this
subject, NetBeans seems better equipped that Eclipse." Read more about
it here, in French:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=662">http://services.netbeans.org/newsletter/story.php?id=662</a>&gt;

NetBeans... In Action at the University of Wales, Aberystwyth!
Last week we reported that the Open University uses NetBeans to teach
Java. Guess what? If you go to the University of Wales, Aberystwyth,
you will find NetBeans in use there too. Chris Loftus, the course
instructor, wrote to tell us about the Server-Side Software Development
course: (&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=666">http://services.netbeans.org/newsletter/story.php?id=666</a>&gt; and the
Distributed Systems Project course:
(&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=667">http://services.netbeans.org/newsletter/story.php?id=667</a>&gt;.
Both make use of NetBeans IDE! Do you know of other universities and
colleges using NetBeans out there? Write and let us know!

NetBeans Evandalists Go to Space
"Few people know that Java SE originally stood for Java Spaceship
Edition. Now that the space shuttle has landed safely, we can finally
tell the truth about what really happened up there, and how NetBeans,
once more, saved the day." Check out Ruth's latest 2 part cartoon:
Part  I: &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=668">http://services.netbeans.org/newsletter/story.php?id=668</a>&gt;
Part II: &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=669">http://services.netbeans.org/newsletter/story.php?id=669</a>&gt; </pre><hr>This issue of NetBeans Weekly News was brought to you by Robert Demmer.<br>
The next editor will be Robert Demmer. (New volunteers are welcome!)<br>
Please send news contributions to <a href='mailto:nbnews_contrib@netbeans.org'>nbnews_contrib@netbeans.org</a></BODY>
</HTML>
