<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #230 - Mar 06, 2006</title>
<META NAME="description" CONTENT="Newsletter 2006-03-06">

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

<h1>NetBeans Weekly News<br>Issue #230 - Mar 06, 2006</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #230 - Mar 06, 2006<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2006-03-06.html'>https://netbeans.org/community/news/newsletter/2006-03-06.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>Governance Board Elections - Last Chance to Vote
If you have not yet voted this week is your last chance to do so. Check
out the candidates profiles and cast your vote! Voting closes March 8,
2006 midnight in the last time zone.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=304">http://services.netbeans.org/newsletter/story.php?id=304</a>&gt;

NetBeans Platform: Discover the Power
NetBeans is a great IDE, but did you know NetBeans is also a "platform"
that will accelerate your development of great-looking Java apps? These
demos by Roman Strobl show you how easy it can be!
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=305">http://services.netbeans.org/newsletter/story.php?id=305</a>&gt;

NetBeansTM Software Day at JavaOne Conference 2006
Get the hottest ticket in town for NetBeans Software Day 2006. The no
cost event will take place on Monday, May 15, 2006 at the Argent Hotel
in San Francisco. Space is limited, so see what is offered and register
today!
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=306">http://services.netbeans.org/newsletter/story.php?id=306</a>&gt;

Free Java Mobility Edition Event @ CTIA, Win a Sony PSP!
If you're coming to Las Vegas for CTIA, don't miss the FREE NetBeans
Mobility Day event. This is a great opportunity to find out the latest
info on the leading Java ME authoring solution, the NetBeans Mobility
Pack. Key mobile players *////including Sprint and Nokia////* will also be
presenting on what's happening with Java ME and NetBeans. With great
door prizes - including Sony PSPs - and networking opportunities, this
is a can't miss event for Java ME developers. Get more info and
register.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=307">http://services.netbeans.org/newsletter/story.php?id=307</a>&gt;

UML and NetBeans IDE
Did you know that NetBeans IDE currently supports UML modelling right
out of the box? Geertjan's blog has two entries on this subject:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=308">http://services.netbeans.org/newsletter/story.php?id=308</a>&gt;
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=309">http://services.netbeans.org/newsletter/story.php?id=309</a>&gt;

Quick and Helpful NetBeans Editor Demos
The Flog It! blog entry provides links to some quick and to-the-point
demos by Gregg Sporar. They include: Edit Hints, Code Completion,
Navigation and Source Tools. Whether you are a seasoned veteran of the
NetBeans editor or just getting started these will help you become more
productive.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=310">http://services.netbeans.org/newsletter/story.php?id=310</a>&gt;

On-Device Debugging with the Siemens TC65 & NetBeans Mobility Pack 5.0
There are devices that don't have a display. These devices are used for
machine-to-machine communications applications in the field such as
fleet management, security, remote control, and perform many other tasks
that don't require a high resolution display or fancy keyboard. Petr
Suchomel will describe you how to connect the device to computer, how to
debug on it and more in his new tutorial. There is even nice flash demo.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=311">http://services.netbeans.org/newsletter/story.php?id=311</a>&gt;

How to work with Excel files using NetBeans
This document shows you how to use NetBeans IDE 5.0 and Java Excel
library together, to create Excel-aware Java applications with ease.
The document mainly describes NetBeans support for writing applications
with external libraries - the Excel library is not described in depth
itself.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=312">http://services.netbeans.org/newsletter/story.php?id=312</a>&gt;

Using Java Web Start in NetBeans IDE
This tutorial provides a step-by-step walk-through of how to use the
NetBeans Module for Java Web Start. First you install the plug-in module,
and then you take the GUI form examples created with Matisse and enable
Java Web Start functionality for the projects. Finally, you assemble,
deploy, and debug this application in NetBeans IDE 5.0.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=313">http://services.netbeans.org/newsletter/story.php?id=313</a>&gt;

Resources to Help Converting Plug-ins from Eclipse to NetBeans
Are you having a tough time finding the resources that you need to
migrate your plug-in to from Eclipse to NetBeans? You may not be alone.
Charles Ditzel provides a nice starting point.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=314">http://services.netbeans.org/newsletter/story.php?id=314</a>&gt;

Project Coyote - Update nbms for NetBeans 5.0
Roman Strobl has updated the Coyote nbms to work with NetBeans 5.0. For
more information visit his blog:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=315">http://services.netbeans.org/newsletter/story.php?id=315</a>&gt;

Research In Motion
The award-winning BlackBerry solution provides mobile users with email,
phone, instant messaging, web, SMS, organizer and more. Read more and
find out how to create Java ME applications for BlackBerry using the
NetBeans Mobility Pack.
http://services.netbeans.org/newsletter/story.php?id=316</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>