<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Brazil Plugs Into NetBeans</title>
<meta name="DESCRIPTION" content="Brazil Plugs Into NetBeans">
<meta name="NAV_LINK" content="Maratona 4 Java, Sou+Java">
<meta content="Ruth Kusterer and Robert Demmer" name="AUTHOR">
<link rel="stylesheet" type="text/css" HREF="../../../netbeans.css">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>

<body>
<h1>Brazil Plugs Into NetBeans</h1>

<div class="articledate" style="margin-left:0px;">Released: 30 Nov 2005</div>

<br/>

<p><img src="../../images_www/articles/worldtour/Brazil/woman_brazil.jpg" align="left">
The NetBeans Team has been busy in Brazil. In November alone, we participated in the <a href="#maratona">Maratona 4 Java</a> and the <a href="#soujava">Sou+Java Symposium</a>, embarked on a nine 
city training tour, and launched an exciting, new initiative that focuses on NetBeans plug-in development entitled <a href="#desafio">Desafio NetBeans</a>. 

<h2><a name="maratona">Maratona 4 Java</a></h2>

<p>Imagine participating in a ten-city marathon to bring the promise of Java and NetBeans technology to your fellow developers. This was the premise 
behind the <b><a href="http://maisjava.soujava.org.br/Wiki.jsp?page=M4J_pt_BR">Maratona 4 Java</a></b> -- an unique event that combines Java technology presentations and a mind-twisting, speed programming competition. This 
year’s event took place in eight Brazilian cities – Belém, Brasilia, Campinas, Florianópolis, Porto Alegre, Rio de Janeiro, Natal, and São Paulo – 
as well as the cities of Austin, Texas and Oslo, Norway.</p>

<p>The coding competition attracted over 1,500 university students who broke up into 40 teams throughout the different locations. Each team was given 
the challenge of creating a banner application using JDK 5.0, Update 5 and NetBeans IDE 4.1. The local Java users groups, who did a fantastic job of 
organizing the event, made sure that the teams started at the same time and completed their assignments within the specified time limits.</p> 

<p>Each team had 15 minutes to come up with a solution to the problem and another 15 minutes where individual team members worked to complete the 
task, without any help from their teammates. After the 15 minutes were up, the active participant saved his or her source code to a floppy disk and 
handed it off to the next member of their team. Teams were evaluated on the creativity of their submissions, proper use of the Java language, ease of 
use of their application, and clarity of their code and documentation. <a href="http://maisjava.soujava.org.br/Wiki.jsp?page=M4J_pt_BR">Winners</a> were announced on 22 November at the Sou+Java Symposium in São Paulo 
where they received personalized prizes and trophies.</p>

<p>Members from the NetBeans team were onsite at four of the Brazilian locations including Belém (<a href="http://blogs.sun.com/roller/page/charliebrown">Charlie Hunt</a>), Rio de Janeiro (<a href="http://blogs.sun.com/roller/page/brewin">Bob Brewin</a>), 
Florianópolis (<a href="http://weblogs.java.net/blog/timboudreau/">Tim Boudreau</a>), and São Paulo (Robert Demmer) where they demonstrated the new plug-in development support in NetBeans 5.0. At each 
location they were met with a friendly, excited and knowledgeable audience.</p>

<p>In Belém, <a href="http://jroller.com/page/edgar/20051103">Edgar Silva</a> showed the audience how to generate Hibernate and Spring mappings with his <a href="http://greenbox.dev.java.net/">GreenBox</a> plug-in. GreenBox is an infrastructure 
framework that allows you to create rapid applications using a couple of Velocity Templates and the most used frameworks and technologies from around 
the world. Keuller Maalhaes not only demonstrated how to build an enterprise application with NetBeans, but also presented his reasons for switching 
his application development from the Eclipse to the NetBeans IDE. As Keuller showed, the migration of his enterprise application took less than five 
minutes as a result of NetBeans’ integration with Ant. NetBeans Evangelist Charlie Hunt came next and quickly captured the crowd’s attention with his 
demo of the many NetBeans IDE editor features and how responsive they are in NetBeans 5.0. He also showed how to build GUIs very quickly and easily 
with <a href="https://netbeans.org/kb/archive/index.html">Project Matisse</a>. Charlie concluded his presentation by showing the popular 3D 
desktop <a href="https://netbeans.org/kb/archive/index.html">Looking Glass</a> being run from the NetBeans IDE.</p>

<p>At the same time in Florianoplis, Tim Boudreau introduced the crowd to plug-in module development and demonstrated the advantages of the NetBeans 
platform. Tim invited everyone to develop a cool NetBeans plug-in and start their own open-source project on <a href="https://dev.java.net/">dev.jav.net</a>. 
This was, of course, his subtle way of tricking them into participating in his <a href="https://desafionetbeans.dev.java.net">Brazilian plug-in contest</a> where three lucky winners world receive free trips to 
JavaOne 2006 in San Francisco.</p>

<h2><a name="soujava">Sou+Java Symposium</a></h2>

<p>The <a href="http://maisjava.soujava.org.br/Wiki.jsp?page=S+J_pt_BR">Sou+Java Symposium</a> directly followed the Maratona 4 Java on November 21 – 22 in São Paulo, Brazil. This larger two-day conference attracted a 
large audience of professional Java developers to the world’s second largest city. On Monday, 20 November, Sun Microsystems’ Distinguished Engineer 
Bob Brewin gave the conferences keynote in which he discussed how the <a href="http://platform.netbeans.org">NetBeans platform</a> and <a href="http://developers.sun.com/prodtech/javatools/free/">Sun’s Java developer tools</a> could be used to solve common 
developer problems. As part of his presentation, Bob provided a few interesting statistics about the Brazilian Java development community:</p>

<ul>
<li>Brazil has the fourth largest amount of Java developers in the world after the United States, India, and the entirety of Europe. This is an 
impressive number that helps to make up he estimated 4.5 million Java developers worldwide.</li><br>
<li>Brazil has the only Java User Group (JU) that is a member of the <a href="http://www.jcp.org">Java Community Process</a> (JCP).</li><br></ul>

<p>Bob provided a quick demo that showed how easy and fast it is to assemble a simple NetBeans plug-in inside NetBeans 5.0. At the end of his keynote, 
the NetBeans team took a trick they learned from James Gosling and launched t-shirts autographed by James into the crowd using a slingshot 
specifically designed for this purpose.</p> 

<p>Later in the day, <a href="http://blogs.sun.com/roller/page/webmink">Simon Phipps</a> discussed the economics of open source and how it relates 
to the general public, open source developers and businesses alike in a session entitled <b>Zen of Free</b>. Simon provided his opinion that the 
<i>information age</i> is dead and that we are moving toward a new <i>participation age</i> where the flow of information between customers and 
business will move across multiple lines and channels, and that the companies that excel will be the ones that accept this fact and embrace it. He gave the example of blogs, where companies 
are participating along with communities instead of just supplying them with one-way messaging.</p> 

<p>Charlie Hunt presented the day’s closing session entitled <b>Power to NetBeans: Pushing Java Productivity</b>. The beginning of the presentation was an 
overview of what is new in NetBeans 5.0 including Project Matisse, UI improvements, editing features, and plug-in support. He pointed the crowd to 
the <a href="https://netbeans.org/kb/archive/index.html">NetBeans 5.0 End-2-End Demo</a> which was created by his fellow NetBeans evangelists 
Brian Leonard and Gregg Sporar. Charlie also provided the audience a glimpse into the future of NetBeans and Java Enterprise Edition (Java EE). He 
spoke about “Zero Config” and referred to <a href="http://blogs.sun.com/pavel">Pavel Buzek’s blog</a> where they can stay up-to-date with current 
developments. He ended his presentation by talking about the cool things in NetBeans, including how to take a spell checker GUI he created with 
Project Matisse and integrate in into the IDE as a plug-in module. The most popular module, however 
came from Kiril Grouchnikov. His <a href="https://substance.dev.java.net">Substance plug-in</a> allows you to change the IDE’s look and feel completely – colors, background, button shapes, and 
all.  (For more information on this, visit <a href="http://weblogs.java.net/blog/kirillcool/archive/2005/05/the_real_story.html">Kiril Grouchnikov’s blog</a> and <a href="http://substance-netbeans.dev.java.net/">http://substance-netbeans.dev.java.net/</a>.) </p>

<p>On the second and last day of the event, Tim Boudreau presented a single NetBeans session. His presentation <b>Matisse and the NetBeans Platform</b> 
demonstrated how easy it is to build an application on top of the NetBeans platform by showing his Gimp-like paint programs as well as showing how 
easy it is to develop a plug-in utilizing NetBeans 5.0 The highlight of the session came within minutes of its opening when Tim, on the fly, showed 
off the <a href="https://netbeans.org/projects/obsolete/">NetBeans Collaboration Module</a> and began chatting with a developer in Prague, Czech Republic from São Paulo, Brazil.  In addition to 
messaging within the IDE, Petr Nejedly (a performance expert) was able to view Tim’s code live onscreen and make edits to it.</p>

<h2><a name="desafio">Desafio NetBeans</a></h2>

<p>Our trip to Brazil continues as we go on a six city tour to provide training for Desafio NetBeans, otherwise known as the NetBeans challenge. For 
more information, see <a href="http://desafionetbeans.dev.java.net/">http://desafionetbeans.dev.java.net/</a>. </p>

<h2>Kudos</h2>

<p>The NetBeans team would personally like to thank <a href="http://www.opensource.org/board">Bruno Souza</a> and Vicinius Senger for their hard work in making our trip to Brazil possible. In 
addition, we would also like to thank the entire <a href="http://maisjava.soujava.org.br/Wiki.jsp?page=S+J_pt_BR">Sou+Java community</a>, <a href="http://www.globalcode.com.br">Global Code</a> and <a href="http://www.sun.com">Sun Microsystems</a> for making this competition possible.</p>

<p>To see if NetBeans is coming soon to a city near you, visit the <a href="https://netbeans.org/community/news/calendar.html">NetBeans event calendar</a> and worldTour site.</p>

</body>
</html>
