<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #219 - Nov 24, 2005</title>
<META NAME="description" CONTENT="Newsletter 2005-11-24">

<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# 24-Nov 19:10 CET                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #219 - Nov 24, 2005</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #219 - Nov 24, 2005<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2005-11-24.html'>https://netbeans.org/community/news/newsletter/2005-11-24.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 Day Toronto
On December 5, 2005 the NetBeans will be making their next stop on the NetBeans
worldTour at the Metro Toronto Convention Centre. Registration begins at 12:00
and the event closes with a keynote by James Gosling beginning at 4:45. Brian
Leonard and Sang Shin will be showing off plug-in development and the NetBeans
Platform, J2ME and J2EE development. You can find more information on the agenda
at: &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=142">http://services.netbeans.org/newsletter/story.php?id=142</a>&gt;
or you can go directly to the registration page:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=141">http://services.netbeans.org/newsletter/story.php?id=141</a>&gt;

NetBeans at Javapolis 2005
Join the NetBeans Team at JavaPolis, Europe's leading Java technology developers
conference. This year's event will be taking place December 12 - 16 at the
MetroPolis in Antwerp, Belgium.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=143">http://services.netbeans.org/newsletter/story.php?id=143</a>&gt;

NetBeans Graph Library
Recently made available as a public API, the NetBeans Graph library supports
visual modelling of source code elements - or any kind of diagrammable model.
While originally developed as part of the Mobility Pack, it is general purpose
enough to use in any Swing application.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=144">http://services.netbeans.org/newsletter/story.php?id=144</a>&gt;

Swing Dominates New Rich Client Development
The "Swing Dominates New Clientside Development" entry is about NetBeans RCP +
Swing combination is stronger than SWT + Eclipse RCP. This blog entry by Charles
Ditzel was recently the most popular read on javablogs.com:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=145">http://services.netbeans.org/newsletter/story.php?id=145</a>&gt;

Collaboration Module Quickstart
Talk code with the other developers live over the network, be it in your local
team or on another continent. NetBeans Developer Collaboration lets you chat and
share code while keeping syntax coloring, project file structure and formatting
intact.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=146">http://services.netbeans.org/newsletter/story.php?id=146</a>&gt;

New NetBeans JBoss Support Forum
A new forum for discussing the development of J2EE applications for JBoss using
the NetBeans IDE is now available on the JBoss website.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=154">http://services.netbeans.org/newsletter/story.php?id=154</a>&gt;

You Too Can Extend the Component Palette
Even if you never thought of developing modules before, it's a good idea to give
it a go anyway, especially if you're a web developer. In NetBeans IDE 5.0, web
developers have a component palette with code snippets (chunks of JSP and HTML
tags) that they can drag into their JSP file or HTML file. However, it's very
easy to create modules that add additional code snippets to the Component Palette
and to then share the snippets with other developers -- just create a quick
NetBeans module containing your code snippets, generate an NBM file, and then
distribute the NBM file to whoever needs it. For details, see Geertjan's blog:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=148">http://services.netbeans.org/newsletter/story.php?id=148</a>&gt;

YourKit Java Profiler
YourKit has developed a new approach to profiling of applications on development
and production stages, bringing great benefits to professional Java developers,
on all platforms: Windows, Linux, Solaris, SPARC/Intel, Mac OS X. Features
include: Powerful analysis capabilities, On-demand profiling, Free embedding into
production, J2EE support, Java 5.0 support, Quick and easy installation, J2ME
support and a flexible licensing policy.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=149">http://services.netbeans.org/newsletter/story.php?id=149</a>&gt;

Mobility Pack for Sun Java Studio Enterprise 8
The latest version of the award winning -- and now FREE -- Sun Java Studio
Enterprise now supports the Mobility Pack. The Mobility Pack adds Java ME
authoring to the rich feature set of JSE8.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=150">http://services.netbeans.org/newsletter/story.php?id=150</a>&gt;

Developer.com Interview with Dan Roberts
Dick Wall, Lead Systems Engineer for NewEnergy Associates, interviews Dan
Roberts, Sun Microsystems Director of Marketing for Developer Tools. In this two
part interview, Roberts describes the differences between the NetBeans, Sun Java
Studio Creator, and Sun Java Studio Enterprise IDEs.
Part  I: &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=155">http://services.netbeans.org/newsletter/story.php?id=155</a>&gt;
Part II: &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=152">http://services.netbeans.org/newsletter/story.php?id=152</a>&gt;

JavaOne Call for Papers Now Open
NetBeans is seeking proposals for sessions (technical talks and BOFs) for the
2006 JavaOne Developer Conference. The JavaOne Conference is your opportunity
to reach this specialized community by educating and sharing your experience
and expertise with Java technology. Please review the guidelines and
instructions to submit your proposals. For more information, see:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=153">http://services.netbeans.org/newsletter/story.php?id=153</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>