<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #235 - Apr 12, 2006</title>
<META NAME="description" CONTENT="Newsletter 2006-04-12">

<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# 12-Apr 17:10 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #235 - Apr 12, 2006</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #235 - Apr 12, 2006<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2006-04-12.html'>https://netbeans.org/community/news/newsletter/2006-04-12.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>Register Now or Risk Missing Out - Free Prizes Announced
The 3rd annual NetBeans Software Day at the 2006 JavaOne Conference is
drawing closer as more speakers are being included. Take part in the
sessions, networking and the fun that is NetBeans Day. Get there early
to receive one of the 500 USB sticks and more. The event costs as much
as NetBeans. Nothing! Reserve your spot today...
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=388">http://services.netbeans.org/newsletter/story.php?id=388</a>&gt;

NetBeans Software Day Moscow
Join the NetBeans Team at NetBeans Software Day in Moscow April 19th.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=389">http://services.netbeans.org/newsletter/story.php?id=389</a>&gt;

Sun Microsystems Announces Open Source Enterprise Development Tool Project
Sun have announced plans to open source major elements of the Sun Java
Studio Enterprise as a project on NetBeans.org. This new project, which
will be released as the NetBeans Enterprise Pack enables developers to
customize and contribute to Enterprise-Class UML, XML, and SOA Features.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=390">http://services.netbeans.org/newsletter/story.php?id=390</a>&gt;

An Apple For Your Thoughts!
You can win one of six Apple iPod Nanos (2GB) just for sharing your
opinions on NetBeans Enterprise Pack 5.5 Preview.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=396">http://services.netbeans.org/newsletter/story.php?id=396</a>&gt;

NetBeans IDE and Motorola J2ME SDK
This technical article by the Motorola MotoCoder team shows how to
develop for Motorola devices. It concludes "NetBeans enables developers
to set up a UI-based application very quickly. It is especially useful
for newcomers to J2ME development." (PDF)
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=391">http://services.netbeans.org/newsletter/story.php?id=391</a>&gt;

Profiling NetBeans Plug-in Modules
Maros Sandor shows you how to set up a NetBeans plug-in module project
in the IDE so that you can use Profiler to analyze the plug-in
performance.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=392">http://services.netbeans.org/newsletter/story.php?id=392</a>&gt;

NetBeans 5.0 Quick Start Guide for Web Applications II
In this tutorial Sang Shin takes you through the basics of using
NetBeans IDE 5.0 by using the HelloWeb Web application you created
during the first NetBeans IDE 5.0 Quickstart Guide for Web Applications.
This document is designed to get you going as quickly as possible.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=393">http://services.netbeans.org/newsletter/story.php?id=393</a>&gt;

Tech Tip: How to Fix the J2ME Wireless Toolkit After You Re-Install the JDK
If you manually install a version of the J2ME Wireless Toolkit on your
system, the installation can break if you upgrade your Java Development
Kit (JDK) or reinstall the JDK in a new directory. This occurs because
the JDK installation directory is hard-coded in the Wireless Toolkit's
scripts. This is how to fix it easily.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=394">http://services.netbeans.org/newsletter/story.php?id=394</a>&gt;

My Experience of Developing NetBeans 5.0 Plug-in Module
"Before making this module for NetBeans, I know almost nothing about
NetBeans. But as soon as I started to touch NetBeans, I found NetBeans
has very simple architecture and Super-Easy." Read more about the
development experience of creating a NetBeans' version of CROSSFIRE O/R.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=395">http://services.netbeans.org/newsletter/story.php?id=395</a>&gt;

Reasons for Switching to NetBeans
7 more reasons to get your friends & colleagues converted to NetBeans.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=401">http://services.netbeans.org/newsletter/story.php?id=401</a>&gt;

JAX-WS, Glassfish, Wicket, NetBeans IDE 5.5
JAX-WS in NetBeans IDE 5.5 is going to be very powerful. It will
transform your experience of Java web services. As part of Java EE 5,
the aim of JAX-WS is to simplify the development process as far as
possible. Geertjan has blogged about his experiences with JAX-WS in
NetBeans IDE 5.5 development builds, such as here, where he praises
Glassfish to the skies. He also mentions the usefulness of the Wicket
web framework. Read about it here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=397">http://services.netbeans.org/newsletter/story.php?id=397</a>&gt;

Flash Demo of Subversion Support in NetBeans
Roumen created yet another demo, this time showing the new subversion
support in NetBeans which is currently being developed. Watch the demo
and let us know what you think...
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=398">http://services.netbeans.org/newsletter/story.php?id=398</a>&gt;

Revived: AspectJ Module for NetBeans
This module project is a fork of the AspectJ Development Environment
(AJDE) module extension to NetBeans project hosted at SourceForge.net.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=399">http://services.netbeans.org/newsletter/story.php?id=399</a>&gt;

NetBeans Community Chat Transcript
Jirka Kovalsky, NetCAT program coordinator organized the 1st NetBeans
Community Chat. The transcript of the hour long chat is now available
and definitely worth the read. Be sure to check it out and take part
in the next one.
http://services.netbeans.org/newsletter/story.php?id=400</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>