Archive for August, 2006

Clickstream Study Reveals Dynamic Web – fast web navigation in browser study heatmaps

Clickstream heatmaps and web page statistics show rapid interaction over smaller areas of the screen. The authors recommend that web developers create concise, flexible, and fast loading web pages to keep pace with the speed of web navigation.

WebSiteOptimization.com

Performing loops in XSLT

If you read this blog from time to time, you might have noticed that I am often talking about the XML/XSLT combo. Some people really don’t like declarative programming languages, because it is well, declarative. It works for me though.

(http://en.wikipedia.org/wiki/Declarative_programming). (Dimitre Novatchev actually proved [PDF 400kb] that XSLT can be used as a functional programming language)

One of the problems with XSLT is looping. To create a loop, you have to be able to update the same variable over and over again until you reach the desired value for that variable.
But XSLt doesn’t do that. if you declare a variable it will hold the same value untill the end. this bit really puzzles alot of people, but wait there is a solution.

You can get around almost any problem because most of the XSLT processors available, allow you to extend your XSLT stylesheet with JSCript, C# or whatever compiler is available on your system. But it is a bit messy.

If you start using this kind of combination of JavaScript and XSLT, your code gets unreadable very soon. So that is the reason why Oliver Becker created this nice loop extension. He uses nothing but XSLT that can be used as any other XSLT Extension. Have a look at the code below how it’s done:

<loop:for name="i" from="10" to="1" step="-1">
 <loop:for name="j" from="1" to="10">
  <xsl:value-of select="$i * $j" />
   <xsl:text>&#x9;</xsl:text>
  </loop:for>
 <xsl:text>&#xA;</xsl:text>
</loop:for>

He implemented for loop AND while loops.

<loop:while test="expression">
 <!-- optional some <xsl:variable> elements -->
  <loop:do>
   <!-- template body -->
    </loop:do>
    <loop:last>
   <!-- template body -->
  </loop:last>
 <!-- at least one <loop:update> element -->
</loop:while>

And a “function” to just update a variable:

<loop:update name="qname" select="expression" />

Have a look at the other XSLT stylesheets he is offering for download on his homepage:

  • Merging XML documents
  • Tracing execution of a stylehseet
  • Quine: The Self-Reproducing Stylesheet

Usability Guidelines for CMS

Openusability.org is hosting a Wiki project with usability guidelines for creating a CMS. Not all content is available yet but it looks promising.

In search for Google

Yahoo and MSN made minor tweaks to their interface. One of them seems like a reaction to how people use search boxes.

If you search for the phrase “google.com” on one of these search engines, they will give you a second search box, similar to the one on top giving you a second try to use their search page.


What is going on here?

People buy package PCs and internet connection deals that involve changing the homepage to the preferred search engine of the dealer you bought it from. When people finally get the internet connection working, they start IE and type “google.com” in whatever box they can get their hands on. It has been known for a while that people use other search engines like that.

The strange thing though is that they did not notice the address bar and the similarity of the address in there and what they just typed.

Why not type “google.com” in the address bar?

I guess that people don’t know the difference between the browser interface and the webpage that is rendered by the browser.
The changes in the interface of these result pages, Yahoo and MSN, are most probable driven by real case studies, so you should be aware that:

  • changing browser interface elements like the scroll bar will obfuscate the difference between browser and webpage even more
  • people don’t know what an address bar is
  • people don’t know what a URL is used for
  • people know how a URL looks like
  • people know what a link is
  • people know what a textbox is and a button to search

The visitor on your site might be the same person that uses Yahoo as a bookmark to go to google.com.

Extending Umbraco with a library

I have been using the .net based Umbraco CMS for more then a year now and never have I had the feeling it limited me in anyway. But now I need a quick and dirty approach to connect to a database other then the Umbraco database.

Umbraco can grab XML feeds using the build in XSLT library extension, but I am just playing around at the moment and need direct access to manipulating query results.

So I created my own XSLT library. It has one 1 method at the moment: QueryDatabase(‘connection string’,'query’)

Just a note: it probably is not the greatest idea to use this in a production environment. What I plan to do afterwards, is to hard-code the query into another method not allowing any unknown request to the database.

But here is the code anyway (code pasted below), the dll and the VS 2003 project zip file.

If you want to use it without looking at the code just do the following actions:

  1. Download the astuanax xslt libarary dll
  2. Unzip the file and put it in the “/bin” folder of your Umbraco website
  3. Edit the file “xsltExtensions.xml” in the folder “/config” and
  4. Add the following line:
  5. Once you got this running, go to the XSLT editor in Umbraco and paste the following code into your xslt file:

    This will show you the XML code you can expect from this query.

Leave a comment if you like it. Or if you have a problem using it, let me know and I will try to fix it.

C# Code:

The Everyday Information Architecture Pool on Flickr

Flickr: The Everyday Information Architecture Pool

Everyday Information Architecture

More Persona examples

Maybe you are interested in my Persona tool, a form for sales and marketing people to create personas
Last updated on 13th November 2007.

At the moment it seems more and more people are interested in using personas in the development process of writing software or creating websites. Here are 3 more examples and some really good introductions to personas

Examples

Articles

Buttons all over the place

We life with and by buttons. Have a look at the history of the Button.

Categories

About

My name is Len Dierickx and this is my personal blog. I studied Musicology at the UG, long time ago but got more and more into webdevelopment. I started this blog because the EuroIA summit in Brussels (Belgium, Oct 2005), was such an inspiration. And I was thinking about a blog on IA a while now, so that was the extra kick I needed to get it actually done.

Powered by WordPress