<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #261 - Oct 09, 2006</title>
<META NAME="description" CONTENT="Newsletter 2006-10-09">

<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# 09-Oct 16:11 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #261 - Oct 09, 2006</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #261 - Oct 09, 2006<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2006-10-09.html'>https://netbeans.org/community/news/newsletter/2006-10-09.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>Happy Birthday NetBeans!
October 26th is NetBeans' eighth birthday! We are celebrating for the
whole month of October and YOU get the presents! Join us for stories
about the history of NetBeans, quizzes, and prizes, including an Apple
iPod! Enjoy the party!
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=823">http://services.netbeans.org/newsletter/story.php?id=823</a>&gt;

NetBeans 5.5 Release Candidates Now Available
The first release candidate for the NetBeans IDE 5.5 is now available.
NetBeans 5.5 supports the Java EE 5 platform, and the Java Persistence,
EJB 3 and JAX-WS 2.0 specifications. Also available are updated
versions of the Profiler and Mobility Pack.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=822">http://services.netbeans.org/newsletter/story.php?id=822</a>&gt;

What Do You Think of NetBeans 5.5 RC?
Don't hesitate and use this unique opportunity to rate the first
Release Candidate build of NetBeans 5.5. Do you agree it's ready for
release? Let us know here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=826">http://services.netbeans.org/newsletter/story.php?id=826</a>&gt;

When You Need Dedicated Professional Support
Sun Developer Services is now offering NetBeans users 25% OFF the
normal price for the 1-Year Standard, Sun Software Service Plan
(telephone support) for NetBeans. Save over $200.00 per developer.
Use Promo Code: "netbeans". Offer Expires: October 31, 2006.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=824">http://services.netbeans.org/newsletter/story.php?id=824</a>&gt;

Why NetBeans?
Roumen has a new flash presentation where he talks about ten reasons
that he thinks NetBeans is a great IDE. The presentation is divided
into two parts and you can view the first five reasons now. It includes
flash demos of the Matisse GUI builder, Ant-based project system,
NetBeans Profiler and NetBeans Platform:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=825">http://services.netbeans.org/newsletter/story.php?id=825</a>&gt;

Results from NetBeans Debugger Survey
The final results from the recent survey focused on debugging
capabilities of the NetBeans IDE are now available. If you are curious
how we scored, take a look at the results yourself.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=827">http://services.netbeans.org/newsletter/story.php?id=827</a>&gt;

Subversion Support in NetBeans IDE
NetBeans IDE now has a module available on the Update Center that
provides tight integration with versions 1.3 and 1.4 of the Subversion
version control system. The workflow is very similar to that of the
IDE's CVS integration. This guide shows you the things you need to do
get Subversion working with your sources in the IDE and provides a
quick overview of the most important features.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=828">http://services.netbeans.org/newsletter/story.php?id=828</a>&gt;

Visual Library 2.0 Tutorial (Part 1)
In this tutorial, you will learn how to use the main features provided
by the NetBeans Visual Library API. The Visual Library API is a
visualization API, useful in the context of, for example, modeling and
graphs.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=829">http://services.netbeans.org/newsletter/story.php?id=829</a>&gt;

Introduction to JMunit and J2MEUnit Testing
This article introduces you to JUnit testing using Java ME JUnit
frameworks; where to find them, how to test with them, and how to use
them to build better quality software. The NetBeans Mobility Pack 5.5
will ship with both JMUnit and J2MEUnit testing tools integrated. (on
devX.com)
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=830">http://services.netbeans.org/newsletter/story.php?id=830</a>&gt;

Hands on: Building Java apps with Swing
There is a new article available on whapc.co.uk. Author Tim Anderson
writes, "The NetBeans GUI designer is a breakthrough for Java. You can
put together a desktop user interface easily without losing the benefit
of layout management, smooth resizing and cross-platform capability."
Here is a step-by-step guide to creating the famous to-do list example
with Netbeans 5.x.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=831">http://services.netbeans.org/newsletter/story.php?id=831</a>&gt;

Cooking with the NetBeans Platform
There is a wonderful collection of information on building plug-ins
written by Antonio who is also working on a NetBeans Scheme editor.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=832">http://services.netbeans.org/newsletter/story.php?id=832</a>&gt;

Getting the Most from the NetBeans IDE BlueJ Edition
The NetBeans IDE BlueJ edition is a great tool for students making the
transition to a professional integrated development environment. By
default, though, some of its features are turned off.  Gregg Sporar
shows how to enable code completion in this blog entry.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=833">http://services.netbeans.org/newsletter/story.php?id=833</a>&gt;

NBJHAT Module Uploaded
The prolific Sandip Chitale is back with another really cool NetBeans
module: support for Object Query Language (OQL), which can be used to
investigate the contents of a heap snapshot. Read all about it here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=834">http://services.netbeans.org/newsletter/story.php?id=834</a>&gt;

Make Your Own Hyperlinks
Hyperlinks are cool -- navigating through your code as if you're
browsing the web is one of the nicer features of NetBeans IDE. But did
you know that you can make your own hyperlinks? If you'd like to be
able to navigate from one piece of code to another, or from one file to
another, you need to read the brand new hyperlink tutorial.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=835">http://services.netbeans.org/newsletter/story.php?id=835</a>&gt;

3 Lines of Code to Integrate Google Code Search in NetBeans IDE
Geertjan writes, "Now that the new Google Code Search has been
announced (and to celebrate the one year anniversary of Ludo's Google
toolbar), its time for something else that's quite special. And here it
is... you can integrate Google Code Search in NetBeans IDE in only
three lines of code." Read more...
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=836">http://services.netbeans.org/newsletter/story.php?id=836</a>&gt;

NetBeans Mac Customization
Marc Liyanage writes, "For a new project which focuses more on client-
side Swing GUI than server-side web technologies, I am using NetBeans
5.5 with its Matisse GUI builder, and after working with it for a while
I am impressed by what I see." If you are using NetBeans on a Mac be
sure to take a look.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=837">http://services.netbeans.org/newsletter/story.php?id=837</a>&gt;

JMeter Available on Development Update Center
JMeter integration module was moved from NetBeans Profiler 6.0 to
NetBeans 6.0 development update center. This will allow users to use
JMeter load generator without NetBeans Profiler. This also means that
NetBeans Profiler 6.0 Milestone 4 will no longer contain JMeter
integration module and that the profiler download size will drop to 8.5M.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=838">http://services.netbeans.org/newsletter/story.php?id=838</a>&gt;

Developing for Japanese Phones in NetBeans
A Blogger writes, "Developing for J2ME applications for the primary
carriers in Japan can be a living nightmare. There are three main
mobile phone carriers in Japan: au/KDDI, Voda Phone (now Softbank) and
NttDocomo. Each of these providers have a midraid of phones of all
sizes and capabilities and  each week there are new ones. Here in Japan
people change phones as often as their underwear..."
Part  I - &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=839">http://services.netbeans.org/newsletter/story.php?id=839</a>&gt;
Part II - &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=840">http://services.netbeans.org/newsletter/story.php?id=840</a>&gt;

NetBeans WorldTour - Buenos Aires, Argentina - October 23, 2006
All aboard! Next stop on the NetBeans WorldTour, Buenos Aires. Space
is limited so reserve your spot today!
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=842">http://services.netbeans.org/newsletter/story.php?id=842</a>&gt; </pre><hr>This issue of NetBeans Weekly News was brought to you by Robbert Demmer.<br>
The next editor will be Robbert 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>