Open Source Search Social

Thursday 5th November, 2009

It’s been a little while since the last Open Source Search Social, so we’re getting really imaginative and holding another one, this time on Wednesday the 18th of November. As usual the event is in the Pelican pub just off London’s face-bleedingly trendy Portobello Road.

The format is staying roughly the same. No agenda, no attitude, just some geeks talking about search and related topics in the presence of intoxicating substances.

Please come along if you can, just get in touch or sign up on the Upcoming page.


Avoiding Underground Design Mistakes

Sunday 23rd August, 2009

One of the main challenges in industrial design is guiding people towards successful usage of your product (be it a web page or a transport system). People rely heavily on intuition, and communicating the ideal usage of your product into their subconscious is not a trivial exercise.

People have a habit of making decisions using the first gut feelings they get, rather than slowly and methodically evaluating all the information. Gary Klein published a great book full of fantastic case studies on this subject back in 1999. The consequence for product design is clear; not only do you have to make sure that the usage of your product is obvious, but that there are as few ways as possible the usage could be misinterpreted.

Misinterpretation

Misinterpreted usage is a common problem, you probably walk past examples of it every day. For example, on my journey to work I catch the District Line from East Putney to Notting Hill, (please say hello if you see me) and on the way I go through Earl’s Court.

At Earl’s Court the eastbound line splits and heads in two directions. Every day I see people get onto the wrong train, either jumping off when they realise or cursing when they realise the train isn’t going in their direction. Why? The departure board quite clearly shows the train destinations and these people evidently know their intended routes, and there are only two eastbound platforms.

Looking at the platform’s departure board it’s not clear why people get it wrong every day.

Departure board at Earl's Court

Departure board at Earl's Court

Things become much clearer when you realise that this departure board is not the first source of information everyone sees when they arrive on the platform. Close to the stairs at the Earl’s Court Road entrance is a map showing the destinations reachable on the eastbound platforms. See what you think (below).

Eastbound District Line platform map

Eastbound District Line platform map

I can see two possible interpretations of this map.

1) The intended meaning; both platforms serve eastbound trains and that the following destinations can be reached.

2) The alternate meaning; the platform on the left serves the line on the left of the map, and the platform on the right serves the line on the right-hand of the map.

This is an example of failure to communicate the successful usage of the train platform to travellers. A proportion of people are looking at the map and assuming it tells them which platform serves trains to which destinations. They then stop looking for further information because they think they’ve navigated successfully.

What to do about it

In the example of passengers at a train station simply watching people on the platform is enough to deduce that there’s something wrong, and possibly what to do about it. On the web things aren’t so simple, you can only track user behaviour at a distance through statistics. This makes problems much harder to track down.

Probably the best solution I’ve come across is to use a user experience lab (e.g. Creative Good in NY). These guys will simulate real world use of your product as closely as possible, and use that to uncover what’s going wrong, or right, for you.

For those on a budget, you can get people in your target demographic delivered to your door via companies like Independent Fieldwork. It’s then up to you to use those victims test users to discover as much as you can. This isn’t an easy job though, I’d recommend getting good help if you can, and dropping as many assumptions as you can.

However you do it, communicating the usage of your product is essential.


On the Subject of Web Browsers

Tuesday 11th August, 2009

Creative agency mogul and Javascript whizz-kid Phil Hawksworth has posted a defence of IE6, arguing that in fact IE6 isn’t really as awful as we sometimes make out, and that its entrenchment (which is the biggest annoyance) is caused by the web development community’s own pandering to the IE feature set after the first great Browser War (BW 1).

It sounds weird to hear it now, but as someone who wrote DHTML in the bad old days when the big guns were Netscape 4 and IE 4 and backward compatability demanded IE3 and Netscape 3, I can tell you that IE6 is a dream come true, just like IE5 was when that came out. Yes, I complain about it too, and I know there’s non-standard behaviour, but there are ways of ironing out those inconsistencies without resorting to browser-specific hacks, or except in specific circumstances separate codepaths (the prime exceptions being XmlHttpRequest, vector graphics, and events).

The required attributes for a web browser these days are:

  1. Standards compliance (implemented forgivingly)
  2. Performance
  3. A decent debugging tool
  4. Distribution deals

With the advent of Chrome and the Iphone it’s clear that although IE still holds dominance in corporate applications, in the open web the two competing layout engines are Gecko and WebKit, with Trident a distant and somewhat lame third place. Sorry IE, any browser that doesn’t include a decent dev tool is really going to suffer.


Guest post – Similarity search: The Two Shoe Problem

Thursday 30th July, 2009

Today I’m introducing my first ever guest post, written by Pixsta’s own Rohit Patange about some great work he’s been doing with the guidance of Tuncer Aysal. You’ll be able to see the results of their work shortly on our consumer-facing site Empora. – RM

We at Pixsta are interested in understanding what is in an image (recognise and extract) and do so in an automated way that involves a minimum amount of human input.

Our raw data (images and associated textual information) come from a variety of retailers with considerable variation in terms of data formats and quality. Some retailer images are squeaky clean with white backgrounds and a clear product depiction while others have multiple views of the product, very noisy backgrounds, models, mannequins and other such distracting objects. Since we only care about the product, an essential processing step involves identification of all image parts and the isolation of individual products, if several are present in the retailer image.

The n-shoe case:

Let’s take the case of retailer images with multiple product views. This is most commonly encountered in shoe images.  Let us call each of the product views a ‘sub-image’.

When we talk about similar shoes we talk about a shoe being similar to the other (note the singular). We have to disregard how the shoe is presented in the image, the position of the sub-images, the orientation and other noise. If we do not do so, image matching technology tends to pick out images with similar presentation rather than similar shoes. Typically a retailer image (a shoe they are trying to sell) will have a pair of sub-images of shoes in different viewing angles. Pictorially with standard image matching we get the following results for a query image on the left:

Visual similarity query showing product presentation affecting results

Even though the image database contains images like:

Two shoes pointing to the right

These are not in the result set despite them being much closer matches, because of the presentation and varying number of sub-images.  To overcome this drawback, we have to extract the sub-image which best represents the product for each of the images and then compare these sub-images. For the sub-image to be extracted, the image will need to go through the following processing steps:

  • Determine which of the sub-images is the best represents the shoe.
  • Extract that sub-image.
  • Determine the shoe orientation in that sub-image.
  • Standardise the image by rotation, flipping and scaling.

All the product images (shoes in this case) go through this process of standardisation, resulting in a uniform set of images. Pictorially the input and the output image of the standardisation process are:

Shoes segmented and standardised to point right

Let’s look at the procedure in more detail assuming that the image has been segmented into background and foreground.

  • The first step is to identify all the sub-images on the foreground. The foreground pixels of the images are labelled in such a way that different sub-images have different label to mark them as distinct.
  • After the first iteration of labelling there is a high possibility that a sub-image is marked with 2 or more labels. Therefore all connected labels have to be merged.
    Segmented shoe images
  • The third step is to determine which of the sub-images is of interest; that is picking the right label.
    Choosing an image segment
  • Once the right sub-image is extracted the orientation of this sub-image is corrected to match a predefined standard to remove the differences in the terms of size of the product image, orientation (the direction the shoe is pointing towards) and the position of the shoe (sub-image) within the image.
    Single shoe pointing to the right

All product images (shoes in this case) go through this process before the representative information from the image is extracted for comparison. Now the results for the query image will look like:

Resulting query showing standardised similarity

Generally there are two shoes in an image. But the method can be extended to ‘n’ shoes.


Changing advertising from interruption into value

Monday 13th July, 2009

Reading Seth’s post The CPM Gap today it reminded me that the entire point of Empora is to generate actual useful value to users from what would otherwise be presented as noisy advertising (or a mixed hunt and browse experience).

We’re already seeing vindication of that idea in our engagement and conversion rates.


Fix Outlook – On the first page of Google results please

Wednesday 24th June, 2009

This morning I was introduced to the wonderful FixOutlook.org (thanks @philhawksworth) and thought I should throw it my tiny speck of pagerank support. The short version is that Microsoft are planning on keeping on using Word for HTML rendering in Outlook 2010… which is quite broken (justification on request, I wouldn’t know where to start).

Wouldn’t it be lovely if we could get enough links pointing to fixoutlook.org that it appears on the first page of results for a Google search for “Outlook”.

As a side-point… has PageRank replaced the whole signature/petition thing? Has Twitter replaced PageRank? I love change.


This is me not claiming my Facebook URL

Tuesday 16th June, 2009

Rather than spending 5 minutes claiming my personal Facebook URL I’m going to spend 5 minutes writing a blog post. During that 5 minutes time, a statistically unlikely 165,000 people may have registered theirs.

Reasons in favour of registering a Facebook URL:

  • Vanity
  • Umm… vanity

Reasons against registering:

  • 5 minutes of life wasted (dubious benefit since I spent them doing this)
  • One step closer to Facebook being a closed monolithic identity provider
  • Obstinance

The nays have it.


Internet Explorer fails to render ' in XHTML

Friday 5th June, 2009

XHTML is a subset of XML. All XML rules should apply. Why then, in 2009, does Internet Explorer still fail to unescape the ' entity as XML dictates? Come on. It’s not complicated.

If it’s backwards compatability the IE team are worried about then surely the burden of compatability lies with page authors who wish to switch to XHTML from HTML.


Bing abbreviation of b(or)ing?

Wednesday 3rd June, 2009

I can’t comment on the technical architecture of Bing, but ultimately it doesn’t matter that much. Bing is trying to make solving a solved problem look new by adding a big photograph of a man standing on a mountain. Bing is b(or)ing. As Hugh MacLeod says, Microsoft: change the world or go home.

Maybe they can get some traffic by doing deals but ultimately a mousetrap is just a mousetrap unless it can do something other mousetraps can’t do. Until then I don’t see it making any waves.


MySpace security FAIL

Friday 29th May, 2009

MySpace store users original passwords in clear-text, and return them by email on request. Enough said really. FAIL.

For reference purposes, there are better ways to do this:

One step better: don’t return the original password (potentially revealing additional information to an attacker), just create a generated one or a one-off link that allows a new one to be created by the user.

Two steps better: don’t store the original password at all, store a one-way hash instead, that way even an attacker who compromises the DB can’t see it (assuming you do it right).