<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #187 - Jan 12, 2005</title>
<META NAME="description" CONTENT="Newsletter 2005-01-12">

<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# 12-Jan 17:10 CET                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #187 - Jan 12, 2005</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #187 - Jan 12, 2005<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2005-01-12.html'>https://netbeans.org/community/news/newsletter/2005-01-12.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>Welcome back to the office and the start of 2005 which is already
shaping up to be another NetBeans momentum filled year!

Win an iPod Competition
The iPod Photo competition is in full swing. Here's your chance to win
what you really wanted for the holidays and did not receive. Remember
by entering this competition you are contributing to the NetBeans.org
project. Every accepted submission wins a prize! Don't hesitate to make
a submission to the competition. It is a fun way to participate and
increase NetBeans content. If you have any questions at all please feel
free to contact <a href="mailto:win-with-netbeans@netbeans.org">win-with-netbeans@netbeans.org</a>. Submit your content
today! For complete details head over to:
&lt;<a href="https://netbeans.org/competition/win-with-netbeans.html">https://netbeans.org/competition/win-with-netbeans.html</a>&gt;

NetBeans IDE 4.0 with J2SE 5.0 Update 1 Bundle
The latest and greatest NetBeans IDE and J2SE 5.0 Update 1 bundle is
now available for download. The first update release of J2SE 5.0
includes select fixes of known defects as well as a couple of key
enhancements; support for GNOME 2.6 on both Solaris 10 and the Sun
Java Desktop System and the addition of Intel's Extended Memory 64
Technology (EM64T) as a supported architecture. You can download
the powerful bundle today by visiting:
&lt;<a href="http://java.sun.com/j2se/1.5.0/download-netbeans.html">http://java.sun.com/j2se/1.5.0/download-netbeans.html</a>&gt;

NetBeans IDE 4.1 X-mas Christmas Edition with J2ME MIDP Visual Editor
If you are feeling blue that the holidays are over or just want to liven
up your development environment you can download the first Q-build of
NetBeans IDE 4.1 and also the first ever special edition! X-mas edition
features a new splash screen, welcome screen, new icons and super cool
falling snowflakes. All that wrapped up with the next in line IDE which
includes the following new features:
  * Visual Design Editor - Visually lay out your MIDlet's workflow, and
design and code the GUI using drag and drop elements
  * Improved configuration support - User-defined abilities allow greater
flexibility when creating configuration specific code blocks and more
  * Improved obfuscation configuration - Now you have greater control
over your obfuscation settings
  * Improved user attributes support - Create custom attributes and
choose their location, whether in your JAD file, JAR manifest file, or
both files.
Follow the link below for the download but be sure to select the Q-Build
version from the drop down box next to Choose Build type:
&lt;<a href="http://services.netbeans.org/downloads/download.php?a=n&p=1">http://services.netbeans.org/downloads/download.php?a=n&p=1</a>&gt;

Web Chat: Solving the Device Fragmentation Problem
The upcoming chat will take place Wednesday, January 26, 2005 at 9:00
PST/17:00 UCT and feature the following speakers: Greg Crawley, Adam
Sotona, and David Kaspar. Introducing the only mobility development
tool with built-in features to help you quickly and easily solve device
fragmentation problems - NetBeans Mobility Pack 4.0. Register today:
&lt;<a href="http://see.sun.com/Apps/DCS/mcp?q=STDG27TG55H332">http://see.sun.com/Apps/DCS/mcp?q=STDG27TG55H332</a>&gt;

Expose a Web Application as a Web Service with NetBeans IDE 4.0
Web services will be an integral part of NetBeans IDE 4.1. But did
you know that you can already develop them in NetBeans IDE 4.0? Web
services in NB 4.1 will support the JSR-109 specification, which is
based on the earlier JSR-101 (JAX-RPC) specification. To get to grips
with the latter specification, and to prepare yourself for JSR-109 and
NetBeans IDE 4.1, why not have a look at this brand new tutorial:
&lt;<a href="https://netbeans.org/kb/articles/tutorial-webservice-40.html">https://netbeans.org/kb/articles/tutorial-webservice-40.html</a>&gt;

How to Setup a Basic Struts Project Using NetBeans IDE 4.0
Apache's Struts framework fits into NetBeans IDE 4.0 like a hand in
a glove! In 5 brief steps you can either install the sample
application that is included in the Struts distribution, or you can
set up a blank Struts application. Need evidence? Here you go:
&lt;<a href="http://struts.apache.org/faqs/netbeans40.html">http://struts.apache.org/faqs/netbeans40.html</a>&gt;

GUI Building in NetBeans IDE 4.0
The ColorSwitch application that you built in NetBeans IDE 3.6 can
also be built in NetBeans IDE 4.0. If you are a GUI developer, or you
make use of the Form Editor for other reasons, check out the updated
GUI Building tutorial:
&lt;<a href="https://netbeans.org/kb/articles/form_getstart40.html">https://netbeans.org/kb/articles/form_getstart40.html</a>&gt;

Built on NetBeans?
There are a large number of businesses, universities and open source
groups whose applications are based on the NetBeans Platform. If you of
an application that is based on NetBeans and that is not listed on
&lt;<a href="https://netbeans.org/about/community/partners/index.html">https://netbeans.org/about/community/partners/index.html</a>&gt;
send us the tip and we'll send
you a t-shirt! Below is an example of a commercial offering that is
based on NetBeans.

DB Solo is Builds On NetBeans
DB Solo is a powerful database development and management tool for both
developers and DBAs. DB Solo has intuitive user interface that allows
you to explore and manage your database objects as well as execute your
own ad-hoc queries. DB Solo supports the major relational database
products available today including Oracle, Microsoft SQL Server, Sybase
and MySQL. You can manage all of these DBMS products  even at the same
time  from a single application. DB Solo runs on Windows and Linux
platforms, so you don't have to buy another tool only because you want
to run manage your databases from different operating systems. For more
information visit 
&lt;<a href="http://www.dbsolo.com">http://www.dbsolo.com</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>
