himalia.net | community blogs

Thursday, June 19, 2008

We Are Up Again


WE had the server down during two weeks thanks to Yahoo (please do NOT register your domain with Yahoo Small Business at least you don't need it). Now, it's up again.

 

Keep tuned, news are coming... (slowly, but coming).

Labels:



Sunday, December 09, 2007

Bad Changes In The New GMail Version


Google has launched a new version of GMail with some good new features.  However, what really surprised me were the very bad changes in the user interface of the contacts "subsystem". Google has a very deserved prestige in providing dead simple and very well designed user interfaces. However, I think they couldn't repeat themselves this time. Luckily I am not the only one this time; users care about usability and as always, problems have more repercussion.

 

I was not going to post about this, but then I thought it could be a very interesting example to show how the right models/tools can help to avoid this kind of errors. Last but not least, I strongly believe you have to fall into a lot of mistakes in the process of creating a great user interface, but if you use the right tools and you are describing things at the right abstraction level, they become evident, and you can quickly walk through the continuous prototyping process to achieve a successful design.

 

What's Wrong With The Contacts Design In The New Version Of GMail ?

The main problem is it has a bad layout. Layouts should be simple and Google knows it more than anybody. Not only simple, they have also to be familiar, recognizable (yes, copy them from other user interfaces). Layouts aren't an innovation area and simple layouts have been all already invented.

 

So, What's Wrong With The GMail Layout?

Well, first of all it has too many areas. An area is the part of the screen where you will present a UI concept. Actually, you should have so many areas as concepts you want to present on screen at the same time. And you don't want to expose your user with dozen of concepts at the same time, so you don't want too many areas. In the new version of the contacts subsystem they have 5 areas (just in that part).

 

However, five areas wouldn't be a problem is they weren't so poorly orchestrated. Area orchestration, or Layout Behavior (as I lately redefined it) is the way you assign a hierarchy to the different areas on the screen. The main pattern you should know in this field is called Visual Framework. I will translate it in this way: "Try to keep the area hierarchy always, never mind which concepts are you presenting at each time in each area". 

 

The Layout Behavior can be defined using with transitions that are represented as arrows (this is a very natural representation). Each arrow means that the target will be refreshed when any action is fired in the source. Typically you expect that top menus refresh second layer menus, left or right bars refresh the content area and so on. This approach is very interesting because you don't need to think it in terms of events and other programming-related stuff. Just answer: when an action is fired in one specific area, which area(s) will be refreshed? If you can find a simple and recognizable orchestration for your areas, it will be good enough.

 

Back to GMail, have you seen this kind of orchestration in some other place?

 

GMail contacts new GMailLayoutBehavior

   

Other problem with the chosen transitions are the transition jumps. The one from FirstTopArea to the RightArea is anti-natural because broke the logic sequence. The same happens with the transition from LeftArea to RightArea, but in this case you should add that it provokes a a little inconsistence because there is another transition from LeftArea to CenterArea.

 

Other good advice to take when possible is to define the transitions targeting contiguous areas, in order to facilitate the focus flow of your user. Why jumping to the other side of the screen?  Users don't want to guess where to look after clicking something. In this case, the user is forced to jump his focus from the left to the right in one jump. When you press something, the refreshed area should be the one the user is expecting to be, and users don't expect to move their heads all around like playing Simon in a big wall.

 

Also, there is a very ironic problem, the very strange behavior in the search box. When you search a contact, a new item is added in the left list (groups and other stuff list), while the results are added in the center list at the same time. Why? What's the purpose of the left list with two fixed items, all the groups and an intermittent search result item? Why adding that item there? Why just not showing the results as Google taught us in a dead simple way?

 

Finally, probably the most annoying error is the inconsistence. Consistence is THE fundamental behind all great designed user interfaces. When you press the "New contact" button you are directed to the RightArea, but when you press the "New Group" button (placed just at it side) a popup appears on the top left corner of the screen, while  other popup's appear centered on the screen. Added up, it provides a baffling experience for the user.

 

Random isn't a good friend of user interfaces. Actions presented in the same style and grouped together, are expected to produce the same kind of feedback in the user interface. If they are going to provide different experience they should be separated or presented with a different style (see examples below).

GMailSearch WinXPStartMenu

 

So, now you may be thinking: ok, user interface guru-wannabe, how would you improve this? But I will answer it the next post, because it is already quite long ;)

Labels: , , , ,



Friday, November 09, 2007

Models @ Runtime


Talking with Daniel Görlich during the MDUCDE 2007, he told me about the new workshop he was organizing in the context of MODELS, "Model Driven Development of Advanced User Interfaces". Digging into the conference, I found this other workshop that also sounds interesting: Models @ Runtime. For me, it's funny because every time I present Himalia, the question about code generation -vs- runtime interpretation is on the table.

 

What I actually think is that it shouldn't be a public discussion. The user need to obtain good response times, fair processor consumption, etc. but how you provide that shouldn't be his problem. For example, I don't care if SQL Server or Oracle are generating specific code for each database definition or if they are interpreting each DB model in each query. And that's good, it should behaves as a black box for me. 

 

I think there are basically 4 things to take into account:

1. It is really one faster than the other one? People would usually think that the interpretation strategy is slower, but I think it highly depends on the quality of the generated code versus the quality of the runtime and the performance advantages you could take of having the model live @ runtime (for example, DBMS use optimization techniques as learning from the queries at runtime to obtain better response times).

2. In the resources consumption field I think interpretation is better, because you don't need to replicate everything each time, and so, you can let the underlying layers do their optimization work in a better way. 

3. Extensibility/Flexibility is the only field -as far as I can see- where generating code could be the better approach. In the DSL Tools book there is a very interesting discussion about what they called the "Customization Pit" and what kind of things you need to take into account when you support code-generation scenarios. Basically, if you are not providing the right hooks in your high-abstraction language, you should provide the ability to inject the customization somewhere in the process, and so, code-generation and partial classes could be the answer if you don't know which customization scenarios would you need to provide.

4. Before of partial classes, maintainability was a big problem for code-generation tools. Nowadays I think there is no big difference between both approaches.

Finally, sometimes, you just need the model live @ runtime, and so, if you decide to generate code you are at least duplicating the effort. For example, you may need it to modify it, to learn from it, adapt it, etc.

 

With Himalia, I followed the runtime approach. Why? Because I think that in the long run, having the model live @ runtime will be far better in order to: let the end-user modify his user interface, learn from the model, etc. Obviously, as I don't want to be hoisted by my own petard, I have to dig very well into the customization scenarios and support the required hooks.

 

Luckily, this is the first time in a long time I found many people converging into this point, as more and more frameworks are being interpreted, and now, there is a conference about the topic :) 

Labels: , , , ,



Monday, October 15, 2007

Continuous prototyping


From a long time ago I wanted to post about this topic because it is one of the features I love about the way we can build the user interfaces with Himalia.

 

Iterating From Paper

Many studies have shown the importance of early prototypes. Actually, recent articles point to paper prototyping as one of the best tools for the development of user interfaces, in a cost-benefit point of view, because it helps to point the UI in the right direction from the beginning at a very low cost (if you don't use it, you may be very wrong, too late).

 

But paper prototyping has some problems, most of them related to accuracy and imagination:

  1. you can't test interaction in a reliable way
  2. what you see is not what your get; but mainly, is not what the user see
  3. once you have started with the development, paper-prototyping becomes more and more expensive
  4. once you have prototyped, you have to translate it to code (and you know that translations produce errors)

I think it's similar to the problem we used to have with integration of software before Continuous Integration, so, a similar solution could make sense also here. Note that what makes continuous integration possible, is the fact we have a tool who knows the process used to create software. That is, our integration server knows about check-ins, tests, fails, people, etc and use them as first-class citizens in the process. I think that more and more tasks in software development should be made as frequent as you can, and automatically when it's possible.

 

If we wanted to take this approach in the user interface field, I would like to have a tool who knows about prototypes, and let me:

  1. start with a little one
  2. load most used layouts and patterns from a repository
  3. change the initial prototype through many steps
  4. test interactivity from the beginning and in each step
  5. iterate in seconds from the changes to the user-feedback
  6. build the final version as an evolution of the initial prototype (I don't want to throw more paper to the bin)
Getting feedback

One main aspect that should be considered, is that the prototyping task is not finished once you release your application. In other words, usage analysis and statistics have changed the way web applications are built today (and probably part of the commerce' history), turning marketing into a tangible discipline.  World-class web enterprises are already doing "continuous prototyping", regardless if they use this term or a specific tool in the process. Sites like Netflix, Amazon and Facebook are continually modifying the user interface in order to better adapt it to the user needs or/and add new functionalities. 

 

I think it is obvious, but I will say it anyway: not only web user interfaces should adapt itself from users. The user is the same, regardless he is watching the application inside a browser or not. However, while in the web we can just add a simple javascript to all the pages and get a good analysis, you can't achieve it easily in the desktop (mainly because it lacks of the "addressability" concept).

 

Putting All Together 

So, in order to accomplish both things, we need not only a good tool in the developer side but also a good framework in the user side to make the full story available for us, because feedback is -at least- as important as early-prototypes.

 

Prototyping should not be seen as the task involved in building an artifact, but as the continuous process of adapting the user interface to the users needs.

 

In this way, everything we can do to reduce the time from the development to the user feedback, is going to give us more time to do more iterations, and as with continuous integration, each iteration will increase the quality of our "final" product. 

Labels: , ,



Thursday, September 20, 2007

What Is A Platform?*


Probably, you have read the Marc Andreessen' post about the three kinds of platforms, and the interesting answer from Joshua Allen. If you don't, I recommend both.

 

First, I don't believe Marc Andreessen is using his argument to advertise Ning. It makes no sense, he doesn't need it. From my point of view, he has an obviously strong conviction about where the platforms should go, and that is the reason why he founded it.

 

He proposes basically two things: something can be called a platform if you can program it; and that you can classify all the platforms in three levels depending on where the code runs (remote code that uses an API to communicate with the platform, a plugin attached to the platform, an application inside of the platform).

 

Then, Joshua responded that his analysis has some problems because the data is the platform, not the software. That is clearly part of the vision of Tim Berners-Lee for the semantic web.

 

But, my question is: is data enough?

I don't think so. I think we need a Marc Andreessen' style platform to make the Joshua's data accessible in a massive and new way for everyone, something very close to the Strategy Letter IV that Joel wrote a few days ago. With that conviction I founded Himalia two years ago, to give the developers something they can program to give their users much more data available, in an easy and interoperable way. This is a very long way, but I am convinced that it is where we should go, because we have the technology to do that.

 

 

(*) I added this post to my software redefinition series, What Is A X?. We need to rethink many of the definition of the main concept of our still young industry.

Labels: , , ,



Friday, August 31, 2007

I have the DSL Tools book!


It's very strange to see part of your work in someone else book...

Thank you Andrés for the book!

 

fotoLibro

 

I will take the book to the conference to read during my loooong flight to Seoul. I will post some thoughts about it when I come back home.

Labels: ,



Thursday, August 16, 2007

I'm going to the MDUCDE2007 in Seoul


I am traveling to Seoul (South Korea) to present "HIMALIA: Model-Driven User Interfaces Using Hypermedia, Controls And Patterns" in the first workshop on Model-Driven User-Centered Engineering 2007. The presentation is programmed to be on September 5 at 14:00hs, after the launch. I am expecting to meet interesting people there, and have some productive interchange with other similar-fields researchers to enrich ourselves.

 

   

 

I made this map to show the straight and VERY LONG flight. It is difficult to measure the amount of time on-the-fly because of the different time zones, but in any case, it isn't less than 30 hours!!! I hope not to experience very much jet lag, but I think it will be impossible to distinguish between jet lag and 30 hours of flight ;) 

 

So, don't expect very much activity in this blog from 1st to 9th September. I will share the photos and surely some comments when I came back home.

 

BTW, if someone knows the people in the DICyT, could you hurry up them? I sent them an one-page-letter three weeks ago, but they didn't have enough time to see it yet... came on! it's one page! They should be receiving like 1000 letters a day to argue that, and I don't think it's the case.

Labels: , , , ,



Thursday, August 09, 2007

Navigation != Presentation


BrowseGoods (via elAbra, via dirk) presents the same navigation model than an usual e-commerce shopping, but, with a different presentation approach.

 

For both cases the Navigation Model should look like a traditional hierarchy composed of menus and indexes of goods. But this time, it is presented in an only zoom-in-out control, instead of using traditional controls as does -for example- Amazon (i.e. menus, grids, search boxes, etc.).

 

The Navigation Model exposes the navigation paths the user have to follow to reach each concept; the Presentation Model just defines where and when render each concept and specifies which control to use for each case.

 

It can be a good example to show the power of the separation of concerns exposed in the Himalia's meta-model (that was taken from older hypermedia methods). I will add it to our Mingle.

Labels: ,



Thursday, June 28, 2007

Himalia on Acropolis


Some people believe Himalia and Acropolis may overlap in some zones. And they are right! Himalia and Acropolis overlap in the zones where Himalia doesn't want to be... Yes, some time ago we had to build our own service schema and now we were thinking about a composite strategy for large teams... but it isn't our real focus. We just want to have more time to show you how we can build semantic user interface in minutes... this is our mission!!! (BTW, we will need this services schema anyway for the other platforms: asp.net and .net 2.0. Keep in mind that Acropolis requires .net 3.0)

 

Now that the first Acropolis CTP is public, our composite strategy will be far easier: we should put just on top of Acropolis.

So, I spent a couple of hours trying my first approach... (there are other two methods we are discussing right now and will attack in the near future).

 

**** Disclaimer: This code doesn't work with the public version available from December. ****

 

1. Create a Part Library, and name it Himalia.Acropolis

2. Add a new Part (HimaliaPart) and a new PartView (HimaliaPartView)

3. Add a new connection point to the Himalia Part: RootElement

  <AcropolisComponent.ConnectionPoints>
          <ComponentProperty Name="RootElement" />
  </AcropolisComponent.ConnectionPoints>

4. Override the OnFactoryCreationComplete method on the HimaliaPart

        protected override void OnFactoryCreationComplete()
{
base.OnFactoryCreationComplete();

// Creates the Himalia Session in the WPF Runtime
WinFxUISession session = new WinFxUISession(this.Name);
session.StandAlone = false;
this.Title = session.Title;

// Set the root element to the connection component property
this.RootElement.Value = session.Start<FrameworkElement>();
}

5. Override the OnPartAttachedmethod on the HimaliaPartView

        protected override void OnPartAttached()
{
base.OnPartAttached();

// Add the root element to the control
this.Children.Clear();
this.Children.Add(this.Part.RootElement.Value as UIElement);
}

6. Now, in your Acropolis application, you can use HimaliaPart's, like this

  <AcropolisApplication.ChildParts>
<Him:HimaliaPart Name="C:\\PetShop.hui" />
<Him:HimaliaPart Name="C:\\Invoices.hui" />
</AcropolisApplication.ChildParts>

7. Replace the OnActivated method of the Application (it throws a null exception because the MainWindow is bad set, I don't know why)

        protected override void OnActivated(EventArgs e)
{
foreach (Window w in this.Windows)
{
if (w is Window1)
{
base.MainWindow = w;
break;
}
}
base.OnActivated(e);
}

8. This is how it should looks like:


HimaliaOnAcropolisInvoices HimaliaOnAcropolisPetShop


 


Conclusion


You can integrate Himalia and Acropolis points of view nicely. In one side, Acropolis allow you to better segment the desktop application in divisible parts. On the other side, Himalia allow you to better create each part, focusing in the most important things for your users. Remember, Himalia focuses on usability and is a modeling tool. Acropolis focuses on composability and extensibility and isn't a modeling tool.


 


But soon, you will see how these developer-side separated user interfaces could be user-side integrated again... just give us some time.


 



Technorati tags: , , , ,

Labels: , ,



Wednesday, May 23, 2007

Himalia first result in Yahoo for: Model driven user interfaces


Himalia is being retrieved in the first place at least for the following search keywords in Yahoo:

  • . model driven user interfaces
  • . model driven user interface
  • . model driven uis

 

 

 

This is the fist time in the history of the World ;) that any Search Engine retrieves Himalia as the first one in the result list for a search keyword not including: "Himalia", "Leonardo Vernazza" or "leovernazza". I always said that the Yahoo search engine was moving faster that the Google one... ;)

 

Let me know if there is any new keyword throwing traffic to Himalia.

Labels: ,



Friday, May 18, 2007

DSL Book almost ready


As Steve Cook points out, the DSL Team's Book is almost ready for sale.

 

I want to congratulate the DSL Team, they have made a fantastic work with the tool itself and I am sure the book will be great too.

 

Gareth Jones indicated that you can read it online using Safari.

You can also look for "Himalia" inside it using this online tool ;)

I told you.

Labels: ,



Saturday, April 28, 2007

About cube controls for WPF


Telerik has announced their Cube demo...

 

I know that with WPF the designers can free their minds, but... came on! I don't want to push the faces of the cube with my mouse! This kind of crazy-graphic-designer-made controls are only giving more arguments to Jacob Nielsen against the 3D (see 2D is Better Than 3D and Top 10 Bloopers for two examples, or look for "3D" in UseIt.com if you want more).

 

 

Some time ago, last year, while searching for early WPF controls, I found this cube calendar (Selector3D) made by Ricciolo. I didn't want to be less, so, I developed a control for Himalia using this free cube control. Now, is time to show it.

 

The control works like a 3D tab, just this, when you press the links the content moves in a cube-like to show the next content, but it's SO COOL when you play with the back and forward buttons! I must confess that I spent like 20 minutes just going forward and backwards the first time I ran it ;)

 

Believe me, you can't stop of pressing Back and Forward. And that goes even worst, when you notice that got all this stuff with just one drag & drop in the designer, and that it's full reusable, and...

 

Just in case, the Navigation and Layout models for this example are the following:

 

The container control is the "red hollow rectangle" in the navigation model, and it means that all the elements within it will be presented using one only control. In this case, we selected the Cube control to do this task. Obviously, the control should know how to present that navigational path, but it is defined in its contract.

 

But don't be anxious, we will include this control in the next release...

Labels: , , ,



Friday, April 27, 2007

Himalia will probably be presented in Seoul on September


I made an abstract submission for the First International Workshop in Model-Driven User-Centric Design & Engineering that will take place in Seoul/Korea on September 4-5, this year.

 

My submission was accepted. Now, I have to make it happen. That means: to complete the final paper and figure out how to go to the other side of the world ;)

 

If you will be in the zone, please let me know, it will be great to met there.

Labels: , ,



Monday, April 16, 2007

Himalia - User Interface Builder


When someone ask me the typical "what are you doing?" question I have two possible responses.

I'm doing a software product for software developers, you won't understand.

This is the typical answer to my father, my sister and my girlfriend (my mother doesn't ask me, she already knows I'm playing with the computer). But it works, and nobody keep asking and it is the idea ;)

 

On the other hand, for the computer guys my answer has changed in the last year.

 

At the beginning, I defined Himalia as a language for service-oriented user interfaces. It's still the definition you can see in the index page of the website. But it had a problem: nobody knew what it was and they used to say something like: "aaahh". Nobody has ever asked me a second question, but it wasn't the idea here ;)

 

Then, Andrés Aguiar, defined it as a model-driven tool for user interfaces.

 

The first time I read it I found it simplified, but then... I understood. You can't say everything in the first sentence, and really you don't want to do it. When you try, you loose the chance to get the people interested. Although this definition doesn't define the technology and focuses only in the tool (Himalia Guilder), it's a very good introduction that everybody understand.

 

But now, my new answer is that Himalia is a user interface builder, that is the guilder definition after all. Why? I don't want to carry on the Himalia's shoulders all the problems of the model-driven tools' history. Himalia wasn't made just for modeling, it was made for modeling and running a user interface; for the specification time, the design time but also for the runtime. We want something else that writing down the models in a paper and admire them, that is the purpose of most of the formal modeling languages.  So, this definition make sense for the real Himalia goal: to build user interfaces. Simple.

 

Keep it in mind, Himalia is a user interface builder, and more, Himalia is the user interface builder, until someone copy us.

Labels: ,



Thursday, March 22, 2007

Which Language Do You Read?


This snapshot was taken from the Himalia's website visitor stats from Europe.

The top-five list is the following:

  1. France
  2. Germany
  3. United Kingdom
  4. Netherlands
  5. Belgium

This is a little strange, if you see the Internet Usage in Europe stats:

  1. Germany   50,471,212
  2. United Kingdom   37,600,000
  3. France   30,837,595
  4. Italy   30,763,940
  5. Russia   23,700,000
  6. Spain   19,765,032
  7. Turkey   16,000,000
  8. Netherlands   12,060,000
  9. Poland   11,400,000
  10. Portugal   7,782,760
  11. Sweden   6,890,000
  12. Ukraine   5,278,100
  13. Belgium   5,100,000

 50. Vatican City State 93

 

So, first conclusion, the Pope is using Internet and as a consequence, the Vatican firewall configuration will be a controversial issue some day ;)

 

And second, you need to spread the word in different languages if you are planning a global strategy. I think this post helped giving french readers to the website and turning France as the second country in the world-wide Himalia's website visitor list, after USA.

 

There are post about Himalia written in French, Spanish, English, and now, there's a post written in Lithuanian, but I don't understand anything about them ;)

 

The point is that there are a lot of people out there that never will know about Himalia just because the read in other languages, and so, we will need help with it :-)

Labels: ,



Tuesday, March 06, 2007

Himalia at the Microsoft Architect Forum / Santiago / Chile


Microsoft (through Wilson Pais) invited me to talk in the first Architect Forum of the year in Santiago de Chile.

 

I also used this opportunity to visit a friend of mine who lives there, Hugo Cortés. I meet him for first time in March 2004 when he come to Montevideo -as a member of Un Techo Para Chile- and helped us to create Un Techo Para Uruguay, a non-governmental organization that help houseless people in my country. I'm outside the organization now (because you can't do everything at the same time), but I really feel as a member of it... technically, I'm one of the founders ;)

 

Back to the Architect Forum, Alejandro Pacheco made a discussion about the available technologies for the presentation layer. After that, Martín Cabrera introduced Domain-Specific Languages, and showed a mini-example. Then I presented Himalia and finally, Carlos Carminati and Luis Molfino presented their company and what are they doing.

 

In the picture, from left to right, you can see to Martín Cabrera (Microsoft), Carlos Carminati (d2B), Luis Molfino (d2B), Alejandro Pacheco (Microsoft) and me. 

 

My presentation was specially discussed with the people, so I think they enjoyed it ;) I already know that the Himalia proposal is disrupting, and it's great when people keep thinking about these ideas.

This photo was taken by Luis Molfino, as you can see he's an artist :)

 

I want to thank you to Martín Cabrera and all the Microsoft Chile team. Surely we will meet again in the near future...

Labels: , , , ,



Saturday, March 03, 2007

New Presentation DSL Designer


One of the first task after the beta release was to redefine the Presentation Model Designer (the one under the "Layout" node in the solution explorer).

 

It should be intuitive, useful and simpler.

 

As you can see, we were very uncomfortable with the ease-of-use of the 0.8 version, but it was just the first presentation designer version.

The Presentation Model Designer is also made with the DSL Tools, and in the next released version, will looks something like this.

 

 

 

The new features include:

  • . Screen resolution design-time testing. It allows you to change the target screen resolution and see how it looks.
  • . Transitions were included in the model itself as arrows... It's far more intuitive!
  • . Area control was merged with the area definition in order to make it simpler to understand.
  • . Propagation rules were removed. Now you should set the landmarks and/or the propagating child (the model is still using propagation rules, but you don't have to care about it anymore). The landmarks are shown in the diagram, decorating the area with the navigational element icon.
  • . You can define visual effects (fx) for any transitions, like in Power Point. This feature will change the world ;)
  • . All the diagram decorators can be shown/hidden with in one-click. The decorators are: Docking, Transitions, Effects, Area names, Constrains, Landmarks and Propagation rules. In this way, you can focus in the specific aspects you are modeling at each moment.

Labels: , ,



Thursday, February 08, 2007

Sharing news


The beta was released on December 12, two month ago. Now, I want to to share some news with you:

 

  • . On December 19 I was invited to talk in the Microsoft Architect Forum, in Montevideo.
  • Steve Cook contacted me. He and his team are writing a book about DSL Tools and they want to include Himalia as a real-world application using their new toy. We'll be glad to appear there.
  • . I was also invited to talk in the Microsoft Architect Forum in Santiago de Chile (February 27 28).
  • . We started to work in smooth design-time integration between Himalia and DeKlarit (the first alfa-prototype is working right now).
  • . The guys from TangibleArchitect contacted us too; we will work with them in the near future in order to integrate both products.
  • d2B decided to be the first company to develop controls for our platform. We are just starting to work together...
  • . In the meanwhile, we had near 200 downloads... and several other "in process" things I can't still talk about.
  • But, the community cannot grow without documentation and interaction. So, I am pleased to announce the new Himalia Community Forum and the first documentation package. We know we are still far away from a "good documentation", but we are in the road now, and the forum should help in the meanwhile.

Labels: , ,



Wednesday, January 31, 2007

Himalia at the Microsoft Architect Forum / Motevideo / Uruguay


Last December 19 I was invited to talk about Himalia in the Microsoft Architect Forum in Montevideo, Uruguay. It was the last one of the year, so it was very nice for all of us (you should read: there was sandwiches, and cider :P).

 

The last and second presentation was made by the d2B guys. They are working with WPF creating really cool applications and controls. We talked after the forum, and they decided to be the first company to integrate into our control platform. So, they will provide this kind of controls for Himalia soon, and you will be able to "guild" very exciting user interface in minutes.

 

I am sure that everyone will enjoy it!!!

Labels: , ,



Tuesday, December 12, 2006

Himalia [beta] is available


The aim of this release is to show everybody the Himalia point of view. It isn't a final version at all.

 

We know there are several errors and incomplete features, but early feedback is more important. You can get it from http://www.himalia.net/download.html.

Labels:



Sunday, November 26, 2006

The "page" thing


Reading this Joost Willemsen post I found myself thinking once again about the same thing: what is a page?

 

He tell us that single-page user interfaces are better than multi-pages ones. But.. how to understand it? Is a (Win)Form a page in a Desktop application?  What if you design each task in a different form? Didn't it has the same problems?  At the same time, using frames, you can see n pages at the same time... so?

 

The problem, from my point of view, is that the user doesn't know about pages. Pages are a platform related artifact, just like php archives, or java classes. Pages live in the implementation world, and NOT in the user world. The hypermedia paradigm tell us that users "know" about the hyperspace (something like the internal representation the user makes of the user interface).  Using this terminology, a navigational element represents an hyperspace concept, like an Amazon "Book".

 

User interface designers need to make conclusions about how to show related concepts in the screen at the same moment, but not about how to code html.

 

The Back/Forward problem

One of the most interesting problems related with pages are the Back/Forward commands. The Browser's Back/Forward is a page-based implementation. It was expected, because Browsers are themselves page-based.

 

However, it causes a lot of problems for the user because "going back" is not the same than "go to the previous page" in most of the cases. Particularly, we had this problem in an intranet application where we loaded some charts using a web services from the client side. I am sure that most of the AJAX applications out there have the same problem today, because you need to interact with the Back/Forward by hand to avoid it. Now, the Avalon Navigation support will have the same problem again, because it was implemented XAML-file based. Of course, you can subscribe to the Journal.. but... will be everyone handling it in the right way?

 

So, I think it is time to forget pages and start talking about concepts, hyperspaces and navigation elements. There are the real patterns.

Labels: , , , ,



Monday, November 20, 2006

Measuring UI Productivity with Himalia


I was reading the Jakob Nielsen's article about Productivity and Screen Size. He says: "Productivity is one of usability's most important elements", and he is right :)

 

I think that the Himalia's approach facilitates the way User Interface productivity can be measured. I believe we can find a way to measure it automatically, maybe setting the weight of each Use Case for each profile (or "Persona"?). At least, we should be able to compare the productivity of two different user interfaces definitions solving the same user goals against one specific criteria, and that is better than nothing.

 

Now, I am adding it to the ToDo list. Who knows?

Labels: , ,



Sunday, November 19, 2006

Releasing this week


We have all ready to release the first public version of Himalia this week.

 

It will include the designer for VS2005 (Himalia Guilder for Visual Studio 2005), the abstract Runtime environment, the WPF adapter for the runtime, and a standard control library for WPF too. Although we have no intentions of providing controls, we should make it while we have no alliances with third party control providers. We have also included a study case in this package: the Pet Shop application.

 

We think that this release will allow you to "guild" very quickly very interesting UIs.

 

Some work was also made in the website, there is a comparison chart with other technologies like CAB, UIPAB, RubyOnRails and DeKlarit. Now, you can fix an idea about what kind of problems are we trying to solve with Himalia.

Labels: , ,



Wednesday, July 26, 2006

I am back.


Just to say two things: you should read this Martin Fowler article about Ruby, RubyOnRails and enterprise applications; and second, after finishing the alfa test, I have updated the designer screenshots.

Labels: ,



Wednesday, May 31, 2006

All editors included


Finally, we included the four editors in this first beta version of the Himalia Designer for Visual Studio (a.k.a. Himalia Guilder).

 

Most of them have been made using the DSL Tools, but the Layout Editor is an extension of the typical WinForms editor. It is taking some more time than was expected but the result will be an "almost full" functional version.

You can check new screenshots at the Preview Center.

Labels: , ,



Thursday, April 27, 2006

VSIP & DSL


Well.. ok, I am facing some problems merging the IVsHierarchy and the DSL Tools API's... They seem to be two very different worlds, so I will need a few days to get the first Himalia Designer for VS2005 beta beta beta. :)

Now, you can check the first screen shot in the Preview Center.

Labels: , ,



Thursday, April 06, 2006

Himalia & Services Adapters


Himalia generated (and interpreted) user interfaces are built upon a service layer.

 

In fact, the user interface use an adapter (in the GoF term definition) to communicate with the real services layer. That makes the user interface completely independent from who gives the services, and only knows about the contracts they must implement.

Last week, reading some DSL blogs, I found a Edward Bakker' example. He is creating a DSL for services, with contracts, implementations, etc...

So, it could be great to join both approaches in the near future.

Labels: ,



Himalia for VS2005


As you may know, I've been working developing Himalia for a long time.

At this moment, I am working with the DSL Tools to make a VS2005-Addin for Himalia Projects. y first approach was to make the Use Case State Machine Model and the Navigation Model. In a few days I will post here some news about it.

The DSL Tools are very easy to use and interesting (forgetting pre-release problems like hand-check cross-references from XML and domain model definition).

Labels: , ,