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

<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# 30-Aug 18:14 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #209 - Aug 30, 2005</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #209 - Aug 30, 2005<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2005-08-30.html'>https://netbeans.org/community/news/newsletter/2005-08-30.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 - The Results Are In
Vincent Brabant and Rich Unger were elected to serve the next six months as the community
elected members of the NetBeans Governance Board along with the Sun appointed Tim
Boudreau. Full announcement:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=29">http://services.netbeans.org/newsletter/story.php?id=29</a>&gt;

Flash Demo of the New NetBeans CVS Support
Support for CVS has been completely redone in the upcoming release of NetBeans. To get a
look at just a few of the cool new features, check out this Flash demo that Roman Strobl
has prepared.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=30">http://services.netbeans.org/newsletter/story.php?id=30</a>&gt;

Tech Tip: Remove Duplicate and Unused Entries from Your Property Files
This Tech Tip shows you how to optimize your code by removing duplicate or unused
Bundle.properties entries from your project. It demonstrates the use of the UNIX command
line as well as the Bundlizer tool for identifying possibly 'stale' keys.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=31">http://services.netbeans.org/newsletter/story.php?id=31</a>&gt;

NetBeans.next - Call It 4.2 or 5.0?
This thread has certainly grabbed the attention of our community. From purest version
numbering through marketing judgement there have been many takes on this topic. One thing
is for sure. The next NetBeans release is looking more promising than ever and you can
already test much of what is expected in the release. You can  view the whole thread here
and share your opinion:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=44">http://services.netbeans.org/newsletter/story.php?id=44</a>&gt;
After you have reviewed the thread you can even cast a vote here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=33">http://services.netbeans.org/newsletter/story.php?id=33</a>&gt;

Hot Hot Hot NetBeans Plug-in Developments
What follows is so hot off the presses that it's all still sizzling... Geertjan provides
us with yet another gem on his blog:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=34">http://services.netbeans.org/newsletter/story.php?id=34</a>&gt;

E-commerce Made Easy: eBay and the NetBeans IDE
At the eBay Developers Conference, NetBeans evangelist Brian Leonard presented the latest
on the NetBeans IDE and how it helps speed and simplify building applications for the
eBay platform.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=35">http://services.netbeans.org/newsletter/story.php?id=35</a>&gt;

Tutorial - Using Apache Axis in NetBeans 5.0
A blogger did not want to have to install Sun Java Application Server on their computer
only for web services. After searching around the Internet the gathered resources were
used to put together a short tutorial on how to set up NetBeans projects to use Axis for
web services.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=36">http://services.netbeans.org/newsletter/story.php?id=36</a>&gt;

How We Do Usability Studies of NetBeans
Roman has a very nice blog entry where he shares some of his insights on a usability
study that took place over a two day period. It involved the usability testing of the
development version of NetBeans with emphasis it's editor:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=37">http://services.netbeans.org/newsletter/story.php?id=37</a>&gt;

Philosophical Question About Frequent Saving of Files
Is it OK for a program/IDE to automatically/frequently save edited docs? This is a
conversation that is taking place on the nbui mailing list and starts here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=38">http://services.netbeans.org/newsletter/story.php?id=38</a>&gt;

Tip of the Day Behaviour
Gregor wants to have a Tip Of the Day Behaviour in his module and is using the latest dev
build. You can pick up a few tips for a tip of the day behaviour from this openide-dev
thread:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=43">http://services.netbeans.org/newsletter/story.php?id=43</a>&gt;

XTT v5.2 Thin Client Java Web Apps
XTT v5.2 now support NetBeans 4.1. You can find a link to their expert presentation on
JavaLobby, download the XTT StockTrader Demo and get more information here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=39">http://services.netbeans.org/newsletter/story.php?id=39</a>&gt;

Fortune Module
Gregor Kovac has developed a Fortune module that looks in user's HOME/.fortune directory
for fortune files that works with NetBeans 4.1 and the upcoming release. For development
he uses JDK 5.0 and NetBeans 4.1 and 5.0 daily builds. Download:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=40">http://services.netbeans.org/newsletter/story.php?id=40</a>&gt;

Humai Trader Module
Hongwei Deng has put together the Humai Trader Project on java.net. Humai Trader is a free,
open source stock technical analysis tool building on pure java. It will also be a
platform for custom indicators and charts. The main interest will be W.D. Gann's approach.
For more information and a link to the download head over to:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=42">http://services.netbeans.org/newsletter/story.php?id=42</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>