
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>NetBeans Weekly Newsletter, Issue # 354</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 # 354 - Aug 11, 2008
		</div>
	</div>
	<div id="content">
	
				<h1>Project News</h1>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=2431">Download the NetBeans Dynamic Tracing (DTrace) GUI Plugin</a></h2>
						<p style="margin-left:8px;">
						A new version of the NetBeans DTrace GUI plugin is ready for download from the NetBeans Update Center. Some new features and highlights in this release include:
<ul>
<li>Chime (the DTrace output visualization) embedded into the NetBeans DTrace GUI Plugin
<li>A new & enhanced UI
<li>Works with NetBeans IDE 6.0, 6.1, and the upcoming 6.5 release
</ul>Learn more at the NetBeans DTrace GUI Plugin Page.</p>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=2429">Ask the Experts: JavaFX Preview (August 18 - 22)</a></h2>
						<p style="margin-left:8px;">
						The recently released JavaFX Preview is designed to help early adopters become familiar with <a href="http://www.javafx.com">JavaFX</a>. Got a question about the JavaFX Preview? Post it starting <b>Monday, August 18th</b> and get answers from three key members of Sun's JavaFX engineering team: Joshua Marinacci, Martin Brehovsky and Lawrence McDonough.</p>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=2430">Help Translate the Upcoming NetBeans 6.5!</a></h2>
						<p style="margin-left:8px;">
						The groundwork for translating the upcoming NetBeans 6.5 release starts this week! From August 11, the <a href="http://translatedfiles.netbeans.org">NetBeans Localization and Translation community</a> will begin translations centered around 6.5. To join this effort, <a href="mailto:dev-subscribe@translatedfiles.netbeans.org">subscribe</a> to the mailing list, introduce yourself, and meet others interested in translating NetBeans software. Your work will help efforts to make the NetBeans project accessible to developers worldwide!</p>
					</div>
				<h1>Partners</h1>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=2423">Upload and Test Your Mobile Apps with DeviceAnywhere's Free 10-Hour Trial!</a></h2>
						<p style="margin-left:8px;">
						DeviceAnywhere's integration with the NetBeans IDE allows mobile Java developers to access first-rate solutions for developing and testing Java-based mobile applications. To celebrate its partnership with NetBeans, DeviceAnywhere is doubling its free trial - from five to 10 hours! This is an exclusive offer to NetBeans users. Through this extended free trial, developers can remotely perform all testing on real devices - from the convenience of their own desktops.</p>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=2426">Webinar: Maximizing Collaboration with NetBeans and Codebeamer</a></h2>
						<p style="margin-left:8px;">
						Join Intland Software, United States Department of Agriculture (USDA) and NetBeans technology experts for an on-demand Webinar on how the USDA used Intland's Application Life cycle Management (ALM) product, Codebeamer, and the NetBeans Rich Client Platform (RCP) to build a collaborative environment for scientific research.</p>
					</div>
				<h1>Community</h1>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=2425">NetBeans Podcast Episode 45</a></h2>
						<p style="margin-left:8px;">
						In this episode of the podcast, get Lloyd Dunn's full length interview with Python's Ted Leung, recorded after Leung's appearance at OSCON. Other goodies include a short chat with NetBeans User Researcher Jakub Franc, a new API Design tip from Jaroslav Tulach, a NetBeans project and plugin of the month, and as always: the NetBeans Puzzler.</p>
					</div>
				<h1>Training</h1>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=2421">Nandini Ramani Introduces the JavaFX Preview SDK</a></h2>
						<p style="margin-left:8px;"><img src='http://services.netbeans.org/appl2/show_image.php?id=1598&column=image&table=story&type=image/jpeg&db=xnetbeans&db_type=pear&id_col=story_id' 
		height='79' width='110' alt='image' style='float:left; margin-right:5px;margin-bottom:5px;'/>
						Engineering Director Nandini Ramani introduces JavaFX Preview SDK and shows how to use NetBeans IDE 6.1 with JavaFX to run samples and create an application.</p><br style="clear:both;"/>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=2422">Using Spring 2 and Facelets Together with NetBeans 6.1</a></h2>
						<p style="margin-left:8px;">
						A community contribution from Siegfried Bolz - Learn to use Spring Web Framework with NetBeans Facelets Plugin in the NetBeans 6.1 IDE.</p>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=2427">Creating a Custom Java Desktop Database Application</a></h2>
						<p style="margin-left:8px;">
						This tutorial guides you through the creation of a complete Java desktop database application that enables its user to browse and edit customer records and purchase history. The tutorial shows how to customize IDE-generated code to interact with multiple related database tables. The resulting application includes a main view for browsing customer records and history, a search function, separate dialog boxes for adding and editing records.</p>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=2428">End-to-End Web Service Tutorial: Mobile Dilbert Application</a></h2>
						<p style="margin-left:8px;">
						Use the NetBeans IDE to create a mobile client application that consumes a web service. The application fetches the daily Dilbert comic strip via a live on-line web service, converts the graphics to a space-saving format, and displays the strip on a mobile device.</p>
					</div>
				<div class="item">
				<h2><a href="http://services.netbeans.org/newsletter/story.php?id=2424">Tech Tip: NetBeans Installer Command Line Options</a></h2>
						<p style="margin-left:8px;">
						A useful reference from NetBeans's Installer team - a table of NetBeans Installer Command Line options, with examples and descriptions for the listed options.</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>
        </div>
	</div>
	<div id="footer">
		<div id="footer-text">
				This newsletter is accessible also at  <a href="https://netbeans.org/community/news/newsletter/2008-08-11.html">www.netbeans.org</a>,
				<a href="https://netbeans.org/community/news/newsletter/archive.html">newsletter archive</a>
		</div>
	</div>

</body>
</html>