<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #254 - Aug 21, 2006</title>
<META NAME="description" CONTENT="Newsletter 2006-08-21">

<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# 21-Aug 16:11 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #254 - Aug 21, 2006</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #254 - Aug 21, 2006<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2006-08-21.html'>https://netbeans.org/community/news/newsletter/2006-08-21.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>Updated NetBeans C/C++ Pack and Enterprise Pack Now Available
Important updates of the NetBeans C/C++ Development Pack and NetBeans
Enterprise Pack betas are now available. These add-on packs expand
NetBean's software functionality and your productivity! Download them
and give feedback to the engineering teams.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=696">http://services.netbeans.org/newsletter/story.php?id=696</a>&gt;

NetBeans 6.0 Milestone 2 Released
This stabilized development build contains the following noteworthy
features, just to mention some of them:
 * Window System now allows full screen mode and floating windows were
   added as well.
 * Debugging at method level was improved with method exit breakpoints
   and return values display
 * Profiler got very first prototype of heap walker and JMeter was
   integrated.
Complete list of new M2 features:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=697">http://services.netbeans.org/newsletter/story.php?id=697</a>&gt;
Complete report about NetBeans Milestone 2 and download:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=698">http://services.netbeans.org/newsletter/story.php?id=698</a>&gt;
Community member Collin Doering provides a first look at 6.0 M2 with
some nice and clean screenshots here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=699">http://services.netbeans.org/newsletter/story.php?id=699</a>&gt;

Looking for NetBeans in Your Language?
 * NetBeans 5.0 ML
NetBeans 5.0 is now available in two more languages: Russian and Korean!
That adds to the current offering of NetBeans 5.0 in English, Japanese,
and Simplified Chinese. Visit the 5.0 download page to find these new
languages: &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=700">http://services.netbeans.org/newsletter/story.php?id=700</a>&gt;
The Russian version was solely contributed by Maxym Mykhalchuk, one of
the founders of the NetBeans Translation Project. Visit the project
home page and become a contributor. Join one of the existing language
teams or create a new one!
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=701">http://services.netbeans.org/newsletter/story.php?id=701</a>&gt;
 * NetBeans 5.5 ML Beta 2
For the very first time, NetBeans has made available a Japanese and
Simplified Chinese. Download them and give feedback to the localization
team! Choose one of these languages from the dropdown list at:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=702">http://services.netbeans.org/newsletter/story.php?id=702</a>&gt;
For more detailed release information in Japanese and Simplified
Chinese, see the below pages:
Japanese - &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=703">http://services.netbeans.org/newsletter/story.php?id=703</a>&gt;
Chinese  - &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=704">http://services.netbeans.org/newsletter/story.php?id=704</a>&gt;
Rather work on web pages? Check out the various opportunities:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=705">http://services.netbeans.org/newsletter/story.php?id=705</a>&gt;

New Article on Building and Deploying Web Services
This article describes how to build and test Web services that are
based on Java API for XML Web Services (JAX-WS) 2.0 with the built-in
capabilities of the NetBeans 5.0 IDE and the plug-in for Sun Java
System Web Server 7.0 (henceforth, Web Server 7.0), now in Technology
Preview 2. In this article, you also learn how to deploy and debug Web
services.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=706">http://services.netbeans.org/newsletter/story.php?id=706</a>&gt;

I Am Walking
Milestone 2 of version 6 of the NetBeans Profiler includes an important
new feature: a heap walker. Gregg Sporar has more information on it here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=707">http://services.netbeans.org/newsletter/story.php?id=707</a>&gt;

NetBeans Podcast is Back!
Gregg Sporar has joined Roumen and from now on they will produce the
NetBeans podcast together. Epizode 11 discusses recent announcements,
such as availability of NetBeans 5.5 beta2 and NetBeans BlueJ Edition.
The next epizode will be devoted to Mobility Pack (in form of an
interview with mysterious Dr. Evil).
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=708">http://services.netbeans.org/newsletter/story.php?id=708</a>&gt;

WebFrameworkProvider and HyperlinkProvider
Two NetBeans API classes, WebFrameworkProvider and HyperlinkProvider,
were recently discussed in Geertjan's blog, together with downloadable
samples of modules that use these classes. Enough information is
provided for you to make your own web framework available to the IDE:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=709">http://services.netbeans.org/newsletter/story.php?id=709</a>&gt;
and to extend the NetBeans editor with additional Hyperlinks:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=710">http://services.netbeans.org/newsletter/story.php?id=710</a>&gt;

10 Tips for Coding with NetBeans
Arih's Blog provides 10 tips that were discovered while using NetBeans
5.5 Beta 2 for the first time.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=711">http://services.netbeans.org/newsletter/story.php?id=711</a>&gt;

NetBeans Plug-in: Janino Plugin
Edgar Silva writes, "A famous friend of mine Bruno, is leading a
development here at Summa Technologies do Brasil. He asked to me how
easy or hard would be create a new Editor special for Janino in
NetBeans, this editor should have sintax highlight, code-completion and
so on, cause his team was in troubles to edit and to turn it fast and
easy to edit." Take a look at the results here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=712">http://services.netbeans.org/newsletter/story.php?id=712</a>&gt;

Tapestry support for NetBeans?
Alex Kotchnev has started working on a module that integrates the
Tapestry web framework in NetBeans IDE.  He's worked out how to register
the framework in the IDE's Frameworks panel. This is a very important
first step for providing web framework support. Read all about how he
worked it out here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=719">http://services.netbeans.org/newsletter/story.php?id=719</a>&gt;

Blogging about the NetBeans Platform
Emilian Bold is currently working on a Platform based application and
is sharing his experiences through his blog. Be sure to check them out!
NetBeans Platform: Branding the help with layer kung-fu
 * &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=713">http://services.netbeans.org/newsletter/story.php?id=713</a>&gt;
NetBeans Platform: Options Dialog and SPI
 * &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=714">http://services.netbeans.org/newsletter/story.php?id=714</a>&gt;
NetBeans Platform: DataLoader, DataObject and DataNode
 * &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=715">http://services.netbeans.org/newsletter/story.php?id=715</a>&gt;
MindMapping with the NetBeans Platform
 * &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=716">http://services.netbeans.org/newsletter/story.php?id=716</a>&gt;
Using Netbeans Lookup.getDefault() outside the Platform
 * &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=717">http://services.netbeans.org/newsletter/story.php?id=717</a>&gt;

Develop Web Application with NetBeans, Seam and Glassfish
In this two part series Masoud Kalali shows how easily you can build
applications using NetBeans 5.5 based on Seam, facelets, jsf and new
EJB 3 standard.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=718">http://services.netbeans.org/newsletter/story.php?id=718</a>&gt;

NetBeans and Linux: Screenshot of the Day
Ramon Ramos provides a screenshot of NetBeans running on linux with the
GTK LnF (JDK 1.6) and a theme Pharago set.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=720">http://services.netbeans.org/newsletter/story.php?id=720</a>&gt;

NetBeans WorldTour - First Stop Seattle, Washington - September 6th
The NetBeans WorldTour is a no cost event and exciting learning
opportunity. See first-hand how NetBeans IDE can help you become more
productive with its unmatched out-of-the-box experience. Members of the
NetBeans team will discuss what's new in the IDE, the Platform and the
Add-on Packs. For WorldTour cities, dates and agenda continue here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=721">http://services.netbeans.org/newsletter/story.php?id=721</a>&gt;
Register now for the events in Seattle, Washington
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=722">http://services.netbeans.org/newsletter/story.php?id=722</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>