<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #196 - Apr 19, 2005</title>
<META NAME="description" CONTENT="Newsletter 2005-04-19">

<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# 19-Apr 18:12 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #196 - Apr 19, 2005</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #196 - Apr 19, 2005<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2005-04-19.html'>https://netbeans.org/community/news/newsletter/2005-04-19.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 Software Day Registration Opens
On Sunday afternoon, June 26, the day before the JavaOne 2005 Conference,
the NetBeans team is hosting a FREE companion event at the Argent Hotel
near Moscone Center. NetBeans Day features such distinguished speakers as:
James Gosling, Graham Hamilton, Bill Shannon, Bob Brewin, and Tim Bray to
name a few. Get on board and register today.
&lt;<a href="https://netbeans.org/community/articles/javaone/2005/nb-day.html">https://netbeans.org/community/articles/javaone/2005/nb-day.html</a>&gt;

NetBeans IDE 4.1 Release Candidate Available This Week
The NetBeans IDE 4.1 Release Candidate 1 will be available for download this
week. Watch NetBeans.org for the latest details concerning the release and be
sure to take the latest version of the IDE for a spin and test it out. Your
feedback is always appreciated and welcomed. So bookmark that URL and check
back later in the week.
&lt;<a href="https://netbeans.org/downloads/index.html">https://netbeans.org/downloads/index.html</a>&gt;

NetBeans Profiler (Milestone 6) Ready for Download
New in Milestone 6 of the NetBeans Profiler:
* Support for Tiger (5.0) and Mustang (6.0) JDKs - the profiler supports
  profiling in Mustang builds now.  The Mustang builds can be downloaded from
  &lt;<a href="https://mustang.dev.java.net">https://mustang.dev.java.net</a>&gt;.  JDK 5.0 will be supported starting with the
  5.0_04 release (planned to be released around the end of June)
* New profiler control panel
* Significant performance and UI responsiveness enhancements, including even
  smaller profiling overhead in Monitoring mode
* New installer that simplifies the installation process
* (As always) Large number of bugfixes
&lt;<a href="http://profiler.netbeans.org">http://profiler.netbeans.org</a>&gt;

NetBeans IDE 4.0 Profiler Tutorial
Gregg Sporar has updated this document to work with NetBeans Profiler
Milestone 6. If you are new to profiling or looking for some extra assistance
get off to a running start.
&lt;<a href="https://netbeans.org/kb/articles/nb-profiler-tutor-6.html">https://netbeans.org/kb/articles/nb-profiler-tutor-6.html</a>&gt;

Online Survey: Help Shape the Future of the NetBeans Profiler Project
There is still time to help the NetBeans Profiler team define the projects
future direction. Whether you currently using the NetBeans Profiler, some
other profiling tool, or do not use profiling at all, it will be very
useful to hear from you! Please take a minute now to complete the survey:
&lt;<a href="http://services.netbeans.org/profiler_survey.php">http://services.netbeans.org/profiler_survey.php</a>&gt;

Remote Debugging from NetBeans IDE 4.1 to JBoss
This entry was provided by a new and popular NetBeans blogger Geertjan.
"Yes, NetBeans IDE can follow you everywhere. The only thing it can't do is
your laundry (believe me, I've tried). So even though you've deployed to
servers that the IDE doesn't "officially" support, such as JBoss (or Tomcat
4 or JRun4), not only can you start them, stop them, and deploy to them from
within the IDE (as explained in previous blog entries), but you can also use
the NetBeans IDE debugger to step through the source code on the server."
&lt;<a href="http://blogs.sun.com/roller/page/geertjan/20050418">http://blogs.sun.com/roller/page/geertjan/20050418</a>&gt;

New NetBeans Contest?
Vincent Brabant writes, By Reading javarss, I discovered the following
&lt;<a href="http://coding.mu/wp-content/mvcdemo.htm">http://coding.mu/wp-content/mvcdemo.htm</a>&gt;. That nice presentation has been
done by using the utility &lt;<a href="http://www.debugmode.com/wink/">http://www.debugmode.com/wink/</a>&gt;. That utility
is "Distributed as freeware *for business or personal use*." That give me
the following idea: Why not ask, for the next contest, to create small
Flash presentations of our favorite tips. By doing that, we will have nice
tutorials. If you want some examples of what I already did with that tool,
by paying with it during two hours, please let me know, and I will send
you by mail. (But be sure you have DSL connection). To view this thread and
respond go to:
&lt;<a href="https://netbeans.org/servlets/ReadMsg?list=nbmarketing&msgNo=519">https://netbeans.org/servlets/ReadMsg?list=nbmarketing&msgNo=519</a>&gt;
To check out a screenshot of a presentation by Vincent visit:
&lt;<a href="http://weblogs.java.net/blog/vbrabant/archive/2005/04/wink_is_great_1.html">http://weblogs.java.net/blog/vbrabant/archive/2005/04/wink_is_great_1.html</a>&gt;

Heap Space
How do I change the heap space from NetBeans? It is not in the Help. See
Tim Boudreau's response:
&lt;<a href="https://netbeans.org/servlets/ReadMsg?list=nbusers&msgNo=52046">https://netbeans.org/servlets/ReadMsg?list=nbusers&msgNo=52046</a>&gt;
or visit Tuning JVM switches for performance page:
&lt;<a href="http://performance.netbeans.org/howto/jvmswitches/index.html">http://performance.netbeans.org/howto/jvmswitches/index.html</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>