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: Himalia, Hypermedia
Sunday, May 06, 2007
Name and conquer
This is a very famous principle in maths.
I think Donald Knuth was the one who first propose it in Mathematical Writing, but I am not completely sure.
For example: v = c + u(ci − cj + 1)
Should be v = c + ku, where k = ci − cj + 1,
If you're going to do a lot of formula manipulation in which (ci − cj +1) remains as a unit.
I still remember it from time to time, but never with maths involved ;)
Some time ago, I remembered it when I started with my investigation about user interface modeling techniques and I found the Hypermedia methods. Nobody knows about Hypermedia and I think the name has a lot to do with it. When you say "Hypermedia" people think in everything but formal models for the web. Well, this is the reason why they renamed it as Web Engineering some years ago...
However, some time ago I remembered this quote again while watching the Dave Astels techtalk about BDD (Behaviour-Driven Development). He was promoting the TDD (Test-Driven Development) philosophy, that says: "write the test before the code". He was the one who wrote the book about TDD that won the Jolt Award, but... he said, "actually, people wasn't using it"... Why? When you have a very strong deadline you just write the code and then the test (but only if you have enough time, don't you?).
But then, something came to his mind...
If you rename test as specification everything makes sense: "write the specification before the code". It sounds far better! Specification is a fist-step task in software development and everybody knows it. Everybody understand the Waterfall method. The good thing now, is that the specification can be tested automatically, because, at the end... it is a test.
Sometimes, the psychological influence of renaming things are amazing. This principle is not new but sometimes you can think it is only related with branding or marketing areas. However, it is true also in maths and software development techniques, unnamed or bad-named things can destroy everything you have done.
BTW, the Google techtalk isn't good enough to recommend it, but it has very funny final Kent Beck's quote:
"I always thought Smalltalk would beat Java, I just didn't know it would be called 'Ruby' when it did."
- Kent Beck
Labels: Hypermedia, TDD, Technology
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: Browsers, Himalia, Hypermedia, Usability, WPF
Saturday, March 04, 2006
Designing Interfaces
Well, finally I bought the Jenifer Tidwell's book.
But once I had it, she decided to move it into a new site showing there nearly the whole book! Ok, no problem. I prefer to read from real paper sometimes ;)
Although I think it's a very good basic-book covering most of the aspect of designing a user interface, I think it is very pour in navigation issues. I discover some time ago that Human-Computer researchers where not connected at all with Hypermedia researchers, and it is a huge waste.
Hypermedia patterns can be found here.
Labels: HCI, Hypermedia, Patterns
