<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #191 - Feb 17, 2005</title>
<META NAME="description" CONTENT="Newsletter 2005-02-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-Feb 10:10 CET                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #191 - Feb 17, 2005</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #191 - Feb 17, 2005<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2005-02-17.html'>https://netbeans.org/community/news/newsletter/2005-02-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>NetBeans IDE Is Open Source Tool of the Year 2005!
Java cleans up at the 2005 Developer.com Product of the Year awards
winning with Java related products picking up 8 or the 10 awards.
NetBeans IDE was a clear winner taking over 60% of the votes in it's
category. For full details cruise on over to NetBeans news entry:
&lt;<a href="https://netbeans.org/community/news/index.html#577">https://netbeans.org/community/news/index.html#577</a>&gt;

NetBeans Profiler Beta (Milestone 5) Released
The Profiler is an add-on to NetBeans 4.0 or 4.1 and adds a fully featured
CPU, memory and threads profiling capabilities, tightly integrated into the
IDE workflow. New in Milestone 5:
* Remote profiling: this long-awaited feature allows you to profile
applications running on machines different from the one that 
runs the Profiler.
* Greatly improved Attachment UI and Jps Technology utilization. 
Now it's much easier to choose attachment method and the VM you 
want to attach.
* Integration Wizards for most popular Application Servers.
* More detailed and much better structured online documentation.
* Smaller improvements and a number of bugs fixed.
&lt;<a href="https://netbeans.org/servlets/ReadMsg?msgId=907283&listName=nbusers">https://netbeans.org/servlets/ReadMsg?msgId=907283&listName=nbusers</a>&gt;

NetCAT 4.1 Program Launched
NetBeans IDE 4.1 is entering its stabilization phase. In order to make
this another successful release, we have decided to run the NetBeans
Community Acceptance Testing Program again. Like for the last release,
its purpose is to receive feedback on the Beta and RC builds. If you are
interested in details, click the following URL:
&lt;<a href="http://qa.netbeans.org/processes/cat/41/index.html">http://qa.netbeans.org/processes/cat/41/index.html</a>&gt;

iPod Competition Winner
Picked from an overwhelming selection Rich Unger and his RSS Feeder
submission was declared the winner. Congratulations Rich! The two $100
shopping awards will be announced this week. We wish to thank all of the
people (a full list to be published next week) who partook in the contest.

Community Voting for *Another iPod*
It's Your Turn to Choose Another Winner! Because we received so many quality
submissions we are going to * Give out a second iPod to another competition
entrant *! We're asking you, the NetBeans Community to choose a second grand
prize winner who will receive an additional iPod Photo! More info:
&lt;<a href="https://netbeans.org/competition/win-with-netbeans.html">https://netbeans.org/competition/win-with-netbeans.html</a>&gt;

Using NetBeans IDE 4.0 Guide Available in Simplified Chinese and Japanese
Japanese:
&lt;<a href="https://netbeans.org/kb/archive/index.html">https://netbeans.org/kb/archive/index.html</a>&gt;
Simplified Chinese:
&lt;<a href="https://netbeans.org/kb/archive/index.html">https://netbeans.org/kb/archive/index.html</a>&gt;

NetBeans IDE 4.1 Keyboard Shortcuts
NetBeans IDE 4.1 Keyboard Shortcuts card is available in the IDE (under the
Help menu). Alternatively, go here:
&lt;<a href="http://usersguide.netbeans.org/shortcuts41.pdf">http://usersguide.netbeans.org/shortcuts41.pdf</a>&gt;

NetBeans Default File System Viewer
Nathan has written an module to bring back the Default Filesystem Viewer for
NetBeans 4.0 and 4.1. This displays the NetBeans default file system via a
new menu item, displays a top component that shows the NetBeans default file
system in a tree view.
&lt;<a href="http://plugins.netbeans.org/">http://plugins.netbeans.org/</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>
