<!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, NetBeans Dream Team, Emilian Bold">
  <title>NetBeans Dream Team Interview: Emilian Bold</title>
</head>
<body>
<h1>Series: Meet the Dream Team Members</h1>
<span style="font-style: italic;">(In January 2007, we announced the 11
charter members of the <a
 href="http://wiki.netbeans.org/wiki/view/NetBeansDreamTeam">NetBeans
Dream
Team</a>, a community-oriented group of highly skilled NetBeans users
devoted to promoting NetBeans and working on the NetBeans Project. In
these interviews discover who they are, why they are passionate about
NetBeans and what goals they have for the NetBeans project.)</span><br>
<br>
<br>
<h1>Emilian Bold</h1>
<h4><img style="width: 213px; height: 240px;"
 alt="NetBeans Dream Team Member Emilian Bold"
 src="../../../images_www/articles/interviews/emilian-bold.jpg" align="left"
 hspace="5" vspace="5">Emilian, Please tell us about yourself.</h4>
I work as a full-time consultant in Timisoara, Romania, and I make my
living mostly doing <a href="http://platform.netbeans.org/">NetBeans
Platform</a> development. I'm pretty
passionate about it. I left my previous job specifically to work on
NetBeans Platform projects after I had written enough blog posts about
the platform to feel confident that it was a
good development choice. Since then I've always had my hands in
platform-code in some way or another.<br>
<br>
I've also done server-side stuff or clustering code but always
something connected to the platform. Basically I'm more of a Java
desktop-programming guy but I have found some passion for clustering
recently. I also <a href="http://emilian-bold.blogspot.com/">blog</a>
about the NetBeans Platform.<br>
<br>
<h4>Why do you work exclusively with the NetBeans Platform?</h4>
The NetBeans Platform is a tried and tested framework for modular
development of Swing applications. With the platform, the worry of how
best to implement menu bars and combo boxes has been taken care of; all
you have to do is just use them.<br>
<br>
The main benefits of working with the NetBeans Platform are speed and
quality. Knowing that the platform is of top notch quality means I can
focus on the business logic. By speed I mean not only development speed
due to proper API usage and basically not reinventing the wheel but
also Swing speed. The platform is amazingly snappy and with the
customized look and feel, people sometimes can't believe it's a Java
application.<br>
<br>
Thanks to the platform's open-source nature and that it's been around
for a while, the codebase is better than what I would usually write.<br>
<br>
<h4>What is your favorite API in the platform?</h4>
The Lookup API is the backbone of the NetBeans Platform and I like it
the most. It encourages you to implement a proper SPI and have a
modular architecture and modular code. One might say that any
programmer will implement modular code, but the truth is that it is
either incomplete or comes late in the game and thus requires too much
refactoring. But with the module system and the Lookup API you get
modular code from the start. Sure, this will be refactored and will
evolve in time but it is a better starting point.<br>
<br>
<h4>Are you currently working on any major RCP projects?<br>
</h4>
I have a year-long RCP project for a big banking
company. It's a rich desktop client with a server back-end and also a
cluster on the side for massive financial simulation. I can't say more
about it though because I have a non-disclosure agreement with the
company. But I can provide two screenshots that show the usage of the
Explorer &amp; Properties APIs, Matisse, JFreeChart and Visual Library
in the NetBeans Platform.<br>
<br>
<table
 style="text-align: left; width: 50%; margin-left: auto; margin-right: auto; height: 45%;"
 border="0" cellpadding="2" cellspacing="2">
  <tbody>
    <tr>
      <td style="vertical-align: top;"><a
 href="../../../images_www/articles/bold-rcp1.png"><img
 alt="RCP Screenshot 1"
 src="../../../images_www/articles/bold-rcp1-icon.jpg"
 style="border: 0px solid ; width: 294px; height: 179px;"></a><br>
      </td>
      <td style="vertical-align: top;"><a
 href="../../../images_www/articles/bold-rcp2.png"><img
 alt="RCP Screenshot 2"
 src="../../../images_www/articles/bold-rcp2-icon.jpg"
 style="border: 0px solid ; width: 299px; height: 211px;"></a><br>
      </td>
    </tr>
  </tbody>
</table>
<br>
I'm also trying to bring back the standalone editor (which is now
discontinued) in the NetBeans Platform. The NetBeans Editor API is
probably the biggest asset of the IDE and it's a shame people can't use
it in their standalone applications. True, there are few that may need
this feature but those that do will surely appreciate the quality and
the function it provides.<br>
<br>
If I have enough time, I would also like to finish my <a
 href="http://emilian-bold.blogspot.com/2008/01/netbeans-platform-autoupdate-via.html">BitTorrent
AutoUpdate integration</a>. It's a feature for the platform that I
thought
about for a long time and finally figured out in January. How to allow
the NetBeans Platform to download modules from the Update Center via
BitTorrent. And I don't mean pirating movies here, I'm just talking
about a smarter download method than pure client-server. To me it makes
sense not to hammer the netbeans.org server but to allow users
worldwide to chip-in and share with others, thus reducing the load. I
just thought it was a pretty cool idea.<br>
<br>
What I need to do next is have two functional torrent download
implementations. The current one is based on the Snark library and I'm
not entirely sure of the compatibility with trackers. So I would like
another torrent downloader extracted from the Azureus codebase (which
is open-source Java). These two will implement a common SPI and
register themselves in the Lookup.<br>
<br>
I would have something like this SPI:
<tt>com.example.TorrentDownloadProvider</tt> with a <tt>downloadTorrent(URL
torrent)</tt> method. Each implementation would register their
implementation in
META-INF/services and then my URL handler can just pick one from the
Lookup (based on some user option maybe): <tt>Lookup.getDefault().lookup(
TorrentDownloadProvider.class)</tt>.<br>
<br>
The second part would be actually providing update centers which are
torrent-based. Now, the update center is just an XML file, so hosting
that should be easy and rather painless bandwith-wise. We just need to
keep it in sync with the main update centers. The problem is that we
need to seed the files via torrent trackers somehow (and I'm not sure
there's an “open-source” tracker that can do this for us).<br>
<br>
Ideally I would have people download the module, select the prefered
downloader (Azureus engine or Snark) then register to our Torrent
Update Center. And that would be it!<br>
<br>
Of course, the API/SPI will be a bit more complicated and the user must
be allowed to set various options like how much to share, maximum
speed, etc.<br>
<br>
<h4>What features in the NetBeans Platform would you encourage people
to explore?</h4>
This can be a bit hard to do because I'm so knee-deep in it
that I sometimes take things for granted and fail to realise what
impression they might have on others. But the most interesting features
of the platform that I tell people about are its modular nature and the
auto-update feature. These scream “good quality product” to me. When
you write modular code and also provide your customers with an update
center it sends a nice message: “Not only do we support this, but we do
it with minimal disturbance to your workflow”. Telling the user to
re-download a big setup is laziness when you could just let the program
update itself.<br>
<br>
<h4>What could be improved in the NetBeans Platform?</h4>
A problem that I have long noticed about the NetBeans codebase: we have
good quality code with nice features, but sometimes it's just too
platform-specific. Some developers already have huge codebases and
don't want or can't afford a migration to the platform, but they just
find a particular feature nice: like the new Diff module or the
“progress bar” we have from the Progress API. I think it would help our
cause to just make sure some of the code works as standalone. This
would allow developers to gradually adopt NetBeans Platform APIs up to
the point when they realize that a migration might be worth making. Or,
even if they don't migrate, they will still use and care about the
open-source piece of code they have from us.<br>
<br>
<h4>Is NetBeans IDE and Platform adoption high among developers in
Romania?</h4>
Java developers in Romania are fairly Eclipse-centered. A large problem
is that Eclipse usage is so big that new developers don't have an
option. They select Eclipse because it's what others use or they pick
it because that's how the project they've signed on to works.<br>
<br>
I do try to evangelize NetBeans IDE and Platform. Sadly we don't have
JUGs here so it all boils down to the very few main programming-related
events where I put on presentations about
NetBeans. I gave a NetBeans Platform talk recently at ITFest
Romania. It
was a small crowd of students and some high-school seniors. I was quite
technical and got some blind stares in the room. But some heads were
shaking so even young programmers “get” the idea behind the platform (I
touched mostly modularity, Lookup, auto-update).<br>
<br>
In order to get a higher share for NetBeans among the developers here I
think we need more presentations and trainings. People need to be
made aware of the features it has and how it can replace or complement
Eclipse. For example, the NetBeans Profiler that comes by default now
with the IDE is a top-knotch product. Years ago, good Java profilers
were mostly commercial products, and the NetBeans Profiler might be a
good entry point to show people the IDE's other features. <br>
<br>
<h4>How would you convince an Eclipse RCP user to give the
NetBeans
Platform a try?</h4>
It depends on what they do with Eclipse RCP. If they already have a
huge SWT codebase and they want to use existing Eclipse plugins then
they are kind of stuck. On the other hand, with a Swing desktop
application
there's little that Eclipse RCP seems to offer there (except the OSGi
module system which is nice). The NetBeans Platform has a good Swing
Windowing API and other useful APIs such as Nodes, Properties and
Explorer, which really cut down development time and are quite easy to
use.<br>
<br>
<h4>As a Dream Team member, how do you contribute to the NetBeans
project?</h4>
In the past year or so, I've had a rather busy period with my
consulting business, so I've dedicated less time than I would have
wanted to NetBeans. I'm waiting for things to settle down so that I can
once again have a routine that involves a big chunk of Platform work.<br>
<br>
In the past month, I've been active in the community with some emails
on the public and internal mailing lists. I post bugs as I find them
and I'm working on getting the Editor API working (again) in standalone
mode. This was a nice feature in the pre-6.0 world which is now gone as
few people used it. Well, I'm working now to bring it back and it's
nice to see a simple desktop application have a CSS editor with syntax
highlight for free. By simple desktop application I mean application
that isn't platform related.<br>
<br>
I also did a photo shoot for the NetBeans 6.0 launch—I had my face on
the website—so I guess modeling is always a choice if this consulting
work gets stale!<br>
<br>
<h4>Your last name must bring up quite a few puns.&nbsp; What's the
origin?</h4>
“Bold-italic-underline.” “The Bold and the Beautiful.” I've heard them
all and I've gotten used to them. It also means “pin” (like the needle)
in
Romanian so that's a source of even more jokes from the Romanian
perspective. I
think the name might be of British or German origin but I have never
found out. One day I'd like to trace it and my lineage and create a
family
tree. But I'm saving that for my “retirement” hobby list.<br>
<br>
<h4>Thank you, Emilian, and good luck with your projects!</h4>
<br>
<a href="http://emilian-bold.blogspot.com/">Emilian Bold's Blog</a><br>
<div style="text-align: right;"><span style="font-style: italic;">(April
2008)</span><br>
<span style="font-style: italic;"></span></div>
<span style="font-style: italic;"></span><span
 style="font-style: italic;"></span>
<h2>More Dream Team Profiles</h2>
<a
 href="https://netbeans.org/community/articles/interviews/dreamprofile-bien.html">Adam
Bien</a><br>
<a
 href="https://netbeans.org/community/articles/interviews/dreamprofile-brabant.html">Vincent
Brabant</a><br>
<a
 href="https://netbeans.org/community/articles/interviews/dreamprofile-chandler.html">Wade
Chandler</a><br>
<a
 href="https://netbeans.org/community/articles/interviews/dreamprofile-giudici.html">Fabrizio
Giudici</a><br>
<a
 href="https://netbeans.org/community/articles/interviews/dreamprofile-plewe.html">Joerg
Plewe</a><br>
<a
 href="https://netbeans.org/community/articles/interviews/dreamprofile-senger.html">Vinicius
Senger</a><br>
<a
 href="https://netbeans.org/community/articles/interviews/dreamprofile-silva.html">Edgar
Silva</a><br>
<a
 href="https://netbeans.org/community/articles/interviews/dreamprofile-urrutia.html">Ibon
Urrutia</a><br>
<br>
</body>
</html>
