Friday, November 30, 2012

Windows 8 is not a Usability Disaster

Jakob Nielsen is one of the most respected usability experts in the field of computer-human interaction so his opinions on Windows 8 are a must read.  While many of his points are well-taken, I don't think Windows 8 is dissappointing.  If anything, it is misunderstood.

The Double Desktop Problem

I understand the confusion surronding the two interfaces, but I also understand the utility.  The desktop is there because, well, it's the desktop - safe, familiar, and comfortable.  Microsoft's intent is to do away with the desktop because they believe they have a better, more sophisticated and modern interface solution.  But the desktop is so iconic that its replacement has to be gradual.  With that said, the Start Screen (Modern UI) is not a second desktop in Windows 8.  It is a glorified Start Button that serves as a single entry point to all of your applications.

Lack of Multiple Windows

As a software developer, I have more windows open any just about anyone.  I must have a multiple monitor set-up.  Windows 8 supports my need to view and see multiple windows on a multi-monitor desktop environment, but also scales very well to the laptop and tablet form factor which is a must for a modern operating system.  Regardless, Alt-Shift is a staple of Windows for quickly shifting between windows as are tabs in the browser.  Both functions remain in Windows 8.

Flat UI

Microsoft has addressed the usability decisions behind the flat (Modern) UI.  In the early days of the graphical user interface, designers made clickable objects look like buttons to let users know that the object could be interacted with.  The button analogy is no longer needed today because people know how to use graphical interfaces.  With this in mind, the decision was to remove "chrome" from the UI to focus on content.

Low Information Density

Nielsen points out some examples of Modern UI applications that offer low information density and his points are clear.  However, there are apps that do not suffer from this problem.  USA Today, ESPN, and Xbox Smartglass offer a generous amount of on-screen information is a beautiful interface.

 
 
Other points made by Nielsen I think are merely learning points which are acceptable for a new operating system.  Live Tiles are a great tool when used properly (which Nielsen says).  The Charms work in a very similiar manner to the well-known taskbar.  You just have to "learn" to use it.  Windows 8 is gesture heavy, but once you learn it you are better off.
 
New technology requires some learning.  Windows 8 learning curve is about half-an-hour to a hour for any user well aquanited with a previous Windows OS.
 
Windows 8.  It's pretty darn good. 

Tuesday, October 23, 2012

Hosting RavenDB on IIS 7.5

Hosting RavenDB on IIS 7.0 is simple and well-documented, but you may find yourself running into a few issues.  It will also take some additional work if you want to secure your database and restrict access.  The following tips will get you up and running.

Word on IIS Configuration

If you haven't used IIS before or are starting this installation from scratch you may be wondering, where is IIS?  Assuming your version of Windows has IIS, you'll need to go to the Turn Windows features on or off menu from within the Control Panel.  From here, you can enable Internet Information Services.  It is important that you explicitly enable ASP.NET and any security features that you want to use.  This article will demonstrate how to set-up Basic Authentication.

Selecting IIS Features
One more thing to keep in mind. You may need to install ASP.NET from the command line using the aspnet_regiis.exe -i command. 

ASP.NET Installation

Accessing The Management Studio from the Web

RavenDB comes equipped with a nice Silverlight-based management interface.  Accessing it via the web in convenient and, more importantly, let's you know that your database is operational.  To set-up:
  • Download RavenDB and extract the Web folder.
  • Create a new web site with the physical path set to the Web folder just extracted.
At this point, going to localhost will bring up the Default instance of your RavenDB.  However, you won't be able to access it from any other machines on your network.
  • Add an inbound rule to your machine's firewall allowing communication over the port (TCP) assigned to you RavenDB installation.  By default, the port is 8080.
Now you will be able so get to the database from any machine with in your network.  A step in the right direction for sure, but you still won't be able to access it from outside your network.  To allow this you will need to configure any hardware, such as a router, sitting between the machine hosting RavenDB and the Internet proper.
  • Configure your network firewall to allow communiction over the same port as defined on your machine's firewall.
To verify that everything is working as expected, use your external IP address to get to RavenDB's Management Studio.

Securing RavenDB with Basic Authentication

It's great that you can access your RavenDB from anywhere, but maybe not so great that this also applies to everyone else.  To secure your database:
  • Create a Local User account.  This account will be used specifically to provide credentials for accessing RavenDB.
  • Add the new user account to the IIS_IUSRS group.  This will provide the user access to resources required to use the database.
  • In IIS, disable Anonymous Authentication and enable Basic Authentication for the RavenDB website set-up earlier.
That's it.  Now a username and password will be required to access The Management Studio.

References

Installing IIS 7
RavenDB - Deploying as an IIS application
What is my IP address?