<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #218 - Nov 16, 2005</title>
<META NAME="description" CONTENT="Newsletter 2005-11-16">

<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# 16-Nov 19:10 CET                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #218 - Nov 16, 2005</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #218 - Nov 16, 2005<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2005-11-16.html'>https://netbeans.org/community/news/newsletter/2005-11-16.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>NetBeans 5.0 Beta 2 and Updated Add-ons Now available
Today the netBeans.org open source project announced the availability of
NetBeans IDE 5.0 Beta 2, NetBeans Platform 5.0 Beta 2, NetBeans Mobility Pack
5.0 Beta 2 and NetBeans Profiler Milestone 10. Since the Beta 1 release,
approximately 1880 bugs have been fixed and Emacs key bindings are now
implemented. There has also been a change in the final release date of NetBeans
5.0 which has been moved from December 2005 to the end of January 2006. For
complete details visit:
&lt;<a href="https://netbeans.org/community/news/index.html#749">https://netbeans.org/community/news/index.html#749</a>&gt;

NetBeans RCP Project - Multitrode Pty Ltd | Kcc Tech Pty Ltd
NetBeans Evangelist Tim Boudreau, Paul Gibson of MultiTrode Pty Ltd and Chris
Palmer of Kcc Tech Pty Ltd discuss how MultiTrode used the NetBeans Rich Client
Platform to build the highly configurable MultiSmart system of collection
modules.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=129">http://services.netbeans.org/newsletter/story.php?id=129</a>&gt;

Struts in NetBeans IDE 5.0
What's it like to use Struts in NetBeans IDE 5.0? Surprisingly easy. Whether
you're a long-time Struts user or a complete beginner, Geertjan's 3-part
NetBeans-Struts tutorial was made for you. Read his blog for details:
Part I - &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=130,">http://services.netbeans.org/newsletter/story.php?id=130,</a>&gt;
Part II - &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=131,">http://services.netbeans.org/newsletter/story.php?id=131,</a>&gt;
Part III - &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=132">http://services.netbeans.org/newsletter/story.php?id=132</a>&gt;

Nicer Looking NetBeans Deadlocks on Mustang
It's worth to try out NetBeans on latest JDK6 (aka Mustang) builds since there
were some nice improvements and bugfixes you'll notice especially if you use
Linux:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=133">http://services.netbeans.org/newsletter/story.php?id=133</a>&gt;

Pavel Buzek on Java Enterprise Edition 5
Follow Pavel Buzek's Weblog to get news about Java EE 5 support that is being
prepared for the next version of NetBeans. The first few entries give you a
quick introduction to the new Java Persistence API and two demos in a Java EE
5 preview daily build with a daily build of GlassFish Open Source Java EE 5
Application Server.
Part I - &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=134">http://services.netbeans.org/newsletter/story.php?id=134</a>&gt;
Part II - &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=135">http://services.netbeans.org/newsletter/story.php?id=135</a>&gt;
Part III - &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=136">http://services.netbeans.org/newsletter/story.php?id=136</a>&gt;

Two Tales From Tokyo
Gregg Sporar describes the attention that NetBeans received last week during
JavaOne Tokyo
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=137">http://services.netbeans.org/newsletter/story.php?id=137</a>&gt;
and John O'Conner describes the most interesting new features that he saw at
NetBeans Day Tokyo.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=138">http://services.netbeans.org/newsletter/story.php?id=138</a>&gt;

JavaOne Call for Papers Now Open
NetBeans is seeking proposals for sessions (technical talks and BOFs) for the
2006 JavaOne Developer Conference. The JavaOne Conference is your opportunity
to reach this specialized community by educating and sharing your experience
and expertise with Java technology. Please review the guidelines and
instructions to submit your proposals. For more information, see:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=139">http://services.netbeans.org/newsletter/story.php?id=139</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>