
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>NetBeans Weekly Newsletter, Issue # 389</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 # 389 - Apr 28, 2009
		</div>
	</div>
	<div id="content">
	
				<h1>Project News</h1>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=3608">NetBeans IDE 6.7 Beta Available for Download!</a></h2>
						<p style="margin-left:8px;"><img src='http://services.netbeans.org/appl2/show_image.php?id=2834&column=image&table=story&type=image/jpeg&db=xnetbeans&db_type=pear&id_col=story_id' 
		height='88' width='100' alt='image' style='float:left; margin-right:5px;margin-bottom:5px;'/>
						The NetBeans team is pleased to announce the availability of NetBeans IDE 6.7 Beta. The release introduces integration with Project Kenai, a collaborative environment where developers can host their open-source projects. Additional highlights include native Maven support, GlassFish and Hudson integrations, improved support for Java, PHP, Ruby, JavaScript, Groovy and C/C++, and more.<Br><br>
NetBeans IDE 6.7 Beta is the ideal tool to keep developers connected to each other and to the latest technologies! <a href="https://netbeans.org/community/releases/67/">Learn more</a> and <a href="http://download.netbeans.org/netbeans/6.7/beta/">download</a> today.</p><br style="clear:both;"/>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=3607">Win $200 in the Zembly Blogging Contest!</a></h2>
						<p style="margin-left:8px;">
						Zembly is a Sun development platform for building web applications for Facebook, iPhone, and more. Whether you're new to zembly or already build apps, the zemby team wants to hear from you. Simply write about your experience with zembly and you could WIN a $200 gift certificate!</p>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=3605">New NetBeans Modules + Source Code Available</a></h2>
						<p style="margin-left:8px;">
						The <a href="http://plugins.netbeans.org/PluginPortal/faces/PluginListPage.jsp?author=tboudreau">NetBeans Plugin Portal</a> now hosts a collection of nifty new modules contributed by Tim Boudreau. Check them out. Their source code can also be found in the NetBeans source repository.</p>
					</div>
				<h1>Calendar</h1>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=3606">Meet NetBeans and Kenai at Rails Conference Las Vegas</a></h2>
						<p style="margin-left:8px;">
						Curious to know more about how NetBeans and Project Kenai keeps developers connected? Find out from the Kenai Team at Rails Conference Las Vegas in May! Stop by the Sun booth to learn about NetBeans and Kenai integration, what it can do for you, and additional features planned.</p>
					</div>
				<h1>Articles</h1>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=3610">Kera Suite: Workflow App Built on the NetBeans Platform</a></h2>
						<p style="margin-left:8px;">
						Featured in this "Built on NetBeans Platform" profile interview: software developer Michael Kroll and Kera Suite, a workflow management application for dentists.</p>
					</div>
				<h1>Training</h1>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=3602">Setting up Facebook User Login Authentication with NetBeans IDE</a></h2>
						<p style="margin-left:8px;">
						Learn to consume Facebook Software as a Service (SaaS) services in web applications using NetBeans IDE. This tutorial concentrates on how to set up the User Login authentication mechanism used by Facebook and Flickr.</p>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=3603">Configuring PHP, Apache, and MySQL for PHP development in SXDE (Web Stack)</a></h2>
						<p style="margin-left:8px;">
						This tutorial covers setting up the PHP development environment on OpenSolaris. On Solaris systems, the PHP engine, Apache server, and MySQL database server are included in a Web Stack package.</p>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=3604">Tech Tip: Create a Maven Project Site in NetBeans</a></h2>
						<p style="margin-left:8px;">
						In this quick tutorial learn to create a Maven project site in the NetBeans IDE.</p>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=3609">Screencasts: Using Aerith Components in NetBeans</a></h2>
						<p style="margin-left:8px;">
						In this collection of screencasts about his Aerith NetBeans Project, project owner Julian Gamble demonstrates how to use Aerith components as drag-and-drop widgets in NetBeans.</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 class="edited">
        Available languages<br>
        <a href="https://netbeans.org/community/news/newsletter/index.html">English</a> | <a href="https://netbeans.org/community/news/newsletter/index_pt_BR.html">Brazilian Portuguese</a> | <a href="https://netbeans.org/community/news/newsletter/index_fr.html">French</a> | <a href="https://netbeans.org/community/news/newsletter/index_zh_CN.html">Chinese - simplified</a> | <a href="https://netbeans.org/community/news/newsletter/index_zh_TW.html">Chinese - traditional</a>
        </div>
	</div>
	<div id="footer">
		<div id="footer-text">
				This newsletter is accessible also at  <a href="https://netbeans.org/community/news/newsletter/2009-04-28.html">www.netbeans.org</a>,
				<a href="https://netbeans.org/community/news/newsletter/archive.html">newsletter archive</a>
		</div>
	</div>

</body>
</html>