
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
                                        <html>
                                        <head>
                                        <title>Netbeans Weekly Newsleter, Issue # 270</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>
<h1>NetBeans Weekly News, a newsletter for the NetBeans community</h1>
Issue #270 - Dec 11, 2006<br />
URL: &lt;https://netbeans.org/community/news/newsletter/2006-12-11.html&gt;<br />
Interested in becoming a newsletter editor? We are always looking<br />
for editors to help out. Contact nbnews_contrib@netbeans.org<br />
Please send news contributions to nbnews_contrib@netbeans.org<br />
<hr />
 # Project News<br />
--------------------------------------------------------------------------------<br />
NetBeans Visual Web Pack 5.5 &amp; C/C++ Development Pack 5.5 Now Available<br />
NetBeans is proud to announce the release of the NetBeans Visual Web Pack and the NetBeans C/C++ Development Pack. Visual Web Pack allows you to rapidly and visually build standards-based web applications. The C/C++ Development Pack provides support for a variety of C/C++ project types, and includes a makefile wizard. Simply add these packs to an existing NetBeans IDE to improve your functionality!<br />
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=950">http://services.netbeans.org/newsletter/story.php?id=950</a>&gt;<br />
<br />
Tutorials: Visual Web Pack<br />
To go along with the release of the NetBeans Visual Web Pack, the tutorial divas at Sun Java Studio Creator have published several new tutorials. One tutorial, for example, walks Creator IDE users through importing a Creator 2 project into Visual Web Pack 5.5.<br />
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=947">http://services.netbeans.org/newsletter/story.php?id=947</a>&gt;<br />
<br />
 # Calendar<br />
--------------------------------------------------------------------------------<br />
NetBeans Day Atlanta - January 16, 2007<br />
ATLANTA: The birthplace of Martin Luther King, Jr. and coca-cola. And the next stop on the NetBeans WorldTour in 2007! It's a chance to meet NetBeans experts and enthusiasts to get the latest NetBeans news. Space is limited so reserve your spot today. (Also consider making space around the waistline for peach cobblers!)<br />
&lt;<a hrfe="http://services.netbeans.org/newsletter/story.php?id=949">http://services.netbeans.org/newsletter/story.php?id=949</a>&gt;<br />
<br />
 # Blogs<br />
--------------------------------------------------------------------------------<br />
Tor Norby : NetBeans and Ruby and Semplice; Nutter: Its Awesome<br />
&quot;Do you want to see a glimpse of NetBeans top-notch Ruby support ?  Tor Norby provides a nice screenshot of Ruby in NetBeans with semantic highlighting, code completion, mark occurrences...&quot; Read more at Charles Ditzel's blog.<br />
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=943">http://services.netbeans.org/newsletter/story.php?id=943</a>&gt;<br />
<br />
Is NetBeans Visual Web Pack for You?<br />
Have you lost some sleep lately deciding if to switch over to NetBeans Visual Web Pack? NetBeans Evangelist Roman Strobl has a cool summary that could help simplify the issue for you. His take? Sleep easy. There are ways to make Visual Web Pack work for everyone.<br />
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=946">http://services.netbeans.org/newsletter/story.php?id=946</a>&gt;<br />
<br />
 # Community<br />
--------------------------------------------------------------------------------<br />
Bloggers Wanted for the New Chinese Planet NetBeans Site!<br />
NetBeans 5.5 Multilingual RC1 is a great step towards attracting a wider NetBeans audience. But the work can't stop there. We want diverse NetBeans users to blog about their experiences and help spread the word. It's one way to keep NetBeans growing and improving for all. Visit the new Chinese Planet NetBeans site and contribute.<br />
&lt;<a hrfe="http://services.netbeans.org/newsletter/story.php?id=948">http://services.netbeans.org/newsletter/story.php?id=948</a>&gt;<br />
<br />
NetBeans and Eclipse: A Tale of Two Rich Client Platforms<br />
NetBeans writer Geertjan Wielenga has a proposal for a session at JavaOne: to discuss the differences and similarities between the NetBeans Platform and Eclipse RCP. Would you be interested in this technical session? Visit his blog for more details and give him some constructive feedback.<br />
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=945">http://services.netbeans.org/newsletter/story.php?id=945</a>&gt;<br />
<br />
NetBeans Platform workshop in Timisoara, Romania<br />
Emilian Bold recently hosted the first NetBeans Platform workshop in Romania. Working with the NetBeans IDE, Bold demonstrated the module system, actions API and more. Inspired to do something similar in your part of the world? Check out his presentation and demo files.<br />
&lt;<a href="http://services.netbeans.org/newsletter/story.php?id=944">http://services.netbeans.org/newsletter/story.php?id=944</a>&gt;<br />
<br />
--------------------------------------------------------------------------------<br />
New volunteers are welcome!<br />
Please send news contributions to nbnews_contrib@netbeans.org
</body></html>