blob: 8b10c9b7624f64c5d10914c91146fc8163573695 [file] [log] [blame]
<!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">
<meta name="author" content="Tinuola Awopetu">
<meta name="keywords"
content="NetBeans IDE, NetBeans Platform, NetBeans Dream Team, Joerg Plewe, TagsMe, Java ME">
<title>NetBeans Dream Team Interview: Ibon Urrutia</title>
</head>
<body>
<h1>Series: Meet the Dream Team Members<br>
</h1>
<i>(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.)</i>
<br>
<br>
<h1>Ibon Urrutia</h1>
<h4><a href="../../../images_www/articles/urrutia/ibon-urrutia.jpg"><img
alt="Ibon Urrutia, NetBeans Dream Team Member"
src="../../../images_www/articles/urrutia/ibon-urrutia-small.jpg"
style="border: 0px solid ; width: 181px; height: 258px;" align="left"
hspace="5" vspace="5"></a>Please
tell us a little about yourself.</h4>
My name is Ibon Urrutia, and I'm a Spanish IT engineer, born and living
in Bermeo, a little town in the north of Spain. I founded two small
start-ups, but now work for <a href="http://www.mdtec.net/">MDTEC</a>,
a technology company based in Marbella. I was elected by <a
href="http://www.javahispano.org/">JavaHispano</a> to be a
representative on the NetBeans Dream Team. <br>
<br>
<h4>How long have you been a NetBeans user?</h4>
NetBeans is the only IDE I've used since I started programming Java
eight
years ago. I used a community edition of Jdeveloper in the beginning,
but changed to Forte for Java (NetBeans's early name) as soon as I
could. At the time, the decision to use NetBeans was simple because I
was still learning Java and found the installation and configuration of
other IDEs too complex for a beginner. NetBeans: one bundle and you
could start programming Java. Nowadays, my Java skills are better, but
I still don't have time to integrate a lot of plugins from different
vendors. Trying to use Eclipse, I get stuck after several hours of
downloading and installing different plugins. Perhaps I have bad luck
or
suffer a form of Eclipse-dyslexia!<br>
<br>
<h4>Your latest project: the TagsMe™ GUI Editor, was built on the
NetBeans Platform. What should we know about it?</h4>
<a href="http://www.tagsme.com/">TagsMe</a>™ is an application
development platform for portable devices (mainly PDAs and mobile
telephones), based in XML and a script language very similar to Java,
with a simple and intuitive syntax. A main advantage is that it
isn't necessary to develop a different application for each existing
manufacturer's model. This allows applications to be
developed&nbsp;rapidly, easily and consistently, using syntax similar
to HTML, for any device that functions on Java&nbsp;MIDP 2.0. You only
need to provide a jar file and it automatically adapts for different
resolutions, as demonstrated in this <a
href="http://netbeans.tv/community/TagsMe-GUI-in-Action-352/">video</a>.<br>
<br>
Each XML file along with its resources (images, sounds, videos, etc.)
defines a screen, the conjunction of which defines the
application. The resources, as well as XML, can be housed in the
device (packed as a usual JavaME jar file) or the internet because XML
interpretation is made at runtime and able to be housed in one or the
other simultaneously depending on the project requirements. Some
people have defined TagsMe™ as an online and offline browser which is a
good definition that captures its different capabilities.<br>
<br>
<span style="font-weight: bold;">TagsMe™ GUI</span> is an integrated
development environment for creating
TagsMe™ applications. We are releasing version 1.0 this month. In the
next release—v2.0—we will have a visual editor that allows development
of JavaME applications
without any knowledge of XML.<br>
<br>
<table
style="text-align: left; width: 604px; height: 433px; margin-left: auto; margin-right: auto;"
border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="vertical-align: top; text-align: center;"><a
href="../../../images_www/articles/urrutia/tagsme-linux-shot2.jpg"><img
alt="TagsMe Welcome Window and Microemulator"
src="../../../images_www/articles/urrutia/tagsme-linux-shot2.jpg"
style="border: 0px solid ; width: 600px; height: 418px;"></a><br>
</td>
</tr>
<tr style="font-style: italic;">
<td style="vertical-align: top;">TagsME welcome window and
Microemulator running a TagsMe application.<br>
</td>
</tr>
</tbody>
</table>
<br>
<table
style="text-align: left; width: 610px; height: 491px; margin-left: auto; margin-right: auto;"
border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="vertical-align: top;"><a
href="../../../images_www/articles/urrutia/tagsme-windows-shot.jpg"><img
alt="TagsMe Windows Screenshot with a SkinLF Look and Feel"
src="../../../images_www/articles/urrutia/tagsme-windows-shot.jpg"
style="border: 0px solid ; width: 600px; height: 418px;"></a><br>
</td>
</tr>
<tr style="font-style: italic;">
<td style="vertical-align: top;">A Windows screenshot, with a
SkinLF Look and Feel, showing the XML's editor integrated help and the
result application running on Microemulator.<br>
<br>
More TagsMe Screenshots: <a
href="../../../images_www/articles/urrutia/tagsme-linux-shot1.jpg">Linux
Screenshot</a> with Default Look and Feel showing attribute value
completion.<br>
</td>
</tr>
</tbody>
</table>
<br>
<h4>What applications have been developed with TagsMe™?</h4>
We have created many applications with our library. For example:<br>
<ul>
<li><a href="http://sportmate.mobi/">SportMate</a>™ - A single or
multi-sport live results service that offers fans a simple way of
staying informed of their team’s progress during any event. The
application uses live data feeds from specialized providers in XML
format</li>
</ul>
<ul>
<li><a href="http://newsmate.mobi/">NewsMate</a>™ - An online mobile
news service that offers a new way to keep up with national and
international news by using a simple structured menu options. The
application uses online data sources from different news providers.</li>
</ul>
We are also speaking with some developers and creators of open source
projects to provide them free (not open) licenses of TagsMe™ GUI to
create mobile versions of their projects.<br>
<br>
<h4>Is the learning curve for TagsMe steep?</h4>
Absolutely not. All of our applications are developed by our designer,
Noe Guerrero, who has no experience with Java! One of the main
objectives of this project was to allow the creation of JavaME
applications as easily as a designer creates a web page with common
design tools. The XML language is very straight forward (simple tags
such as Button, Label, Scroll Groups, Image); animations and effects
are very easy to include, even without using our script language. (We
provide several examples of TagsMe™&nbsp;
projects inside TagsMe™ GUI.)<br>
<br>
<h4>Give us code sample for a very basic application.</h4>
Here's an example that's included in TagsMe™ GUI :<br>
<pre class="examplecode">&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br><br>&lt;TagsME xmlns='http://www.mdtec.net/schema/TagsME'xmlns:xs='<br>http://www.w3.org/2001/XMLSchema-instance'xs:schemaLocation='<br>http://www.mdtec.net/schema/TagsME http://www.mdtec.net/schema/TagsME'&gt;<br><br> &lt;Module name="Fx3" &gt;<br><br> &lt;Class name="buttons"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br> overlap="true" <br><br> drawtext="false" <br><br> img.file="/res/ico.png" <br><br> y="140" <br><br> img.width="22"<br><br> img.height="22" <br><br> anchor="VCENTER-HCENTER" <br><br> onunselect="ic?.img.width=22;ic?.img.height=22;"<br> /&gt;<br><br> &lt;Include name="top"file="/xml/includes/Top.xml"/&gt;<br><br> &lt;ButtonGrp name="Screens"&nbsp; columns="4" anim.frames="10" area.x="0" <br> area.width="180" &gt;<br><br> &lt;Button name="ic1" onselect="setBig(ic1);setMedium(ic2);" <br> text="Icon 1" x="30" class="buttons" /&gt;<br><br> &lt;Button name="ic2" onselect="setBig(ic2);setMedium(ic1);<br> setMedium(ic3);" text="Icon 2" x="70"&nbsp; class="buttons" /&gt;<br><br> &lt;Button name="ic3" onselect="setBig(ic3);setMedium(ic2);<br> setMedium(ic4);" text="Icon 3" x="110" class="buttons" /&gt;<br><br> &lt;Button name="ic4" onselect="setBig(ic4);setMedium(ic3);" <br> text="Icon 4" x="150" class="buttons"/&gt;<br><br> &lt;/ButtonGrp&gt;<br><br> &lt;Include name="bar" file="/xml/includes/Back_bar.xml"/&gt;<br><br> &lt;Script&gt;<br><br> private void setBig( Object object )<br> {<br> object.img.width&nbsp; = 44;<br> object.img.height = 44;<br> }<br><br> private void setMedium( Object object )<br> {<br> object.img.width&nbsp; = 33;<br> object.img.height = 33;<br> }<br><br> &lt;/Script&gt;<br> &lt;/Module&gt;&nbsp;&nbsp;&nbsp; <br>&lt;/TagsME&gt;</pre>
<br>
You get a fish eye menu on your app:<br>
<br>
<table
style="text-align: left; width: 533px; height: 517px; margin-left: auto; margin-right: auto;"
border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="vertical-align: top;"><img
style="width: 223px; height: 507px;" alt="TagsMe Fish Eye Menu"
src="../../../images_www/articles/urrutia/tagsme-fisheye1.png"><br>
</td>
<td style="vertical-align: top;"><img
style="width: 223px; height: 507px;" alt="TagsMe Fish Eye Menu2"
src="../../../images_www/articles/urrutia/tagsme-fisheye2.png"><br>
</td>
</tr>
</tbody>
</table>
<br>
<br>
As you can see in the example, you can easily access properties of the
objects shown in screen.<br>
<br>
<h4>How did you decide on the NetBeans Platform for creating the GUI
editor?</h4>
First of all, at MDTEC we try to use standards always. After several
years of developing apps for mobile phones you become a LOVER of
standards and of anyone who implements them correctly. Anyone who has
developed JavaME knows what I mean. So basically we had only one word
in our minds: Swing.<br>
<br>
Also, we needed a powerful XML editor, and a clear and powerful
architecture to extend our tool (every app WILL grow, and growing was
one of our objectives in this case) to satisfy our customers'
requirements. The answer was clear to me:&nbsp; NetBeans and its Rich
Client Platform. In my particular case, I had little experience with
Swing, so using Matisse was a personal requirement .<br>
<br>
<h4>Which features of the NetBeans Platform did you find the most
beneficial?</h4>
From my point of view the benefit of NetBeans isn't a specific
module, but its modular architecture: Goodbye Jar Hell! You can safely
change some of the platform modules (as we did with XML editor) to
create your own personal platform. Updates and dependencies are managed
by the platform. Communication mechanism between modules is really
decoupled; unit tests are easily performed; functional testing is like
writing a simple script. These are benefits you discover when
developing a complex application and you realize that in the NetBeans
Platform you have the holy
grail of great development: modularity.<br>
<br>
But if I have to mention some modules, I do appreciate the Project API,
which is so comprehensive that our TagsMe™ project didn't need one nor
an ant build.xml in order to have an active Java module. The FileSystem
API, a wonderful abstraction that allows you to access xml tags as
folders and files in a file system. And also as I said, it's wonderful
that a programmer with so little experience in Swing can develop an IDE
(one of the hardest desktop applications you can think of) in few
months.<br>
<br>
<h4>What were some of the biggest challenges you faced with your
project and how did you resolve them?</h4>
One of the hardest parts was to integrate <a
href="http://www.microemu.org/">Microemulator</a>, a great open source
JavaME emulator, inside TagsMe GUI. Microemulator comes in different
flavours, an Applet, a JavaSE application; but we wanted to include it
inside NetBeans to speed up design-test cycles. It was hard changing an
application designed to run in its own virtual machine, to then run
inside
another application. It was not a problem of Microemulator. I have
studied its source code—it's a fine piece of software engineering and
Bartek Teodorczyk has done a fantastic job. But we had to do
a lot of work to integrate it as we needed (decoupling as a module,
avoiding some Singletons) inside a TopComponent. But thanks to
Microemulator, you get
the result of your design quickly in TagsMe which helps development a
lot.<br>
<br>
<h4>What feature in the NetBeans Platform would you encourage people to
explore?</h4>
I'm very excited about Lexer Module: it is the starting point for
embedding
languages into others. Maybe in the near future, users could add
support
for their own DSL (written in JRuby, Groovy, Jpython, etc) easily.
Imagine (or better, "dream" as we say on the NetBeans Dream Team): code
completion and integrated help in DSLs designed for a particular
project with little programming. <br>
<br>
<h4>What does Java technology bring to your development work that other
technologies do not?</h4>
If we are speaking about mobiles: a marketplace of billions of possible
customers. No other technology can assure that. I know that there are a
lot of emerging technologies at this moment, but I think that some
people have forgotten the present while talking about the
future. Today you can reach an impressive amount of customers using
JavaME. Customers may have cheap or expensive phones, but a MIDP
implementation is standard. And of course, you will get to those
customers in the future, as standards evolve.<br>
<br>
If we speak about Java in general, I can only say that Java Virtual
Machine will be honored as an inflexion point in history of
computation: it was the first software to demonstrate that certain
approaches to computing (garbage collection, object orientation,
bytecode) were the best way of doing some things. Maybe Java didn't
invent many of those things, but Java was the first example of a very
successful language applying them. And still, after 13 years (an
eternity in computer engineering) it has some surprises: scripting
languages, desktop performance....<br>
<br>
<h4>About the NetBeans Dream Team: what did it mean to be selected?</h4>
First, I was honored that JavaHispano, the online community that I
participate in, decided I should be considered for membership on
NetBeans Dream Team. I
have to thank many people for their confidence in me. Second, being on
the Dream Team gives me the great opportunity to meet a lot of
developers, evangelists and Sun employees who are highly enthusiastic
about the NetBeans project. Last, it is great how other members of the
Dream Team
dedicate so many hours to help, discuss and promote a tool they
sincerely like. And we are speaking about great programmers who are
hard to impress by hype. They are a fine source of inspiration for me.<br>
<br>
<h4>Any last words about TagsMe?</h4>
We are releasing version 1.0 of <a href="http://www.tagsme.com/">TagsMe</a>
GUI this month, so stay tuned. I'm as confident as I was when I joined
this project that JavaME developers and mobile designers are going to
be very impressed with our work. I also want to take this time to thank
MDTEC and my colleague, Curro
Rueda, the creator of TagsMe™, who gave me the opportunity to
participate in such an exciting project. <span
style="font-style: italic;">Thanks Curro! I owe you a lot
of beer!</span><br>
<br>
<h4>If we inspect your mobile phone—which model—we would find what?</h4>
TagsMe™ applications of course. NewsMate™ and SportMate™ which informed
me that Spain won EuroCup 2008! <a
href="http://mooo.dev.java.net/servlets/ProjectProcess?tab=1">mOOo
Impress Controller</a>, a very useful app for giving presentations with
OpenOffice. I'm a Nokia Fan, and I have a N70. If any Nokia employee
is reading
this, I have no problem with receiving a N95 with which to test my apps.<br>
<br>
<div style="text-align: right;"><span style="font-style: italic;">(July
2008)</span><br>
</div>
<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-bold.html">Emilian
Bold</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><a
href="https://netbeans.org/community/articles/interviews/dreamprofile-giudici.html">i</a>
<br>
<a
href="https://netbeans.org/community/articles/interviews/dreamprofile-silva.html">Edgar
Silva</a><br>
<br>
</body>
</html>