Lotus Notes gives me great opportunity to visualize many of the methods that should not be employed in application design. Today's snack is the storage of user preferences when using a web application.
In the Lotus Domino Web Access client from IBM, I prefer to view my Calendar as a month-at-a-glance. By default, the calendar displays as a single day. Sure, I can select Month. But this setting is only preserved for the life of my browsing session. If you fire up a new browser, you'll have to select your favorite view again. Tomorrow, same thing. That's lost productivity and raises user frustration. I tried looking into the Preferences page, but could not find an option to make this option stick.
For more commonly used preferences that require "stickyness", don't use Session or Cookies for your web applications. Each new Session or cookie refresh means those preferences will be lost. It also means that if a user attempts to access your site/application from another terminal, broswer, internet cafe, kiosk...those settings are unavailable. Don't frustrate your users. And if the bulk of your application is datacentric or database enabled, there is simply no reason not to store those settings on a server.
Session and cookies should only be used for those items that you (or your users) intend to have a short life span.