Wednesday, 28 October 2009

What makes a good rating scale?

From time to time I have to fill some form where I have to rate items in a scale such as agree-disagree, like-dislike, etc. And more often that not, I end up cursing the creators of the form for not providing options I needed.

The first obvious problem is when you have an even number of options, e.g.:
Totally disagree / somewhat disagree / somewhat agree / Totally agree.
Where the hell is the "meh" option there? There should always have a neutral, "I don't care" option. For that effect, the number of options should always be uneven.

Then there's those that use stars or a number-based scale with lots of possibilities, such as iMDB which uses 10 stars or something. Sure, that gives you a finer control over the rating you give item, but don't you end up wasting too much time deciding whether you'll give this movie 6 or 7 stars (especially considering you gave that other one 8 starts, but this one is definitely better)?

Too few options is not good either: with a 3-options like/neutral/dislike scale you are too constrained and can't express distinction between something that's only above the average, and something that's absolutely excellent. And a 2-options love/hate one is even worse in that aspect.

Of course, in the crowd-sourced rating of items point of view these work very well, since you just have to do some math with the positive and negative votes, and you'll get a fairly balanced rating of that item once you have enough votes. But is the voting system satisfying to the voters?

The most used system seems to be the 5 steps scale: hate / dislike / don't care / like / love. That's what YouTube uses, for instance, even though they chose their own labels. But recently I read somewhere that they should get rid of it altogether and use the favorite system as a binary rating system.

Personally, I believe the 5-star scale is good, but would work much better if something else than stars was used. A few days ago I was doodling during a conference, and came up with the following:
>(    :(    :|    :)    :D
This is very similar to what mashable uses. I believe the smileys might convey a much more intuitive grasp at what each rating means, thus reducing the bias that happens when people who don't like something give the lowest possible rating, and vice-versa. Besides, it is a very compact representation since one single symbol represents the rating (as opposed to 4 or 5 stars -- what is one star worth anyway? It's rather subjective...) and doesn't need a label to explain its meaning. That's why mashable manages to use them inline, actually.

I am not sure this is the best system, but I think it offers a very acceptable compromise between the satisfaction of the rating process (especially a good balance between flexibility and unambiguity) and the representation of a combined rating sourced from many votes.

Wednesday, 8 April 2009

Your system not supported. Now what?

I just came across an interesting approach to the traditional "not-available-for-your-system" message. BumpTop has just been released for free download, and even though that's great news since it's an impressive piece of software on its own, the concept itself has been made public a while ago, so it wasn't new to me. The good surprise was instead the way they handled the fact that they don't have yet versions for Mac or Linux.

You see, most companies give us a "we're-sorry-but" or "coming-soon" message (not to speak of those, especially linuxers, who tell you to build the app using the source, or to code it yourself -- which, as I read a few days ago, is actually saying "f**k you" to the user), but the guys at BumpTop made an interesting twist:

They use the always compelling poll look to let you quick and easily add your voice to the crowd, which on the other hand gives them a way to measure the demand for those versions, while simultaneously offering a way for you to get feedback (by entering your email) and get notified once your desired product is available.

Those are all positive signs they're passing to you. No "sorry, not available yet", no "we have no plans to support your system". Just a very simple mechanism that works for everyone. It's win-win! I hope the idea spreads around.

PS - thanks Paulo, for the invite to post on this blog. I'll try to keep your standards of quality ;)

Wednesday, 1 April 2009

Creating a Web-Based Document Platform

Remember the "old document paradigm" post? Me and the team I'm working with, always had a hard time dealing with multi-user documents because right now there are no good alternatives to writing it in word and tossing around updates, specially because this particular project we are working in involves lots of partners scattered around Europe. Last week I started programming this web-based document platform to handle multi-users, change tracking, comments, section locking and other useful features! In just a couple of days I got a working prototype that already feels powerful and promising! It started out as a challenge and it felt great because I was, by coincidence, materializing this idea that I had in mind for awhile.

In a way we are all changing the way the world works, bit by bit :)

Friday, 20 March 2009

Installing Internet Explorer 8

I have a confession to make: despite everything, I like Microsoft products. I like Vista and 7, I like the Office 2007 interface, I love C#, the .NET framework and Visual Studio. There are obviously some other applications I don't like, especially Outlook and Internet Explorer -- and I use Gmail, Thunderbird and Chrome.
As a webdesigner and as a user I was curious about the new Internet Explorer and I decided to write a post just after installing it (I haven't even opened it!).
1. I searched Google for "Internet Explorer 8" and this took me to
2. I clicked the big orange "Download Now" button and ran the installer.
3. For some reason step 2 was my first mistake because after a couple of minutes of downloading and decompressing files the installer told me "This installation does not support this operative system's language" because I live in Portugal but my Windows is in English.

4. So I went back to Microsoft's website and clicked on the small "change locales and versions" link and chose another language, downloaded another version and ran the installer again.
5. After some minutes it tells me it's going to update my windows, internet explorer and search for malicious software, as it did............
6. ........a good half an hour and two reboots later, Internet Explorer 8 was successfully installed (wohooo!) but now I noticed it put shortcuts where I didn't have them before and didn't want to have...
This is how Microsoft caused me a really bad impression even before I started Internet Explorer! Not surprisingly, I'm writing this blog post on Chrome.... Which took like 3 minutes to search for and install without mistakes nor fuss nor unwanted shortcuts, just like Firefox or Safari. I'm installing a browser, not an operative system!
Edit: I ran Internet Explorer 8 and somehow it's my default browser now, and I don't recall allowing him to!

Monday, 16 March 2009

Stop using "optimized for" already!

"This website is optimized for Opera 2.12 at 1280*854"
Today I was talking about this with a friend and it kind of gets on my nerves. Who's the web developer trying to excuse for his poorly rendered website? Or is he thinking that somebody is going to change browser/resolution to see his page right?
This is a lesson for anyone creating any piece of technology that's going to be used by someone else: "stop being lazy!".
"This elevator is optimized for people who can read roman numerals"
"This building is optimized for people bellow 1.5m"
"This cookies are optimized for people wth five teeth"
Do you really want to restrict the usage of your site based on some funky choice no one cares about?

Monday, 26 January 2009

Selection on Browsers

When we try to select chunks of text and/or images on a web site very often we end up selecting unwanted and unpredictable bits. I'm sure a lot of people have experienced this effect, this happens because the organization of content in html isn't very intuitive to someone who doesn't understand html. Content is stuck inside blocks or tables and there are often tables inside tables. In our browsers, we can't select cells from different tables at the same time and this causes strange behaviours when we drag the cursor over a page. This only happens because the browser developers are lazy, it's easier to make the selections match the html organization but its counter intuitive, non-productive and not WYSIWYG at all, for the end-user.

Tuesday, 20 January 2009

Sleepy Joe

Sleepy Joe is a very simple audio player with one useful feature: it can shutdown your computer after playing all the songs you've selected. It's meant to play music while you're falling asleep in a simple way: drag your music into the player and hit play!
I programmed it in C# so you'll need the .NET framework 2.0 which you probably already have installed, but if you don't just hit the link
Hope you like it! If you find something you'd like to add to Sleepy Joe, leave a suggestion!

Tuesday, 29 July 2008

Oh the Old Document Paradigm

Let’s face it, the current document paradigm is way too old to be used in our digital era. When was the last time you actually created a document whose finality was to be printed? And how many documents, these days, are meant to be read in the computer and through the internet? Think of a Microsoft Word document or an Acrobat document, they really aren’t meant to be read and navigated digitally.

The most common structure of a document (be it an article, a book or anything else) is a tree structure:

Title 1
Sub-title 1
Sub-title 2
Sub-sub-title 1
Sub-title 3
Title 2
These types of structures are begging to be assessed by a tree controller like those found on the HTML help files (those that usually appear when you press F1 on any application) or on the Windows Explorer. We should be able to only see the part of the document that interests us at a given moment, and not the other three hundred pages. A large document is a pain to navigate (just think of the tiny scroll bar with very fast steps) and a pain to find information. Documents should be like web-pages except we would have several views possible including the old, tedious print view.

This document format would be suitable for web, desktop, mobile and printing, what else could we want?

Edit: Another idea... This way of editing a document can be implemented on the web. Editing a document on the web with an interface like this would be great for collaborative work! You would edit only part of the document at a time and the system would tell the others that this particular part is being edited but everything else could still be used and changed, as if each document was a small wikipedia. I've been working with partners both close to me and on another countries and, as you probably already know, tossing around emails with word document versions attached is not a productive way of collaborating on documents at all.

Tuesday, 8 July 2008

Start with the Interface or the System?

When I was studying, every time I started doing a programming exercise, I almost always started with the interface and everyone made fun of me (including myself). I knew it was wrong but I was just having fun because that's the way (uhu, uhu) I like it!

But what if it wasn't wrong? What if it was just another way of thinking and what if it was a better one?

If we start doing the architecture and then program the logic, our natural laziness will accommodate the interface to the system. If we do it the other way round, the system will accommodate our well thought interface.

Even when it's a kind of application in which the usability is not as important as the system's performance, making the system accommodate to the interface doesn't mean it's going to get slow and buggy, and in any case, the system should be optimized so that the user doesn't have to wait more than the absolutely necessary.

In the end, the user will only see the interface, and it doesn’t really matter how the system is implemented as long as it works the way it should and the user has a good response to his interaction.

Of course both ways have advantages and disadvantages and it all depends on the purpose of the application but I believe we should, if not start with the interface, at least have different people creating the interface and the system in order not to make the mistake of designing an interface that reflects the inner system.

Wednesday, 2 July 2008

Wi-Fi everywhere

Today I was thinking about a way of having high-speed internet everywhere and I thought about this system:

Peter has a closed Wi-Fi network in his home and he decided to subscribe the Wi-Fi sharing service on the most common ISPs (including ISP A) in his area and opened his network with the necessary security rules.

From this moment on, he gets a discount from his ISP because he is sharing the network and the ISP can see that some users are using it.

John is a subscriber of ISP A so when he reaches Peter's network, he is automatically connected and is able to surf the internet within the bandwidth and time limits specified by Peter.

This way most of this country is covered with Wi-Fi networks and everyone has internet everywhere without having to pay any subscription to mobile phone networks.

ISP A wins because Peter will tell his friends how cool it is to be in ISP A when we are outside our home.

Do you think this could work? (I don't think so, but it would be a better world wouldn't it?)
edit: Hehehe this is funny. as Waldir pointed out, I've just discovered Fon's market model :P