<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #264 - Oct 30, 2006</title>
<META NAME="description" CONTENT="Newsletter 2006-10-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-Oct 14:13 CET                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #264 - Oct 30, 2006</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #264 - Oct 30, 2006<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2006-10-30.html'>https://netbeans.org/community/news/newsletter/2006-10-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 5.5 FCS Now Available!
NetBeans.org is pleased to announce the release of NetBeans IDE 5.5 FCS
together with Mobility Pack FCS, Profiler Pack FCS, Enterprise Pack FCS,
C/C++ Pack (Beta 3) and Visual Web Pack (Technology Preview). This
NetBeans release supports the Java Enterprise Edition 5 platform, and
most notably the Java Persistence, EJB 3 and JAX-WS 2.0 specifications.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=878">http://services.netbeans.org/newsletter/story.php?id=878</a>&gt;

NetBeans.org Redesign
NetBeans.org website has been redesigned so it's friendlier. We made it
easier for you to download code and find all the info you need. We
focused on the home page, the products page, and the overall download
experience. Phase 2 of the redesign will focus on the community pages.
Let us know if we've hit the mark or not. We welcome all feedback and
suggestions!
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=879">http://services.netbeans.org/newsletter/story.php?id=879</a>&gt;

NetBeans Strategic Partner Program Launches
The NetBeans Strategic Partner Program provides a unique channel for
those companies building add-ons for the NetBeans platform and
recommending NetBeans to their developer communities. Find out about
these partner offerings and the unique benefits and services that comes
with being a Strategic Partner.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=880">http://services.netbeans.org/newsletter/story.php?id=880</a>&gt;

When You Need Dedicated Professional Support
Sun Developer Services is now offering NetBeans users 25% OFF the
normal price for the 1-Year Standard, Sun Software Service Plan
(telephone support) for NetBeans. Save over $200.00 per developer.
Use Promo Code: "netbeans". Offer Expires: October 31, 2006.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=886">http://services.netbeans.org/newsletter/story.php?id=886</a>&gt;

NetBeans 6.0 Milestone 4 Available
Milestone 4 of NetBeans 6.0 (Dev) is now available for download
together with Mobility Pack and Profiler Pack. Milestone 4 now contains
all the features and improvements implemented in the NetBeans 5.5
release, most notably the full Java EE 5 support. Additionally,
NetBeans 6.0 M4 contains the following improvements:
 * Mobility Pack made its 1st 6.0 Milestone
 * Profiler added: Dynamic Attach, CPU live results and Heap Walker
   improved as well.
 * Inline Diff was implemented, Open Recent files as well and many other
   features were added.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=881">http://services.netbeans.org/newsletter/story.php?id=881</a>&gt;

NetBeans History Quiz Winners Announced
Here are the names of the 5 winners of last weeks NetBeans History
quiz: John, Taudo Wenzel, Rei Takeda, Roger Jonsson, and Vedran Sabol.
Each winner gets a NetBeans shirt and a USB disk. Congratulations, and
thanks for taking part!
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=883">http://services.netbeans.org/newsletter/story.php?id=883</a>&gt;

NetBeans 'World Tour' Hits Buenos Aires With A Packed Audience
The Inquirer's Fernando Cassia provides an overview of the NetBeans
World Tour in Buenos Aires. "He[Roumen] did a pretty impressive demo --
the demo was very impressive, and the tool is very impressive..." Enjoy
this write-up, with delightful pictures, too.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=882">http://services.netbeans.org/newsletter/story.php?id=882</a>&gt;

Questions at the NetBeans Booth at Tech Days Buenos Aires
Visual Web Pack is getting lots of interested and Roumen answers some
of the commonly asked questions about this new pack:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=885">http://services.netbeans.org/newsletter/story.php?id=885</a>&gt;

Swing onto the NetBeans Platform!
You have Swing applications lying around that you may have created many
years ago? Time to refresh your code and... why not use the NetBeans
Platform as your starting point? Saves times, saves code. Saves sweat,
saves tears. Look how Aljoscha Rittner, from Germany, did it -- a new
interview in Geertjan's blog:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=884">http://services.netbeans.org/newsletter/story.php?id=884</a>&gt;

Subversion Support in the NetBeans IDE
What: Joint CollabNet-NetBeans Webinar
Date: November 9, 2006
Time: 9:00-10:00am PT / 12:00-1:00pm ET
Speakers:
 * Roman Strobl, Technology Evangelist, Sun Microsystems, Inc.
 * Garrett Rooney, Senior Software Engineer at CollabNet, Inc. and
   president of the Subversion Board.
In this webinar we will give an overview of the Subversion integration
in the just-released NetBeans IDE 5.5. The primary goal of the
subversion.netbeans.org project was to deliver first class Subversion
integration with NetBeans. The Subversion module focuses on daily
version control tasks and includes functionality such as:
   * A checkout wizard with a repository browser, 
   * A project import wizard, 
   * A project explorer, 
   * Project update with dependencies, 
   * Multi-file graphical diffs, 
   * An integrated editor blame sidebar, 
   * A commit dialog that automatically adds all new local files, 
   * History search
The webinar provides and overview of these features and you will see
them in action. Register today!
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=887">http://services.netbeans.org/newsletter/story.php?id=887</a>&gt;
CollabNet has hosted the NetBeans community since its inception in 2000
and has worked closely with the NetBeans IDE team on the development of
the Subversion module. </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>
