Saturday, March 14, 2009

Zune –on Filtering

Zune has, in my opinion, nailed the core insight in attribute based filtering: Criteria on the same attribute should be OR’ed and criteria on different attributes should be AND’ed.

There is no mentioning of AND or OR In the Zune autoplaylist UI. You also do not have to select between ANY or ALL as you do in ITunes. It is simply all built in and just works the way you would expect it to work.

Zune’s autoplaylist has two defining characteristics. First, there is a predefined set of attributes you can filter on. You cannot add additional attributes which means Zune does not need to expose groupings. Second, the dropdowns used to pick values to filter on automatically makes the ORs between the values.


Below is a screenshot of the dropdown. When picking what album artist to filter on, you can pick multiple entries from the list.


Here I have picked NOFX and the dropdown has added a semicolon to indicate that more can be added. Similar to typing in email addresses.


You can also just type text in the dropdown which is the same as a ‘contains’ operator.


Above we have created our example from previous posts:

(Album artist name is NOFX OR Offspring OR contains ‘Bad’) AND rating is Like


When it comes to music players, I think the Zune autoplaylist UI is the best i have ever used. The only reason to not just copy it is really that its strength is also its weakness. It cannot be expanded to include a lot more attributes.

Next we will finally look at the filter in Active Directory Administrative Center.

Thursday, March 12, 2009

ITunes –on Filtering

ITunes, another media player, another attribute based filtering mechanism for dynamic playlists. And another solution to how you let people create complicated queries yet hide the complexity.

The Smart playlist UI in ITunes starts out much like other players letting you pick an attribute, operator, and type or pick an operand.


ITunes is different form other players however when you add more than one criteria. The top part of the dialog changes from “match the following rule” to “Match all/any the following rules” wich is of course shorthand for “AND all the rules together” or “OR all the rules together”.


Assume we saved the playlist in the above picture as “All music above 1 or 2”. It would simply show us every song in our library not rated either 1 or 2 including unrated songs. Useful, but a little broad.

If we want to create a playlist of all Metal that is either unrated or rated above 2 stars we could not do that with matching either ALL or ANY of the criteria. If we chose all we would ask to skip songs that were rated both 1 and 2 stars and were of the genre Metal. Clearly an empty list because a song cannot be rated both 1 and 2. If on the other hand we OR them all together we would get all music because songs rated 1 would not be rated 2 and the other way around.

To overcome this problem without compromising the simplicity of the UI ITunes has introduced one of my favorite features when it comes to filtering in media players: The ability to use a playlist as a criteria in another playlist:


This is a bit of a crazy feature, but very cool once you understand it. Each playlist essentially works as a reusable group of criteria which allows us to get our Metal playlist without the songs we have rated 1 or 2 stars:


I would expect people to object to this idea of reusable playlists  as being a strange or silly solution to the problem and I would not be surprised if someone brought forth the argument that it is convoluted and that there must be a better solution.

I personally think it is elegant and powerful. And useful in enterprise scenarios. Imagine that you were running a campaign targeting large companies in different countries. In Denmark a large company may be defined as one with more than 5.000 employees while large in the US may be defined as companies with at least 15.000 employees. With reusable criteria you could define “large Danish companies” and “large US companies” as separate playlists and reuse them in queries about your past sales, you current open orders, overdue invoices and so forth.

What’s next?

Next up is Zune. A limited/focused solution (pick your point of view) that in my mind is the most elegant solution so far.

Playlists in Windows Media Player –on Filtering

Like other media players, Windows Media player has an auto Playlist feature. WMP has also realized that providing people with raw access to Boolean logic will usually not resolve in a good experience and so has opted for a solution where it is very clear and easy how to add criteria, but as we shall see, it breaks down quickly if we try to create our example from WinAmp.

When we create an auto playlist we get this screen…WMPStart

and when we click on the green plus sign we get the standard 3 step filter design of

  1. Pick an attribute
  2. Pick an operator
  3. Write or pick an operand


If you want to make a playlist for a band or a genre this works brilliantly. It is very easy to create for instance the playlist you can see below of “All songs by Goldfinger where my rating is at least 3 stars”.


If, however, we were to create the same playlist as in the WinAmp example:

Artist is (NOFX OR Offspring) and Rating is at least 3

we would get in trouble. Windows Media Player ANDs everything within a group together. In the following example I wanted to make a playlist for Punk and Jazz rated at least 3 stars, but because the Genres are AND’ed the result will alwyas be an empty playlist because a song cannot be both Jazz and punk i.e. it cannot have two genres.


Because every criteria within a group is AND’ed you must repeat common criteria across groups to get the expected result. Below I had to add the criteria for rating to both Punk and Jazz. Had I only added it to Punk the result would have been “Punk rated at least 3 stars and all Jazz” which is not what we want.


What’s next?

Next we will look at ITunes and its interesting tricks and after that we will look at Zune and finally we will take a look at the Attribute based filtering in Windows Server 2008 R2 Active Directory Administrative Center.

Tuesday, March 3, 2009

Would you buy a car from Chevy right now?

Does good UI mean anything for business software? The people who will make the purchase decision usually aren’t the people who will actually use the software, so even though, for the end-user, the interface is the system it should not matter to the people with the money.

Of course you can talk about TCO, about the time it takes to train people, and how enjoyment of work leads to more productive people. But at the end of the day, I think what really matters, is that the people who are about to shell out a substantial amount of money can see that you, the seller, cares and is investing in the software.

This was brought up by a friend of mine from a different product group. They have recently released a completely revamped product. New backend, new UI, some new functionality. My friend said that the experience selling this product is substantially different form the other products form the same division. First of all, the UI looks new and modern and people want to like it. Once they have gone through the rest of the system and everything checks out to be modern and have a future, the buyers get really excited. They can see that we are investing in the product and that gives them confidence.

Which leads me to the car analogy. Chevy does not have a good track record on quality, but the newest version of the Malibu has received very positive feedback. Yet, I am not sure I would personally buy a Chevy car. Not because the individual car may not be of high quality, but because the overall system that it is a part of is not sound. I honestly don’t know if Chevy is going to be around to honor the guarantee or supply spare parts. I have lost faith in the company more so than in the product.

I think something similar is at stake in business software. The product may be technically great or the UI may look spiffy, but unless you can show how you are investing in both and that you are prepared to keep investing, I don’t think you have a compelling case.

Now, please do not think that I don’t think the UI should work well, but just look great, of course it should be great. I actually believe in the TCO, training, and enjoyment arguments above, but the first usage of the UI is not when people start using the software, but on the box or in the sales situation.

A First Look at the Active Directory Administrative Center in the Windows Server 2008 R2 Beta

When you don’t work on web sites but on installed software and on top on that on software that is really specialized it can be hard to convey what you are working on to family and peers, but here at least is a review of the almost finished version of Active Directory Administrative Center. This software is part of Windows Server 2008 R2 and the screenshots are form the beta version.

Being somewhat past the Beta version internally and moving steadily towards the finishing line, it was fun to see the Beta version again and see that the version we will be shipping will be even more solid. Yep, lots of little things changed since Beta. Nothing major.

The pictures are in the bane of my existence, namely the Windows Classic look which is hideously ugly and unbelievably hard to design for. Some day I will share some war stories about that and share some tools I have made to make life a little easier.

Enjoy: John Policelli’s Blog » Blog Archive » A First Look at the Active Directory Administrative Center in the Windows Server 2008 R2 Beta

Sunday, March 1, 2009

Playlists in WinAmp –On Filtering

WinAmp provides a typical attribute based filtering mechanism for creating smart playlists. But instead of just starting you off on your own, WinAmp does include a set of pre-canned queries that can help get you started.


If however, we dive into the custom filtering we get the standard 3 step filter design of

  1. Pick an attribute
  2. Pick an operator
  3. Write an operand

And we get to put AND’s and OR’s between the criteria. Lovely.


In the above example the default OR will get us all Metal regardless of rating, all music rated at least 3 and all music from artists such as Manowar beginning with ‘Man’. That is a pretty broad playlist :)

The Advanced Mode

As with most old school attribute based filtering designs there is an advanced mode that lets you just plainly type a query into a textbox complete with its own syntax and all the other goodness that can be pulled out of the database.



The Query Builder

To help you compose the query WinAmp even has a query builder that has some interesting properties.

Lets create the a playlist that gives us songs by NOFX, Offspring or Bad Religion that are rated 3 or more.

First we create the criteria for NOFX


and then we add '”Off” and OR it to the previous criteria


which will interestingly put a set of parenthesis around the two criteria.


As you add another criteria with OR WinAmp will add yet another grouping making it

(((A has NOFX) OR (A has Off)) OR (A has Bad)

which is equivalent to

((A has NOFX) OR (A has Off) OR (A has Bad))

WinAmpQuery4However, when you AND a criteria WinAmp does not add a grouping

What works and what doesn’t work?

Ultimately we are going to see that for most filters it makes sense to OR and group criteria on the same attribute and AND criteria for different attributes. In other words, as long as we know what we are doing and are doing it sequentially, WinAmp does the right thing. As long as we are making criteria for Albumartist and we are OR’ing them together, WinAmp is right in grouping them. And when add a criteria from another attribute, in this case rating, and AND it to the query it should not be grouped in with the previous criteria.

If however we added NOFX and Offspring first, then AND’ed the rating of 3 and then finally OR’ed Bad Religion we would get

((NOFX OR Offspring) AND rating =< 3) OR (Bad Religion)

Which would include all songs by Bad Religion and not only the 3 or above rated songs. To change that we would have to remove the grouping around the rating and the first two artists.

The templates in the first screenshot like ‘recently played’, ‘Audio by genre’ or ‘60’ies music’ are also good ways of circumventing the fundamental problem with this design namely that you really need to know what you are doing in order to use it properly. And when all is said and done, I quite frankly find the automatic grouping more help in the advanced version than the lack of grouping in the supposedly simple version.

The only truly great thing about this design is that it is easy to share a smart playlist with a friend or on your blog by simply copying the full string. This kind of easy sharing is something that most filter solutions should include.

What’s next?

Next we will be looking at the query interfaces of Windows Media Player, Itunes, and Zune. All three have worked hard on the usability of their solutions and I think there are some mistakes worth learning from in Windows Media Player, some interesting ideas in Itunes and some great things to copy from Zune.

No, it is not ok!

I hate error messages that just state the fact and then give you a single ok button. Like on the IPhone, I try to read mail, it cannot connect and it comes back with the message: “Cannot get mail” and provides me with a single choice: “Ok”.

No, it is not ok. You did not do you job you little piece of no good junk. I would feel much better if it would provide me with a way to rate its performance so I could get the frustration of my chest. I would be much happier if it gave me three buttons:

  • [Do it again and be thrown out]
  • [We’ll let it slip this time]
  • and [It is Ok for now]

Yes, much happier.