
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>NetBeans Weekly Newsletter, Issue # 333</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
<meta name="keywords" content="NetBeans, IDE, Platform, free, open source, developer" >
</head>
<body>
<style>
body {
		margin:5px 15px 5px 15px;
		font-size: 11px;
		font-family: Verdana, "Verdana CE",  Arial, "Arial CE", "Lucida Grande CE", lucida, "Helvetica CE", sans-serif;
		background-color:#e3eaf1;
		text-align:center;
}
				
#letter {width:533px;margin-left:auto;margin-right:auto;}
#head {background-image:url("http://services.netbeans.org/appl2/shared_images/head.png");width:533px;height:70px;background-repeat:none;}
#issue-date {padding-top:50px;text-align:center; color:white;}
#footer {background-image:url("http://services.netbeans.org/appl2/shared_images/footer.png"); width:533px;height:28px;background-repeat:none;}
#footer-text {padding-top:5px;color:#6a6b6d;text-align:center;}
#content {border-right:3px solid #747d9e;border-left:3px solid #747d9e; background-color:white; text-align:left; color:#6a6b6d; padding:13px 20px 13px 13px; }
#letter h1 {font-size: 14px; font-weight:normal; margin:3px 0px 5px 0px;; padding:0px;color: #EE6B00; border-bottom:1px solid silver;}
#letter h2 {color:#2C3C79;font-size: 13px; font-weight:normal;margin:0px 0px 2px 0px;;padding:0px; border:0px;}
#letter p {padding 0px;margin:0px; text-align:justify;}
#letter a:link, a:visited { color: #045491; font-weight : normal; text-decoration: none;}
#letter a:link:hover, a:visited:hover  { color: #045491; font-normal : bold; text-decoration : underline;}
.item {margin-left:8px; margin-bottom:9px;}
.bold {font-weight:bold;}
#letter a.orange {color: #EE6B00;}
.align-right {text-align:right;}     
.align-center {text-align:center;}  
.edited {margin:15px -20px 0px -13px;padding-top:8px;text-align:center;}
.edge-top {background-color: #f0f7ff;padding:7px 12px 7px 7px;margin-bottom:10px; border:1px solid #747d9e;}
</style>

				
<div id="letter">
	<div id="head">
		<div id="issue-date" class="bold">
				Issue # 333 - Mar 17, 2008
		</div>
	</div>
	<div id="content">
	
				<h1>Project News</h1>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=1659">Download NetBeans IDE 6.1 Beta, Blog about it & Win $500!</a></h2>
						<p style="margin-left:8px;">
						Can your blog entry make you money? If it's about the NetBeans IDE 6.1, you bet it can! Check out our new contest: Download the NetBeans IDE 6.1 Beta, try it out and write a blog post about your experience. You could win $500 or a cool NetBeans t-shirt! The contest ends April 18, 2008, so visit the contest page for entry details and ideas on writing a winning blog entry.</p>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=1663">New Module: Remove Unused Binding Attributes from VisualWeb JSF Pages</a></h2>
						<p style="margin-left:8px;">
						Available from the NetBeans 6.1 Beta update center, a new module that helps users clean up Visual Web projects developed prior to NetBeans 6.1 Beta. Get more information from Sandip Chitale's blog entry.</p>
					</div>
				<h1>Calendar</h1>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=1665">Attend NetBeans Party at EclipseCon, Win a 24" LCD Monitor - March 18!</a></h2>
						<p style="margin-left:8px;">
						If you're a NetBeans user attending EclipseCon we'd like to invite you to a NetBeans party! Join NetBeans evangelists for an evening of free food, drinks, demos about our IDE's latest and coolest features, and a chance to win a 24-inch Sun LCD monitor!</p>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=1664">Register for NetBeans Day at CommunityOne! (May 5th)</a></h2>
						<p style="margin-left:8px;"><img src='http://services.netbeans.org/appl2/show_image.php?id=778&column=image&table=story&type=image/png&db=xnetbeans&db_type=pear&id_col=story_id' 
		height='60' width='100' alt='image' style='float:left; margin-right:5px;margin-bottom:5px;'/>
						<a href="https://netbeans.org/community/articles/javaone/2008/nb-day.html">NetBeans Day at CommunityOne</a> is back! Come to San Francisco's Moscone Center Monday, May 5th, to hear and see what's new in the NetBeans IDE (Ruby, PHP, Visual Mobile Designer, Swing, Beans Binding, etc.); have lunch with the Java Posse; meet with NetBeans experts and fellow NetBeans developers; and grab some NetBeans swag.
<br><br>
NetBeans Day at CommunityOne is a companion event to the <a href="http://java.sun.com/javaone/sf/index.jsp">JavaOne 2008 Conference</a>. Attendance is free, but seats are limited, so register now!</p><br style="clear:both;"/>
					</div>
				<h1>Training</h1>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=1660">MySQL and NetBeans IDE Resources Page</a></h2>
						<p style="margin-left:8px;">
						Get all the information you need to integrate MySQL database into your workflow in the NetBeans IDE. We now have have a MySQL resource page that collects all of our tutorials on using the IDE with MySQL. See how to use the NetBeans IDE with MySQL in everything from Java web and enterprise applications to Ruby applications.</p>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=1661">Introduction to the Swing Application Framework</a></h2>
						<p style="margin-left:8px;">
						The Swing Application Framework is a light framework that simplifies the creation and maintenance of small- to medium-sized Java desktop applications. This tutorial is an introduction to the support in the NetBeans IDE for the Swing Application Framework.</p>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=1662">Creating SOAP Web Services with NetBeans 6.0</a></h2>
						<p style="margin-left:8px;">
						This guide details how to easily create SOAP Web Services with the NetBeans IDE 6.0.</p>
					</div>
				<h1>Blogs</h1>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=1656">How to Benefit from Shared Libraries</a></h2>
						<p style="margin-left:8px;">
						Adam Myatt explores the new sharable libraries feature in NetBeans 6.1, which makes it easier to use projects created by the NetBeans IDE in other environments: for continuous builds, with other development tools, etc.</p>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=1658">Using NetBeans IDE 6.1 as an HTML Editor</a></h2>
						<p style="margin-left:8px;">
						NetBeans IDE 6.1 comes standard with handy editors, which can be easily used to edit a website directly. This blog entry from Adam Bien describes the NetBeans IDE's HTML editing capabilities.</p>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=1657">jMaki on Rails - Reloaded for NetBeans 6.1 Beta & Rails 2.0</a></h2>
						<p style="margin-left:8px;">
						Arun Gupta shows how the updated jMaki plugin can be used with NetBeans IDE 6.1 Beta and Rails 2.0.2 to create a simple Rails application.</p>
					</div>
	<div class="edited">
	This issue was brought to you by : Tinuola Awopetu<br/>If you do not want to receive this newsletter, you can <a href="https://netbeans.org/community/lists/top.html">unsubscribe here</a>
	</div>
	</div>
	<div id="footer">
		<div id="footer-text">
				This newsletter is accessible also at  <a href="https://netbeans.org/community/news/newsletter/2008-03-17.html">www.netbeans.org</a>, 
				<a href="https://netbeans.org/community/news/newsletter/archive.html">newsletter archive</a>
		</div>
	</div>

</body>
</html>