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

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

<h1>NetBeans Weekly News<br>Issue #266 - Nov 15, 2006</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #266 - Nov 15, 2006<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2006-11-15.html'>https://netbeans.org/community/news/newsletter/2006-11-15.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>Java Goes Open Source
The initial pieces of Sun's Java Development Kit (JDK) have been open-sourced, and the Java compiler (javac) has been configured as a NetBeans project for you to build. Read the step-by-step tutorial on nb-openjdk.netbeans.org.
<&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=896>">http://services.netbeans.org/newsletter/story.php?id=896></a>&gt;

What's new in Mobility Pack 5.5
I'll try to summarize the new features in Mobility Pack 5.5 release. I've already blogged about them but it could be useful to list all the features at one place. There are two new features in the 5.5 release of the Mobility Pack. Support for JUnit testing on mobile devices and support for developing applications using JSR226 - Scalable 2D Vector Graphics (SVG).  Look at screenshots, watch flash demo ...
<&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=898>">http://services.netbeans.org/newsletter/story.php?id=898></a>&gt;

NetBeans Magazine Issue Two Is Released
To celebrate the NetBeans 5.5 launch, NetBeans has put together the second edition of NetBeans Magazine, focusing on enterprise development. You can view this issue as a whole or as individual articles. This edition of NetBeans Magazine covers a wide range of new features in NetBeans 5.5 and its main extensions, while also delving into core Java technologies. 
<&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=899>">http://services.netbeans.org/newsletter/story.php?id=899></a>&gt;

NetBeans Dream Team
The NetBeans Dream Team is a community-driven group of highly skilled NetBeans users. They participate at NetBeans developer events, on mailing lists and developer forums, providing new, interesting and informative content as well as developing new and creative ways to promote NetBeans. We are now looking for ten motivated individuals to be the founding members of the program.
<&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=900>">http://services.netbeans.org/newsletter/story.php?id=900></a>&gt;

JasperReportEditor Module Work Proceeds
Toni Epple has made some new improvements to the JasperReportEditor module for NetBeans IDE. Check out the updates and Toni's observations on using the NetBeans Visual Library.
<&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=901>">http://services.netbeans.org/newsletter/story.php?id=901></a>&gt;

Joshua Marinacci Joins NetBeans Team
Joshua comes from the Java SE team and will be working on Matisse. Check out his impressions of Prague, working on NetBeans, what made him change his mind about IDEs in general.
<http://services.netbeans.org/newsletter/story.php?id=902></pre><hr>This issue of NetBeans Weekly News was brought to you by John Jullion-Ceccarelli.<br>
The next editor will be John.Jullion-Ceccarelli@Sun.COM. (New volunteers are welcome!)<br>
Please send news contributions to <a href='mailto:nbnews_contrib@netbeans.org'>nbnews_contrib@netbeans.org</a></BODY>
</HTML>