<HTML>
<HEAD>
<title>netbeans.org: NetBeans Weekly News Issue #239 - May 09, 2006</title>
<META NAME="description" CONTENT="Newsletter 2006-05-09">

<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# 09-May 14:10 CEST                          -->
<!-- ====================================================== -->
</HEAD>
<BODY>

<h1>NetBeans Weekly News<br>Issue #239 - May 09, 2006</h1><hr>
NetBeans Weekly News, a newsletter for the NetBeans community<br>
Issue #239 - May 09, 2006<br>
URL: &lt;<a href='https://netbeans.org/community/news/newsletter/2006-05-09.html'>https://netbeans.org/community/news/newsletter/2006-05-09.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>MAY 15, 2006 - NETBEANS DAY IN SAN FRANCISCO
If you are planning on attending this awesome event this is the last
call for NetBeans Day registration. If you have already registered you
should have already received an email with all the details. Once again
you do not need to be registered for JavaOne.
* Please note * Due to overwhelming response registration is opening
one hour earlier at 10 AM.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=449">http://services.netbeans.org/newsletter/story.php?id=449</a>&gt;

Memory Leak Geek
Going to JavaOne? If so, there will be several sessions that are either
devoted to or make use of the NetBeans IDE. Gregg Sporar writes about
his Birds-Of-a-Feather session in "Memory Leak Geek," which will
include a demo of the NetBeans Profiler.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=450">http://services.netbeans.org/newsletter/story.php?id=450</a>&gt;

NetBeans @ '06 JavaOne Conference
Be sure to bookmark the list of NetBeans related labs, sessions and BOFs
for easy access next week.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=452">http://services.netbeans.org/newsletter/story.php?id=452</a>&gt;

NetCAT 5.5 Participants Wanted
NetCAT 5.5 - community acceptance testing program for NetBeans 5.5 has
started. If you are willing to help us with quality of NetBeans 5.5 and
have experience with J2EE development, sign up for the program!
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=465">http://services.netbeans.org/newsletter/story.php?id=465</a>&gt;
General NetCAT 5.5 information can be found here:
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=466">http://services.netbeans.org/newsletter/story.php?id=466</a>&gt;

Convert C# and VB.NET To Java - New NET2Java NetBeans Plug-in
Danny Coward has just made available NET2Java NetBeans plug-in. In other
words, the problem of migrating C# and VB.NET software to Java just
became easier. Take a look at Charles Ditzel's blog to find out why you
should care.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=454">http://services.netbeans.org/newsletter/story.php?id=454</a>&gt;

Java Intro Programming Bootcamp course Begins May 25th, 2006
A free "10-week Java Intro Programming Online Bootcamp" course is about
to start from May 25th, 2006. This bootcamp is for anyone who wants to
learn Java programming for the first time.  In this course, students
will learn how to write, compile, and run Java programs. They will also
learn essential object oriented programming concepts such as
inheritance and polymorphism. Students will write and run the Java
programs using both command line tools and mostly NetBeans IDE 5.0.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=453">http://services.netbeans.org/newsletter/story.php?id=453</a>&gt;

EBA Java AJAX Components Running in NetBeans
Check out this new demo that will help those wanting to create Ajax
applications using NetBeans and JSF.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=455">http://services.netbeans.org/newsletter/story.php?id=455</a>&gt;

Is Java Development for Kids?
Roumen interviewed probably the youngest member of the NetBeans
community. Collin is a 15-year old developer and his passion is study
of Java APIs and he's also writing his first NetBeans plug-in!
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=456">http://services.netbeans.org/newsletter/story.php?id=456</a>&gt;

SQL Meets NFL
James combines two hobbies into one by making an NFL table using
NetBeans' SQL Editor.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=457">http://services.netbeans.org/newsletter/story.php?id=457</a>&gt;

Meet a NetBeans Module Writer: Jens Trapp
What is really interesting about the interview with Jens Trapp is that
it evolved into a mini-tutorial. Jens doesn't just talk conceptually
about how he approached developing his HTML Tidy module, but provides
actual code snippets.
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=458">http://services.netbeans.org/newsletter/story.php?id=458</a>&gt;

NetBeans Evandalists #13
The lastest cartoon by Ruth is now available. What do you get if you
contribute and to the daily build and it breaks?
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=459">http://services.netbeans.org/newsletter/story.php?id=459</a>&gt;

NetBeans Day Johannesburg Recap
Geertjan shares his experiences from the latest stop on the NetBeans
WorldTour. This event turned out to be one huge success.
Part I: &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=460">http://services.netbeans.org/newsletter/story.php?id=460</a>&gt;
Part II: &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=461">http://services.netbeans.org/newsletter/story.php?id=461</a>&gt;
Part III: &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=462">http://services.netbeans.org/newsletter/story.php?id=462</a>&gt;

Brazilian Ministry of Education's Team Has a New Uniform
Part III: &lt;<a href="http://services.netbeans.org/newsletter/story.php?id=463">http://services.netbeans.org/newsletter/story.php?id=463</a>&gt;

Guess the Glyph - Another Week of Winners
The latest round of the Glyph competition has ended and here are the
winners: Mauricio Tsugawa (USA), Dorota Ratkowska (Poland), Fredrik
Ryden (Sweden), Cristian Mohr (Argentina) and Danilo Costa (Brazil).
This is the last week of the competition.
Part III: http://services.netbeans.org/newsletter/story.php?id=464</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>