2011/10/15

Senior UX Specialist at Elsevier

As of 1st of October I am no longer employed at Reed Business. Instead I am Senior Usability Specialist at Elsevier. So instead of working with products for the Dutch market I am now working on global products for scientists and research administrators.

It felt like a fairly good time to take on something new. Together with my colleague I had succeeded in making UX a part of the business, which was the reason I was hired and I was finishing up the two projects I was working on and felt that I was ready to take on new challenges. The last thing I heard was that UX would be it's own department and exist on the same level as marketing (with much less staff, unfortunately). So in less than two years time we made UX an integral part of the business, of which I am quite proud.

This far working at Elsevier has been really great! Not that I did not like my old job (quite the opposite) but I feel a closer affinity to the business now. After all, working with law enforcement, lawyers and procurement officers is not quite the same as working with products for scientists and being part of a team of 40+ people from Chennai in India to Dayton, Ohio is a great way to grow professionally. A big plus is that I can discuss things like test plans and interaction designs with more experienced colleagues and learn from their mistakes and learn new things.

In terms of my Dutch skills I hope they won't suffer to much. Even though the business language has switched to English much to of the day to day activities are still in Dutch.

2011/10/05

Some shameless bragging - Stapel & De Koning the movie is live!

Since I started working at Reed Business I have been working on a rich information site for the Dutch police - Stapel & De Koning.

The marketing team put together a short commercial about the product which went live today. Right now it is only in Dutch but I plan to upload a verison with subtitles in English as well.


2011/07/06

Setting up Ruby on Rails 3 on a CentOS 5.4 VPS (or a tale of how a prototype turned into a specification and needed to be hosted)

For my work I had developed a prototype in Ruby on Rails to be able to do usability tests on the more dynamic parts of a new website.

However as the project progressed and the design was refined based on usability testing, it became much easier just to update the prototype rather than to change the original specifications.

As the project grew it became more and more cumbersome to keep everyone in the 40 plus people team up to date with the latest changes in the prototype and making sure that the team had a common vision of what the end product was supposed to look like. My only way to demo the site was to either take screenshots or run a server locally from my virtual machine running Ubuntu where I ran my development environment.

Running a Rails server centrally in a Microsoft centric organisation is easier said than done and I had to look outside the company for hosting providers. Eventually I settled for Hostingrails.com's virtual private server option (VPS for short, a virtual machine).

Purchasing the VPS subscription was quite easy and within a couple of hours I got an email with my credentials. But getting the server up and running turned out to be much more cumbersome than I originally imagined. I am by no means I Linux guru but I have spent enough time tinkering with various Linux and Unix distributions to not shy away from the task of configuring a server.

The server ran CentOS 5.4 and which is a Red Hat distribution sans the commercial parts. This proved to be the first hurdle: I was used to using fink on Mac OS X when installing the odd x11 application or apt-get on Ubuntu but yum (CentOs's frontend for the rpm package manager) or worse yet rpm were both new to me.

I started out using using a guide I found on assertivemagazine.com "Setup a Ubuntu VPS for hosting ruby on rails applications" but CentOS is no Ubuntu and that became quickly became abundantly clear to me. First off all the server didn't come with yum installed. Which meant that I had no "user friendly" front-end for package manager and that getting one (in this case yum) up and running was the first order of business. I had no choice but to get acquainted with rpm.

Let's walk through the process step by step (this post assumes basic knowledge of the vi editor for editing text files and I am not saying that this is the right way, it's just the way I got it working).

Step 1. Adding users and disabling root access with ssh

To add a user first log in to the machine using ssh (type: ssh root@) and once inside create a new administrator:
  1. Create a new user using: adduser
  2. Add an admin group using: groupadd admin
  3. Run visudo and give the admin group the right to run the sudo command by appending %admin ALL=(ALL) ALL
    to the end of the visudo file.
  4. Add the user you created to the admin group using usermod -a -G admin
  5. Log in as the user you created to make sure it works.
  6. Disable ssh access by root by making sure that the line beginning with PermitRootLogin is uncommented in /etc/ssh/sshd_config and set to: PermitRootLogin no
  7. Restart the ssd service using service sshd restart

Step 2. Getting yum up and running (getting acquinted with rpm)

Since yum wasn't installed from the get go I had to figure out how to install it using rpm. Luckily I found an older obsolete post that helped me to figure out what I needed to do "Install yum with rpm on CentOS". Based on the approach described there, an page about rpm and manually copying the links in the CentOS package repository (which had moved since the article was written) I figured out that the command I needed to run was the following:

sudo rpm -Uvh
http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/python-libs-2.4.3-43.el5.x86_64.rpm http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/python-2.4.3-43.el5.x86_64.rpm http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/python-elementtree-1.2.6-5.x86_64.rpm http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/python-iniparse-0.2.3-4.el5.noarch.rpm http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/python-devel-2.4.3-43.el5.x86_64.rpm http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/python-sqlite-1.1.7-1.2.1.x86_64.rpm http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/rpm-python-4.4.2.3-22.el5.x86_64.rpm http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/python-urlgrabber-3.1.0-6.el5.noarch.rpm http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/yum-metadata-parser-1.1.2-3.el5.centos.x86_64.rpm http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/yum-fastestmirror-1.1.16-14.el5.centos.1.noarch.rpm http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/yum-3.2.22-33.el5.centos.noarch.rpm http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/rpm-libs-4.4.2.3-22.el5.x86_64.rpm http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/rpm-4.4.2.3-22.el5.x86_64.rpm http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/popt-1.10.2.3-22.el5.x86_64.rpm http://mirror.centos.org/centos-5/5/os/x86_64/CentOS/m2crypto-0.16-6.el5.8.x86_64.rpm


Step 3. Making sure that the system was up to date

Once yum is installed updating the packages is quite simple using: yum update.
To make sure you have the necessary tools installed run sudo yum groupinstall "Development Tools" which among other things installs gcc which is needed for the Rails installation.

Step 4. Installing what yum can't provide (git and sqlite)

Strangely enough yum didn't have a version of git in its repositories nor a recent version of SQLite, which both are needed for the Rails installation.

4.1. Installing Git
  1. Install the necessary libraries if they aren't already installed: yum install gettext-devel expat-devel curl-devel zlib-devel openssl-devel
  2. Download the git source code: wget http://kernel.org/pub/software/scm/git/git-1.7.6.tar.gz
  3. Untar the source code once the download is done: tar xvfz git-1.7.6.tar.gz
  4. Install the sourcecode by first moving to the directory where the files were expanded: cd git-1.7.6.tar.gz
  5. Then issue this command: make prefix=/usr/local all
  6. Last but not least run: make prefix=/usr/local install
  7. Check if git is working using: git --version
4.2 Installing SQLite
  1. Download the source using: wget http://sqlite.org/sqlite-amalgamation-3.6.23.1.tar.gz
  2. Unpack the it using: tar xvzf sqlite-amalgamation-3.6.23.1.tar.gz
  3. Move into the folder with the unpacked source: cd sqlite-amalgamation-3.6.23.1
  4. Run ./configure
  5. Make and install the package using: make && sudo make install
Step 5. Installing rvm and Ruby on Rails

Finally the last stretch of the journey. All that is left is to install rvm and rails:
  1. Download and install rvm: bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
  2. Add rvm to your path so that you can invoke it as a function by appending: [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
    to your .bash_profile
  3. Reload .bashrc for the changes to take effect by running: source .bashrc
  4. Test that rvm works by: rvm -v
  5. Install Rails using: rvm install 1.9.2
  6. Set it as default Ruby version using: rvm --default use 1.9.2
  7. Update the gems to make sure that you are up-to-date by running gem update --system and gem update
  8. Because of the non-standard sqlite3 installation you need to run the following when installing the gem: gem install sqlite3-ruby — –with-sqlite3-include=/usr/local/include \ –with-sqlite3-lib=/usr/local/lib
  9. Finally install Ruby on Rails by running: gem install rails
  10. Test that it works by running: rails -v
That's it.

Sources:
http://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-users-add.html
http://www.cyberciti.biz/faq/linux-sudo-allows-people-in-group-admin/

http://wiki.centos.org/HowTos/Network/SecuringSSH
http://kernel.org/pub/software/scm/git/RPMS/x86_64/
http://www.softpanorama.org/Utilities/rpm.shtml#Installation_Removal

http://www.how-to-linux.com/centos-52/install-git-161-on-centos-52/
http://tech.wangyaodi.com/2010/08/26/install-sqlite3-ruby-on-centos/

2011/06/06

A week with Boxee box

I received my Boxee box last weekend and I thought that I would share my views on the device now that I have spent some time getting to know it.

Boxee could best be described as a media streaming solution that you can hook up to your TV to enable playback of media stored on other devices on your network as well as a mini operating system in that it allows you to browse the web, run flash content and install apps to access content from media sites such as Youtube and BBC.

I bought the Boxee box because my previous media solution, a Dvico Tvix, died after three years of use. I made the decision to buy a Boxee very much on a whim, it could just as well have been a Popcorn hour or another streaming media solution. But what made me decide for Boxee was the fact that it supports Flash, it has quite a number of apps available and would amongst other things allow me to watch Swedish news on my TV in addition to allowing me to play all the media that I have stored on my NAS.

The reviews that I read before making my decision where quite negative but all of them stated that the product had great potential and could grow into something quite fantastic with future firmware updates.

So undeterred I ordered one and a few days later it arrived at my office.

Initial impression was quite good. Boxee has clearly taken inspiration from Apple when it comes to the packaging and the Boxee Box's box (try saying that fast) came in a sleek black box with a minimal amount of stickers proclaiming its virtues. The box itself takes up as much space as a stack of CDs and looks like it's part of its underlying surface. Installation was a snap and within minutes I was up and running: accessing network content and running apps. But then it became clear why it had received so many mediocre reviews.

If its possible to divide up one's impressions in functionality and usability the Boxee is a two-faced beast. It has fantastic functionality and can play basically anything you throw at it. But the usability of the device is on par with a D-Link router config interface from ten years ago.

What's great
- It has a qwerty keyboard on the backside of the remote. It's really convenient compared to the onscreen keyboard of the PS3.
- It plays basically anything you throw at it.
- It supports Flash.
- There seems to be good developer support and apps for various video sites are being spun out in rapid succession.
- The browser has HTML5 support.
- Sleek design of the physical box itself.

What sucks
- Every action takes a lot of interaction with the remote. In order to try to simplify the device the there is only a navigational button, a play/pause and a back button on the front side. Going back from deep within a menu structure therefore requires tons of clicks on the back button instead of adding a "home" button. Another instance where an extra button would have been nice is the annoying screen when you start an app asking if you want to add it to your favorites. This could have been solved by a favorite button.
- The only indication of which way you are holding the remote is the little Boxee logo. I frequently find myself holding it upside down.
- The remote has no back light making it even more difficult to master when the lights are out.
- There are no volume controls on the remote forcing you to fiddle around with the TV remote to control the volume.
- Boxee really tries to push the paid content that it offers through its movies and tv-series channels. That means that the networked shares are tucked away in a maze of menus.
- The remote lacks a goto function meaning that you cannot jump to a specific part in a movie but instead you have to scan through it.

Final words
In conclusion I would say that I am not disappointed with my choice. It's just that the Boxee could have been so much more if they spent more time doing proper usability testing. Don't let the cutesy graphical interface fool you - it's just a visual polish on a very flawed interaction design. A tell tale sign is the angry comments from users on the offical Boxee forum which mostly revolve around usability issues and the Engadget article "How would you change D-Link's Boxee".

Pictures

The Boxee box box

The Boxee running

The home screen

The interface for accessing remote files

The apps screen

The boxee remote (up is left)

The qwerty keyboard on the back of the remote


2011/06/03

CSS3 generators

I find myself using CSS more and more where before I used to be relying on Photoshop or its CS brethren. No more creating gradients in Photoshop or awkward hacks with the float property to create a rounded corner effects.

Assuming this might be interesting to more people than myself, I have compiled a list of tools that I've used for my latest project:

For a comprehensive guide of CSS properties and their Opera prefixes have a look at The Art of Web's CSS section.

I have yet to find good guide to IE9 and CSS3 but if you need to develop something that looks decent in IE9 you can have a look at Microsoft's IE9 Guide for Developers.


2011/03/27

The mantra is simple: Research, Design, Test and Repeat!

In an undisclosed city at an undisclosed company the catering contract ended and the company set out finding a new supplier. As the new year started so did the new catering company. This is a tale of how a perceived cost cutting measure turned out to cause massive frustration and costing more.


The old system
In the previous system the primary principle was that the personel themselves entered the products they wished to purchase through the use of a barcode scanner, thus eliminating the need for service personel.

However, as with all systems where people are required to self report their purchases, conscientiousness is a limiting factor.

The system certainly wasn't without it's share of usability issues since some of the barcode scanners wouldn't work unless being held at precisely the right angle. Another issue with the system was that many products lacked barcodes and required the user to scan a barcode next to a picture on a big board. Sometimes there wasn't even a picture but just a name.

It might sound complex but users quickly picked up speed using the system.


The new system
Therefore it came as quite a surprise to what extent the new system failed to live up to its predecessor when the the new system was introduced at the beginning of 2011.

Gone were the barcode scanners and instead they had been replaced with a touchscreen with a number of categories which each held a number of items. These categories and the names of the items seemed to stem from some internal record keeping or backend software. For instance "soup" was to be found under "Start" whereas chocolate sprinkles (which the Dutch like to put on their sandwiches) was sorted under "Meats & Cheese". Other items would be spread out among the categories with certain flavours of items only being available from within certain categories. A vegetable croquette was thusly tucked away under "Start" whereas other kinds of croquette would be considered a kind of snack. Some items were given a colour coding with dubious results such as "Green meat". Never mind the use of green and red as the only means to distinguish between categories.

The visibility of system status was poor due to the currently selected menu item disappearing when selected. The system also caused high cognitive load since the principle of "recognition rather than recall" was disregarded. Most of the items in the system looked nothing like their real life counterpart.

No use what so ever was made of the laws of gestalt (visual grouping) and the order of items within each category was completely random. It was therefore not possible to scan for a certain type of item and instead the user was forced to read the labeling for each item until the right item was found.

The system was only available in English despite a large number of its users being Dutch. This might not sound as such a big deal unless you consider that there are quite a large number of items that are more or less specific to the Netherlands. Items such as Hagelslag (the sprinkles mentioned earlier), broodje croquette (a fried ragout roll in a bread) and broodje haring (a herring in a hot dog bun) can be translated but would seem strange to someone not familiar with the Dutch cuisine.

Last but not least the checkout process only allowed you to delete one item. If you had done two mistakes in a row you would be greeted with a message saying "Error cannot void!" and the only solution was to start over from the beginning.

Everybody suffers
Before the system was even launched an email was sent out to all employees in the company telling them to be patient with long queues initially as the people familiarized themselves with the new system. Change management is a tricky business and there is almost always an initial drop in performance when a new system is rolled out. But weeks passed and the queues did not subside but a number of other things did happened:

1, Extra personel was added to alleviate users in distress.
2, One of the checkout machines was replaced with a cashier to aid users new to the system or guests visiting (which in itself is contrary to the business goal of using the system to begin with).
3, An extra board was added next to each machine with pictures of the items and where to find them in the system.
4, All users were invited to a session to ask questions about the new system
5, All users were invited to a second session dubbed "How to pay: walk-through" to get training on how to use the new system.

When talking to users of the system it became clear that people began making their own lunch or started only buying a set of items that they knew how to find thus impacting the financial gain for the catering company and reducing the satisfaction a user would get from their lunch.

Conclusion
So my concluding point is this: instead of investing in usability research during development the catering company is forced to invest heavily in after sales support going so far as providing training for a system which was going to reduce costs and shorten the lines. Something as simple as doing discount usability testing with a few users would have nipped many of the problems listed above in the bud and saved the catering company a lot of money down the road.

The mantra is simple: Research, Design, Test and Repeat!


2011/02/07

Blogger doesn't keep settings

Yesterday I emailed some drafts for upcoming blogposts using mail2blogger to my Blogger account. Somewhere along the line Blogger had forgotten my settings, which where set on saving incoming emails as drafts. Instead the emails where published directly. To anyone who read my draft blog posts and wondered if the author had suffered a stroke - I apologize.

And to the engineers at Blogger: that is a big fat UX fail right there!