<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../netbeans.css" media="screen">
<meta name="author" content="Tinuola Awopetu">
<meta name="keywords" content="NetBeans IDE, NetBeans Platform, my.netbeans.org, NetBeans widget, NetBeans Community Docs program, Facebook, MySpace">
  <title>Social Networking for the NetBeans Community</title>
</head>
<body>
<h1>Create Your NetBeans Network on my.netbeans, FaceBook &amp; MySpace!</h1>
<br>
What if the ability to stay current
about NetBeans and to keep in contact with other members of the
NetBeans community was possible through a single application?
<br>
<br>
At <a href="http://my.netbeans.org/">my.netbeans.org</a>, our new
community
networking site, NetBeans users can find such an application&#8212;the
NetBeans social widget!
<br>
<br>
my.netbeans.org is one of the ways that
members of the NetBeans community around the world can stay connected
with each other; collaborate on projects; exchange training ideas;
follow the latest news and releases about NetBeans; and give feedback
to the NetBeans team.
<br>
<br>
<img style="width: 191px; height: 189px;"
 alt="my.netbeans.org Social Widget"
 src="../../images_www/articles/mynetbeanswidget.png" align="left"
 hspace="5" vspace="5">Developers and users can create
personal profiles, browse the global NetBeans community, forge
relationships with existing members of my.netbeans and build valuable
networks. my.netbeans also includes a customizable widget that can be
embedded in websites and blogs. Placed on a web page, the social
widget is a great&#8212;not to mention cool-looking&#8212;tool that keeps
members in sync with the NetBeans community.
<br>
<br>
The widget displays basic profile
information from a member's my.netbeans account. Mousing over the
application reveals a drop-down menu of options: viewing a member's
network of fellow NetBeans users and developers; downloading the
latest release of the NetBeans IDE; getting snippets of news and
developments related to NetBeans, and previews of screencasts from
NetBeans.tv. The widget even offers the uninitiated a chance to make
their own my.netbeans widget and join the community!
<br>
<br>
But connecting with other members of
the NetBeans ecosystem isn't restricted to my.netbeans.org alone.
NetBeans fans can also be found on popular social networking sites
Facebook and MySpace.
<br>
<br>
<a href="http://wiki.netbeans.org/CommunityDocs">NetBeans Community Docs</a>
manager James
Branam recently created a network on Facebook specifically for
community docs contributors, and a second on MySpace. A general
NetBeans group, started by NetBeans Director of Engineering Jan
Chalupa, exists on Facebook as well.
<br>
<br>
For Branam, starting the NetBeans
community docs groups on the external sites was a spontaneous move.
<br>
<br>
&#8220;Although NetBeans has my.netbeans,
many people already use Facebook and MySpace, so why not start
networks there and also encourage members to consider my.netbeans as
well?&#8221;
<br>
<br>
According to Branam, an exciting
project has already come out of the Facebook group&#8212;a member
interested in creating a widget for the Community Docs program built
with the NetBeans IDE.
<br>
<br>
my.netbeans.org and other established
social networking sites translate into more ways for NetBeans
community members to communicate with each other, start exciting
projects, be in the know about NetBeans, and help to keep the
NetBeans community strong and active. <br>
<br>
Get connected today!<br>
<br>
<div style="text-align: right;"><span style="font-style: italic;">(March
2008)</span><br>
</div>
<br>
<h2>Additional Links</h2>
Join <a href="http://my.netbeans.org/">my.net.beans.org</a> and create
your widget!<br>
<br>
<a href="http://www.facebook.com/group.php?gid=5050136701">NetBeans on
Facebook</a><br>
<br>
<a href="http://www.facebook.com/group.php?gid=8267666529">NetBeans
Community Docs on Facebook</a><br>
<br>
<a
 href="http://groups.myspace.com/index.cfm?fuseaction=groups.groupProfile&amp;groupid=107084467&amp;Mytoken=1762FF68-15B9-4949-A31EDF1CA69BD93B74962462">NetBeans
Community Docs on MySpace</a><br>
<br>
<a
 href="https://netbeans.org/community/articles/interviews/comm-docs-branam.html">How
to Write a Tutorial for NetBeans</a><br>
<br>
</body>
</html>
