| <!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 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 <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™ |
| 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"><?xml version="1.0" encoding="UTF-8"?><br><br><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'><br><br> <Module name="Fx3" ><br><br> <Class name="buttons" <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> /><br><br> <Include name="top"file="/xml/includes/Top.xml"/><br><br> <ButtonGrp name="Screens" columns="4" anim.frames="10" area.x="0" <br> area.width="180" ><br><br> <Button name="ic1" onselect="setBig(ic1);setMedium(ic2);" <br> text="Icon 1" x="30" class="buttons" /><br><br> <Button name="ic2" onselect="setBig(ic2);setMedium(ic1);<br> setMedium(ic3);" text="Icon 2" x="70" class="buttons" /><br><br> <Button name="ic3" onselect="setBig(ic3);setMedium(ic2);<br> setMedium(ic4);" text="Icon 3" x="110" class="buttons" /><br><br> <Button name="ic4" onselect="setBig(ic4);setMedium(ic3);" <br> text="Icon 4" x="150" class="buttons"/><br><br> </ButtonGrp><br><br> <Include name="bar" file="/xml/includes/Back_bar.xml"/><br><br> <Script><br><br> private void setBig( Object object )<br> {<br> object.img.width = 44;<br> object.img.height = 44;<br> }<br><br> private void setMedium( Object object )<br> {<br> object.img.width = 33;<br> object.img.height = 33;<br> }<br><br> </Script><br> </Module> <br></TagsME></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: 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> |