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

<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# 28-Nov 16:11 CET                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #268 - Nov 28, 2006</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #268 - Nov 28, 2006<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2006-11-28.html'>https://netbeans.org/community/news/newsletter/2006-11-28.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 Dream Team
Join the NetBeans Dream Team or recommend a friend and colleague.
Nominations close Friday, December 1st so act fast!
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=920">http://services.netbeans.org/newsletter/story.php?id=920</a>&gt;

NetBeans Podcast #18
Roman Strobl and Gregg Sporar discuss open sourcing of Java and all the
latest news around NetBeans in episode 18 of the NetBeans podcast:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=921">http://services.netbeans.org/newsletter/story.php?id=921</a>&gt;

NetBeans Community-Contributed Quiz
Following true Open-Source style, the questions for this quiz were
contributed by NetBeans Community members. All submissions with the
correct answers will be entered in a drawing for four NetBeans Field
Guides (2nd edition). Only one submission per participant is accepted.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=922">http://services.netbeans.org/newsletter/story.php?id=922</a>&gt;

NetBeans 5.5 Testing Contest Information
Thanks to great contribution by a number of developers in Brazil,
NetBeans now has a Brazilian Portuguese version ready for inclusion in
the official NetBeans IDE 5.5 Multilingual version. All that remains is
to fully test the product to make sure it will be accepted by
developers in Brazil.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=923">http://services.netbeans.org/newsletter/story.php?id=923</a>&gt;

Creating a Wizard Console in NetBeans IDE 5.5
The following tutorial shows you ways how to create a wizard style
console using NetBeans IDE 5.5 GUI builder. In this tutorial we will be
creating a sample task scheduling wizard. After going through the
tutorial, you should be able to create simple or complex wizard style
UI components with ease.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=924">http://services.netbeans.org/newsletter/story.php?id=924</a>&gt;

Integrating NetBeans Profiler with Web Server 7.0
This article shows how to use the profiler in conjunction with the web
server and recounts the experience and how to use it.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=927">http://services.netbeans.org/newsletter/story.php?id=927</a>&gt;

Java Studio Creator 2 and NetBeans Visual Web Pack
Charles Ditzel writes, "Winston Prakash has a nice blog entry
discussing Sun Java Studio Creator and the NetBeans Visual Web Pack. He
answers issues related to why Creator exists in the first place, why
Visual Web Pack for NetBeans was released and the future for Creator."
Continue to Winston's blog entry:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=925">http://services.netbeans.org/newsletter/story.php?id=925</a>&gt;

Get Medieval On Your Code
This is a recent blog entry by Tom Ball on ways to add static code
testing to project builds, and how this is easy with NetBeans projects.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=926">http://services.netbeans.org/newsletter/story.php?id=926</a>&gt;

New nbextras Update Center for NetBeans 5.5
The new nbextras NetBeans 5.5 Update Center is available now. You can
upload there the modules that works in NetBeans 5.5. Also, nbm module
that registers the Update Center in NetBeans is available here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=928">http://services.netbeans.org/newsletter/story.php?id=928</a>&gt;

Webinar: Simplifying Data Access Using NetBeans Visual Web Pack
Interested in learning how to simplify data access when building web
applications? Are you tired of the complexity associated with data
access? Check out this hour-long webinar on Simplifying Data Access
using NetBeans Visual Web Pack and learn to:
* Rapidly build visual applications that read, display, and update
 databases.
* Browse and edit database schemas, data, and commands.
* Access databases using a variety of JDBC drivers.
* Import Java Studio Creator 2 database applications into Visual Web Pack
http://services.netbeans.org/newsletter/story.php?id=929</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>