<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #208 - Aug 25, 2005</title>
<META NAME="description" CONTENT="Newsletter 2005-08-25">

<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# 25-Aug 11:10 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #208 - Aug 25, 2005</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #208 - Aug 25, 2005<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2005-08-25.html'>https://netbeans.org/community/news/newsletter/2005-08-25.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 Governance Board Elections - Last Chance to Vote
The voting period closes at midnight, Thursday, August 25th in the last time zone and
the results will follow the next day. Contribute to the NetBeans community by casting
your vote right now!
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=16">http://services.netbeans.org/newsletter/story.php?id=16</a>&gt;

NetBeans worldTour - First Stop Beijing China
On Monday afternoon, Sept 12, the day before Java China the NetBeans Software Team is
hosting a FREE companion event at the: Nikko New Centry Hotel. Learn from the experts
about what's happeningwith the original, opensource Java development tool, NetBeans IDE.
James Gosling, the father of Java, will keynote the event. There will also be "NetBeans
World Tour T-shirts" given to the first 300 registrants.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=26">http://services.netbeans.org/newsletter/story.php?id=26</a>&gt;

Hotfixes For Mobility Pack 4.1
The NetBeans Mobility team is proud to announce the availibility of the hotfix for
Mobility Pack 4.1 on Hotfix Update Center. The hotfix contains fixes for these problems:
* 6298075 Wrong link from Help > J2ME MIDP Development Quick
* 6289855 ClassPath isn't updated correctly after configuration switch
The installers available from the download pages of netBeans.org have been updated as
well which means if you don't see any updates you probably have an updated version
already. For more information you can visit Lukas Hasik's Weblog.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=20">http://services.netbeans.org/newsletter/story.php?id=20</a>&gt;

Building a J2ME Application in NetBeans 4.1
Dick Wall has has just posted an article on developer.com about writing J2ME
applications using NetBeans 4.1 and the Mobility Pack.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=19">http://services.netbeans.org/newsletter/story.php?id=19</a>&gt;

NetBeans Collaboration Project: Collablets and Code-Aware Tools for Sharing
Charles Ditzel has put together a nice blog entry where he takes a look at the
collaboration project. If you are unfamiliar with this project or would like to learn
more about it then Charles's blog is a great place to start:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=27">http://services.netbeans.org/newsletter/story.php?id=27</a>&gt;

Setting Up a Local CVS in NetBeans 4.1
Dionisis Dimakopoulos of London has put together a nice tutorial explaining the steps
to setup local CVS in NetBeans. Here is the link to his blog entry and the tutorial.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=23">http://services.netbeans.org/newsletter/story.php?id=23</a>&gt;

Amazon Web Services Meets the Amazon Rain Forest
Brian Leonard is working with an Amazon Evangelist in an effort to collaborate on
preparing some examples on using SOAP, Java and NetBeans to work with the new some of
the new web services that are on their way from Amazon. Brian also provides a look at
some of the countries that are expected to be a stop on the netBeans worldTour.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=25">http://services.netbeans.org/newsletter/story.php?id=25</a>&gt;

NetBeans IDE & Web Services
NetBeans IDE 4.1 provides wizards for generating files and code for the creation and
consumption of web services. However, you can /only/ do so in web applications and EJB
modules. In the next release there'll be a number of really significant enhancements
in this area -- notably that you'll be able to consume web services in Java
applications and also directly from a JSP page (i.e., not just from a servlet). Both
these enhancements are already present in daily NetBeans IDE Dev builds and Geertjan
has blogged about them here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=17">http://services.netbeans.org/newsletter/story.php?id=17</a>&gt;
and here
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=18">http://services.netbeans.org/newsletter/story.php?id=18</a>&gt;.

Built on NetBeans: Sun Java Studio Enterprise 8 EA Now Available
Based on the acclaimed NetBeans 4.1 platform, this set of tools provides complete
support for enterprise software development based on the J2EE 1.4 platform, from simple
Web applications to portlet components to sophisticated enterprise applications and Web
services.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=22">http://services.netbeans.org/newsletter/story.php?id=22</a>&gt;

Vote for NetBeans in the Software Development 2005 Readers' Choice Awards
NetBeans has once again been nominated for multiple awards. Please take a few minutes
and cast your vote.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=21">http://services.netbeans.org/newsletter/story.php?id=21</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>