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

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

<h1>NetBeans Weekly News<br>Issue #249 - Jul 17, 2006</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #249 - Jul 17, 2006<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2006-07-17.html'>https://netbeans.org/community/news/newsletter/2006-07-17.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 6.0 M1 Build Released
NetBeans has announced the release of the first milestone build for
NetBeans IDE 6.0 and NetBeans Profiler 6.0 Milestone builds will
replace the present Q-Build system and are designed to provide a fuller
set of features, more stabilization time for new features introduced in
the trunk, and more time for feedback from the community. For more
information including a link to the new and noteworthy features of 6.0
M1 continue here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=625">http://services.netbeans.org/newsletter/story.php?id=625</a>&gt;

Ready, Set, Profile
Profiling Points, an innovative approach for controlling the NetBeans
Profiler, is now available in Milestone 1 of NetBeans Profiler 6.0.
Watch Gregg Sporar's flash demo about how to profile precise points of
execution and how to measure execution time.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=626">http://services.netbeans.org/newsletter/story.php?id=626</a>&gt;

Still Time to Win an iPod Nano
You can win one of four Apple iPod Nanos (2GB) just for sharing your
opinions. To get started simply download the NetBeans Enterprise Pack
5.5 Early Access, try it out, and submit an evaluation form. Four
submissions will be chosen at random through Friday, July 21.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=629">http://services.netbeans.org/newsletter/story.php?id=629</a>&gt;

10-week Free AJAX Programming - Online Course Begins Aug 4th, 2006
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=627">http://services.netbeans.org/newsletter/story.php?id=627</a>&gt;

New Integration of Java EE 5 BluePrints with NetBeans 5.5
The Java EE 5 BluePrints Solutions Catalog will be available as part of
NetBeans 5.5 Beta 2. This supplements the J2EE 1.4 BluePrints Solutions
Catalog which is already a standard part of NetBeans 5. The BluePrints
Solutions catalog are part of the Help menu. The BluePrints projects
can be created from the New Project Wizard. There are three new
categories in the Java EE 5 catalog:
 * AJAX development with Java EE
 * Guidelines for using the new Java EE 5 Persistence API.
 * AJAX components: components ready to be used by your application.
More details on the BluePrints Solutions Catalog and a stand-alone
version can be found here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=628">http://services.netbeans.org/newsletter/story.php?id=628</a>&gt;

Applets and JAX-WS Web Services
JAX-WS is the new approach to web services in Java EE 5. A lot has
already been said about it, how it radically simplifies web service
development by replacing deployment descriptors with annotations and
removing a lot of the more complex files and boilerplate code. However,
did you know that you can even integrate JAX-WS within applets? And
that, with NetBeans IDE 5.5, you need provide only ONE line of Java
code to create a very powerful, robust, JAX-WS client? All the rest is
done by NetBeans. Read about it in Geertjan's blog:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=630">http://services.netbeans.org/newsletter/story.php?id=630</a>&gt;

How Secure Is Your Web Service?
In NetBeans IDE 5.5, a major focus is on security. In the past, you had
to configure security yourself, by hand. In NetBeans IDE 5.5, the IDE
helps you out. A full end to end scenario, including the impact of the
WSIT functionality (i.e., the "Tango" functionality for
interoperability with Microsoft's .Net web services) is provided here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=631">http://services.netbeans.org/newsletter/story.php?id=631</a>&gt;
Don't miss this, especially if you like looking at screenshots!

Surround With... Sandip!
Sandip's very popular Code Template Tools module has been updated
again. You can now surround with even better than before! Check it out
here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=636">http://services.netbeans.org/newsletter/story.php?id=636</a>&gt;

Write Scripts in NetBeans IDE!
The Sun technology evangelist Chuk Munn Lee, who earlier provided a
module that integrates Star Office into NetBeans IDE, is working on a
script module. You can actually already download it and see what it
does for you. Go here to his blog for details:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=632">http://services.netbeans.org/newsletter/story.php?id=632</a>&gt;

New NetBeans-Based Open Source Project
You too can generate MIDI files! And compose music by drag-and-dropping!
And you can now even contribute to the code. Based on the JFugue API
(&lt;<a href="http://www.jfugue.org),">http://www.jfugue.org),</a>&gt; the JFugue Music NotePad provides a very
simple interface for generating, playing, and saving JFugue music
strings. Check it out on dev.java.net:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=634">http://services.netbeans.org/newsletter/story.php?id=634</a>&gt;

Inversion of Control and NetBeans TopComponents
"I am fooling around with how to best decouple our NetBeans
TopComponents with connections to services we have written," writes Bo,
in his blog. "I decided to go with an injection pattern for now using
annotations." Read all about it here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=635">http://services.netbeans.org/newsletter/story.php?id=635</a>&gt;

VIM and NetBeans IDE?
Many users have asked for VI key binding support in NetBeans IDE. Did
you know that there's a discussion on the nbdev mailing list, with
several people working on this project, throwing ideas around? Click
here to follow the discussion:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=633">http://services.netbeans.org/newsletter/story.php?id=633</a>&gt;

PLANET NetBeans en ESPANOL!
Planet NetBeans now has a feed in Spanish. More information:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=637">http://services.netbeans.org/newsletter/story.php?id=637</a>&gt;

Transcript and Questions of the NB Community Quiz #1
Jirka Kovalsky has published the transcript of the NetBeans Community
Quiz. Both the questions and correct answers are available in case you
couldn't join us and want to take the quiz offline.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=638">http://services.netbeans.org/newsletter/story.php?id=638</a>&gt;

Interview with a NetBeans Contributor
Edson Richter works for a start-up company and contributed
significantly to the NetCAT 5.5 program. "If I was a carpenter,
NetBeans would be my hammer!" he says, "If I can contribute to getting
a better hammer, my work will be more efficient and bring better
results."
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=639">http://services.netbeans.org/newsletter/story.php?id=639</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>