Series: Meet the Dream Team Members

(In January 2007, we announced the 11 charter members of the NetBeans Dream Team, 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.)

Ibon Urrutia

Ibon Urrutia, NetBeans Dream Team MemberPlease tell us a little about yourself.

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 MDTEC, a technology company based in Marbella. I was elected by JavaHispano to be a representative on the NetBeans Dream Team.

How long have you been a NetBeans user?

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!

Your latest project: the TagsMe™ GUI Editor, was built on the NetBeans Platform. What should we know about it?

TagsMe™ 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 rapidly, easily and consistently, using syntax similar to HTML, for any device that functions on Java MIDP 2.0. You only need to provide a jar file and it automatically adapts for different resolutions, as demonstrated in this video.

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.

TagsMe™ GUI 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.

TagsMe Welcome Window and Microemulator
TagsME welcome window and Microemulator running a TagsMe application.

TagsMe Windows Screenshot with a SkinLF Look and Feel
A Windows screenshot, with a SkinLF Look and Feel, showing the XML's editor integrated help and the result application running on Microemulator.

More TagsMe Screenshots: Linux Screenshot with Default Look and Feel showing attribute value completion.

What applications have been developed with TagsMe™?

We have created many applications with our library. For example:
  • SportMate™ - 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
  • NewsMate™ - 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.
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.

Is the learning curve for TagsMe steep?

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™  projects inside TagsMe™ GUI.)

Give us code sample for a very basic application.

Here's an example that's included in TagsMe™ GUI :
<?xml version="1.0" encoding="UTF-8"?>

<TagsME xmlns=''xmlns:xs=''xs:schemaLocation=''>

<Module name="Fx3" >

<Class name="buttons"         








<Include name="top"file="/xml/includes/Top.xml"/>

<ButtonGrp name="Screens"  columns="4" anim.frames="10" area.x="0"
area.width="180" >

<Button name="ic1" onselect="setBig(ic1);setMedium(ic2);"
text="Icon 1" x="30" class="buttons" />

<Button name="ic2" onselect="setBig(ic2);setMedium(ic1);
setMedium(ic3);" text="Icon 2" x="70"  class="buttons" />

<Button name="ic3" onselect="setBig(ic3);setMedium(ic2);
setMedium(ic4);" text="Icon 3" x="110" class="buttons" />

<Button name="ic4" onselect="setBig(ic4);setMedium(ic3);"
text="Icon 4" x="150" class="buttons"/>


<Include name="bar" file="/xml/includes/Back_bar.xml"/>


private void setBig( Object object )
object.img.width  = 44;
object.img.height = 44;

private void setMedium( Object object )
object.img.width  = 33;
object.img.height = 33;


You get a fish eye menu on your app:

TagsMe Fish Eye Menu
TagsMe Fish Eye Menu2

As you can see in the example, you can easily access properties of the objects shown in screen.

How did you decide on the NetBeans Platform for creating the GUI editor?

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.

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:  NetBeans and its Rich Client Platform. In my particular case, I had little experience with Swing, so using Matisse was a personal requirement .

Which features of the NetBeans Platform did you find the most beneficial?

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.

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.

What were some of the biggest challenges you faced with your project and how did you resolve them?

One of the hardest parts was to integrate Microemulator, 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.

What feature in the NetBeans Platform would you encourage people to explore?

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.

What does Java technology bring to your development work that other technologies do not?

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.

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....

About the NetBeans Dream Team: what did it mean to be selected?

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.

Any last words about TagsMe?

We are releasing version 1.0 of TagsMe™ 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. Thanks Curro! I owe you a lot of beer!

If we inspect your mobile phone—which model—we would find what?

TagsMe™ applications of course. NewsMate™ and SportMate™ which informed me that Spain won EuroCup 2008! mOOo Impress Controller, 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.

(July 2008)

More Dream Team Profiles

Adam Bien
Emilian Bold
Vincent Brabant
Wade Chandler
Fabrizio Giudici
Joerg Plewe
Vinicius Sengeri
Edgar Silva

Not logged in. Log in, Register