In my previous post I mentioned I run a firewall which 'intercepts' every connection call to the outside and asks the user for permission to allow the connection to go through. The user can allow once or every time, block once or every time or isolate the app. I use Comoro firewall which is a free firewall which has these capabilities. The firewall allows me to find the programs which make Internet connections. There are programs which make connections to look for updates. These are valid requests. However if I have an app which has no business making any connections, I can decide what to do about it. So far I haven't experienced any rogue programs. Key loggers are popular in this category where they try to harvest sensitive information from a computer and send the information to the outside using an Internet connection. A good firewall would catch and block these types of malware.
I recommend Comoro Firewall. It's free and effective.
I am writing this post because of an annoying usability issue with TweetDeck. TweetDeck is a Twitter client I use on Windows machines and the iPad. On one of the computers I use, TweetDeck doesn't display anything from Twitter. I just get a never ending progress indicator in each Twitter column. I try to validate my credentials to confirm they are correct and the validation never finishes. I don't get any error messages. There be a connectivity issue but the application never times out. There's nothing in the event log. I reinstalled the app but no dice. So I decided not to spend more time troubleshooting this issue and just use another computer where TweetDeck works fine.
One day I came back to troubleshoot the issue and I decided to disable the firewall to see if it helps. TweetDeck worked. So the firewall was the problem. I run a firewall which asks for permission from any app which tries to connect to the outside. It seems I blocked TweetDeck by mistake. I removed it from the firewall's application blocked list.
If you develop software which depends on external services like a web service or API make sure your application displays a useful error message when something wrong happens or if the application doesn't receive data within a specific period of time. To test your app in such a situation, unplug the network cable or block the connection using the firewall and then make sure the application displays a proper message. A silent and passive application during a problem is a useless application. These application increase the number of incoming support issues for your company. An unnecessary big expense.
It’s easier for the user to correlate an error message if the error message for a form element be placed next to the form element itself instead of somewhere else in the page. You can highlight the field by making it more prominent. For example by placing a red border around the field or the field having a red background. Make sure the error message always shows above the fold. Either by scrolling the page to the error message or display a notification message at the top of the page notifying the user about the existence of any errors so they can look for it. Error messages which do not display in the viewable area can mislead the user.
Here’s an example of a page showing too many errors in a long list. Notice the errors box pushed the form below the fold. The problem here also is the inclusion of the full labels of the problematic fields. Some labels are very long causing the summary error box to look like an unorganized laundry list. Had the error message been placed next to the field, there wouldn’t be a need to include the label.
See the form on the right side
The error summary box is a long list which pushed the form down
A few months ago I decided to buy a couple tickets for a local show. So I go to the website of a well known ticket sales & distribution company to select and buy the tickets. They select the seats for you, probably at random, display where they are located in the seat map and you choose whether to buy them or try for another two seats. You can repeat the selections a few times. After about 3-4 times, the same seats started showing up. I didn’t like the fact their selections were that limited and I was skeptical. I knew they have more seats. They was several days before the show started and there was no news that they were getting sold out. I know some websites which sell products or services resort to all kinds of gimmicks to get people to buy. They can know whether you are the same person who visited the site earlier either by using your browser’s cookie or maybe even by your ip address. (I remember few years ago when Amazon was doing variable pricing for the same products and was caught). So I decided to try something.
I have access to several computers connected to the net. So I use another computer to repeat the process above and guess what? The seats being offered to me this time are mostly different than the ones offered just a few minutes ago from computer #1. Oh.. those d-bags. So they DO have more seats but they are limiting your choices so you don’t spend too much time on the site and they get you to purchase tickets faster. On computer #2, they started showing another set of seats again. Then I repeated the process with a third computer and got even more selections of seats. In total I had access to 4 computers and from their total selections I choose the best seats available to me.
It is annoying that these companies resort to these tactics in their business instead of providing more options to the user.
BlogEngine v2.0 RC came out a few days ago so the official version should be out very soon. This is a major version change and I checked quickly to find out what the big changes are and it seems they are mainly in the admin section which only I can see and which I hardly use. So perhaps the upgrade is not worth it for me specially it was a pain converting the WordPress template to BlogEngine’s format. I ended up messing with BE’s code which meant I wouldn’t be able to upgrade BE again without touching the code again. Not a fun job. I explained this in an earlier post. However this might be a chance for me to clean up the code.
I am getting emails about posted comments which are not showing up. Ah! Akismet working beautifully killing the comment spam.
Finally.. sorry for losing all the comments. I can’t believe I did that.
I have filled tens of order forms at eCommerce sites so usually I don’t scan the form before filling it. The other day I came across an order form which caused a small usability issue. I started filling the form starting from the usual. First name.. last name.. street address..etc and then I entered my American Express card number, my primary credit card, in the card number field. The next field was the credit card type drop down. It contained two entries for Visa and Master Card. They don’t accept American Express. So I had to go back, delete the 15 digit number I just entered & entered a Visa card number. I wondered what benefit they get from putting the card # before the card type. I can’t think of any. If you do please let me know.
One thing which bugs me on Microsoft’s site is that it doesn’t allow users to download the Silverlight plugin on demand. The Silverlight installer webpage checks to see if you have the plugin already installed and if you do, it doesn’t supply you with the download link. Is it trying to be too helpful to the point it’s actually annoying and treating users as idiots!? I noticed Microsoft does this a lot. It acts as if it knows more than what the user wants for themselves. Maybe I want to download it so I can install it on a non networked computer? or maybe I want to download it just for the pleasure of downloading a file called silverlight.exe!
So I disable the plugin in Firefox, refresh the page, the link shows up, I download it and save it. Then I re-enable the plugin. Why do I have to go through this process? At least it’s faster than doing a time consuming search to see if some download link is hidden somewhere deep in Microsoft’s site.
How about putting a text informing the user the plugin is already installed and if the user still wants to download it, provide a download link.
I have Flash installed and when I go to Adobe’s Get Flash page, it doesn’t tell me “You already have it installed.. stupid!”. It allows me to download it. Thank you Adobe.
The other confusing usability issue is all the instructions about downloading and installing Silverlight.exe. Some users might miss what “You are ready to use Microsoft Silverlight” really means. It could also mean that your system is ready to download and install Silverlight, as in your system has the necessary requirements installed for you to proceed to get and use Silverlight, instead of “You’re done. You don’t need to download and install Silverlight. You can skip the rest of this page” type of understanding.
Once a while I hear/read about some people criticizing the size of the Silverlight plugin as if the size is a roadblock to its use. I don’t understand what the issue is. The size, about 6 megs, is comparable to Flash’s size yet I don’t hear people complaining about Flash’s size. What is 6 megs in this era of drives whose capacity is measured in hundreds of gigabytes and terabytes? Most people have broadband and 6 megs is downloaded in a few seconds. The plugin is downloaded only once and unless there’s an updated version, hitting any Silverlight site will not re-download the plugin.
If you look closely at the types of sites that require Silverlight, they are mostly games and streaming video sites. The type of apps which require a lot of disk space and broadband connectivity in the first place. So these type of users won’t blink for a tiny plugin. If a user doesn’t mind downloading the Flash plugin, why should Silverlight be any different? The other type of Silverlight applications are the Line of Business ones used inside an organization where network connectivity is very fast.
So… people… there are lots of more important issues to worry about!
If a visitor hits a page where an action requires the visitor to be logged in, for example posting in a forum, make sure your site redirects the visitor back to the page they were on after the login process completes. They are many times when the log in process takes me to the home page or to a completely different page than the one I was on. I lose my page. That’s why, as a habit, I copy the url just before I click on the ‘log in’ link just in case the site doesn’t redirect me back. Or open the log in page in a new tab or window and log in there and then refresh the original page. Hopefully it refreshes with you logged in.
When designing a site make sure the visitor can navigate smoothly in your site.
I made a silly mistake where I copied the original posts files over the existing ones which contained the comments while updating the blog software. All the comments are gone. I should have made copies first. This is a drawback for using XML files for data instead of a database. This wouldn’t have happened if I used a database as the storage type.