<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #206 - Aug 09, 2005</title>
<META NAME="description" CONTENT="Newsletter 2005-08-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-Aug 17:10 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #206 - Aug 09, 2005</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #206 - Aug 09, 2005<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2005-08-09.html'>https://netbeans.org/community/news/newsletter/2005-08-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>NetBeans IDE 4.1 Online Performance Survey
If you have been using NetBeans IDE 4.1, please take a minute right now to fill it
out. The survey is meant to gage your satisfaction with the performance of NetBeans
4.1 and to help the team focus their efforts in future releases.
&lt;<a href="http://performance.netbeans.org/survey/nb41-performance-survey.html">http://performance.netbeans.org/survey/nb41-performance-survey.html</a>&gt;

NetBeans Software Day Presentations
The attendees of the NetBeans Software Day 2005 were treated to a series of
insightful talks. If you missed them or you want to relive your favorite presentation,
then follow this below link.
&lt;<a href="https://netbeans.org/community/news/index.html#694">https://netbeans.org/community/news/index.html#694</a>&gt;

NetBeans Helps Philadelphia Live8 Attendees Speak Out Against Poverty
Sun Microsystems systems engineer Matthew Stevens used NetBeans 4.1 and Java SE 5.0 to
create the digital banner. NetBeans 4.1 was selected for its exclusive features for
Java Swing development and its proven ability to rapidly develop Java technology
applications in a team environment. Full story:
&lt;<a href="https://netbeans.org/community/news/index.html#691">https://netbeans.org/community/news/index.html#691</a>&gt;

Jalopy NetBeans Plug-in for Java 5 Available
There is good news for all who want to use Jalopy and Java 5 language features in
NetBeans: An updated version of the plugin which includes a development snapshot of
Jalopy 1.5_1 Jalopy's DEV_1_5 branch at sourceforge now is compatible with Java 5
and available as download from the contrib area. Thanks to the developers at:
&lt;<a href="http://jalopy.sourceforge.net/">http://jalopy.sourceforge.net/</a>&gt;.
For more information visit:
&lt;<a href="https://netbeans.org/servlets/ReadMsg?list=nbusers&msgNo=56385">https://netbeans.org/servlets/ReadMsg?list=nbusers&msgNo=56385</a>&gt;

Running the Amazon Web Services Sample Application in NetBeans
Amazon provides a rich web services interface for accessing their on-line content.
To help you understand how to use those web services, Amazon also provides a
comprehensive sample application which demonstrates how to use all of the exposed
operations. Taking that one step further, this article shows you how to modify,
build, run and debug the Amazon sample application from the NetBeans IDE. By doing
so you get all the NetBeans IDE benefits such as code completion, code hyper linking
and integrated Javadoc assistance. Also, the ability to debug the application,
single step though and monitor variables can go a long way to deepening your
understanding of how the Amazon web services operate.
&lt;<a href="https://netbeans.org/kb/archive/index.html">https://netbeans.org/kb/archive/index.html</a>&gt;

A Sound File Editor For NetBeans
This article by Rich Unger first appeared in the March 2005 issue of the Dr. Dobb's
Journal. The full article is readily available for those who are registered on their
website. If you are not registered you can do so for free.
&lt;<a href="http://www.ddj.com/documents/s=9570/ddj0503h/0503h.html?temp=tvs6ScWI9P">http://www.ddj.com/documents/s=9570/ddj0503h/0503h.html?temp=tvs6ScWI9P</a>&gt;

Friends, Romans, Countrymen...
Thanks to NetBeans IDE, creating the client (from the running web service, described
by the freely available WSDL file) is as simple as clicking through a wizard (and then
manually coding the JSP page). However, there are two tricky bits afterwards. Read more:
&lt;<a href="http://blogs.sun.com/roller/page/geertjan/20050803">http://blogs.sun.com/roller/page/geertjan/20050803</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>