Monday, June 29, 2009

Web Browsers as Application Hubs (A Primer)

The world is changing quickly and along with this change comes an exponential increase in the "I Can't Wait For It" factor. Companies lose out on the wow-factor when they release applications too late and miss the deadline while their competitors swoop in and steal he initial user-base. I recently read an article on Cloud Computing and it got me thinking about how the hardware and software industry is going to change if and when this becomes the defacto for computing world-wide. If you haven't done any reading on Cloud Computing, I suggest going to the following link. The underlying concept of Software as a Service (SaaS) raises some very good points about software deployment, its use and its longevity.

Imagine an OS where you only had a browser and it provided you all the collaborative servicing you needed to get your work done. Additionally, imagine a service on the browser that provided you with the ability to do everything your operating system did without having to waste precious hard drive space to do so. The trend of making larger pieces of software is slowly wearing down the generic user and is more-so wasting space on a users hard drive as they never use the entire functionality of most software packages. The answer to this is to simply install the function or component when its needed but the underlying problem of having it sit there is still the root problem of unnecessary use of space.

Things that are already available through cloud-computing services worldwide.

  • Documents and collaborative services (Google)
  • Widgets (God these have been around forever)
  • Java applets that are server sided (too many to name)
  • Media players that are applets on the system (can be server sided too)
The benefits are wondrous and would even negate the necessity for someone to go out and shell cart-loads of money on a system that is over-powered for their needs. The only thing that needs to improve is the speed of connectivity with the ISP and the base system used for this. The service providers will also need to setup a server capable of handling the large-scale requests that users will require when working with the software but that is just a formality as there are large data centers worldwide that already do these kinds of things.

To conlcude, I can't even beging to explain the benefits of never installing software on your hard-drive and only calling the software functions you need when you need them. It gives the end-user the flexibility they require, it reduces the cost of using an application and you only pay for what you need when you need it, the customizing component of the applications truly allows for a universal deployment anywhere and the hardware used will not matter anymore. Alas, I can see companies fighting against this because no one wants to see a Linux OS outdoing a MS OS or an Apple OS and at the end of the day we are private beings with an over-developed sense of possession. If all this wasn't true, the 'future' would be now.

Music listened to while writing this blog - Need Somebody - Kings of Leon
Mood while writing this blog - Optimistic

Friday, May 15, 2009

Managing your E-Life

Its May 16th, 2009 and while the rest of the world slumbers in anticipation for their next day, I want to take this opportunity to talk about an internet problem that has become a common problem for many people that I know and interact with on a daily basis ... How in the world do I manage all the sites that I work with everyday?

The most common sites that people visit on a daily basis will range from Twitter, Facebook, Orkut, Myspace, etc. down to your favorite Football club playing in a remote location in Africa. Yes, the internet has become that large and it seems that everyone wants a piece of the pie. The answers are multitudenous as the effort to manage one's E-Life becomes more complex. People have resorted to RSS and Twitter to stay on top of the game while some other people have decided to write portlets that they push out as XML on services like iGoogle that allow portals to manage your mail, news, etc. I for one have tried a few solutions and to be honest, no one solution really offers everything I need. Is it simply because the services I want to have integrated just aren't all availible in one tiny box? Or is it more related to the fact that there is just too much to digest in one sitting?

The most common application features one would need should contain the following features.
  • Regular notifications of whats going on
  • Site updates
  • Chat functionality
  • Message reading functionality
  • Ability to latch onto sites and pull information based on Groups/Forums as RSS Feeds (Still haven't found an application that does this yet)
  • In-built picture management (Still haven't found an application that does this yet)

Someone out there is going to read this and say "I think that's literally impossible" but the real truth is there are tons of applications out there today that perform most of the basic functionality already listed with some modifications on how they handle each of them. The smartest way I have found to manage everything is to simply integrate everything as extensions in Firefox. While this might not be good for all those other browser users, I find that Firefox actually offers a certain level of neatness in its approach to handling extensions and the support and on-going improvement with the evolution of E-Societies is handled rather well.

Whatever your choice is, just remember, if it has everything you need in it don't take that as a sign that you have found the application to end all your worries. Chances are the service your working with is growing in the background and the application developers are not able to meet all your needs. Off I go to spend the first thirty minutes of my day checking posts.

Music while writing this blog - Here Comes The Sun - The Beatles
Mood - Optimistic (It's Friday)
Favorite Technology at the moment - XML

Sunday, March 22, 2009

Browser Wars ... Again

This week, I had the unfortunate and pleasant (seems strange I know) experience of upgrading my Internet Explorer version from the Release Candidate version to a full blown Internet Explorer 8. While I will say that Microsoft have gone through the hoops and actually put out a very quick browser, what it makes up for in speed it certainly lacks in overall compatibility. The Acid Test for this browser was just horrendous and with coding getting standardized across the board, Microsoft have gone back to their happy niche of saying 'if we didn't make it, we don't care about it'. This however, beckons another discussion based on what I wrote in my previous post about universalizing languages on browsers.

I wonder how many web deployments take into consideration browser requirements for an end user other than the current favorites - Internet Explorer and Firefox. Now, this could be argued with by saying that if the work is done on a Mac then Safari automatically comes in the picture but the boys at Apple and most Mac designers have pretty much got it right when it comes to making webpages for the general masses. I have seen some horrendous deployments in my time that have taken absolutely no consideration about browser-usage statistics and the end users who eventually have to use the system. Some of the browsers that I like testing with for the total web experience are

  1. Firefox 3.X
  2. Minefield
  3. Internet Explorer 6
  4. Safari 3.X
  5. Opera
  6. Internet Explorer 7.X
  7. Chrome
  8. Internet Explorer 8.X
This list is in order of preference with Chrome coming at the bottom for the most obvious reason, its just not enterprise ready yet but maybe one day it will be.

Some of the common problems I have seen in deployments are mentioned below

  1. Deployment of plugins
  2. Table alignment
  3. Content delivery using Java and ASP.NET
  4. Load times
  5. ActiveX
Barring the last one in the list all the rest of these problems show erratic behavior based on your preference of client. One of the biggest mistakes most IAs make in the process of designing a web solution is that the operating system is a Windows-based one and we will worry about any others later on. Unfortunately, this leads to differences in the deployments and some value-add specificaitons are dropped due to incompatibility between two systems. ActiveX is a Microsoft only service and hence doesn't play well on any other operating systems (OSX or Linux); yet, some developers think that because we are given these tools we must develop in them as they are the only way to get the product out to the masses. Sadly, this may be considered a successful deployment from a WinX POV but at the end of the day its a total failure on the side of the other operating systems. Java and ASP.NET are two more troublesome deployment considerations that most people sweep under the rug as 'end-user' issues when the problem is clearly in the deplyoment and not with the end-user. Lastly, plugins are a nightmare for any Firefox or Safari user on a WinX system simply because most web designers/developers rarely take into consideration that not everyone out there uses Internet Explorer as their primary browser. Its not a bad browser, its just not the safest thing the web has to offer right now and with a lack of compliance on nearly 80% of the new standards, I can't see any power user in the enterprise environment considering that as a primary browser.

Some thoughts I always like to put into practice when I am developing or working on testing web solutions.

  1. Have I covered all the major players ? IE, FF, Opera, Safari
  2. Am I unnecessarily adding functionality in the backend that won't work cross-platform?
  3. Is it important to use what I am given in the tool-set that it comes packaged with or can I simply extract the information and manage it in a browser differently?
  4. Is Flash/JAVA-AJAX really necessary for the web-tool to function properly?
  5. Who is my audience?
  6. Do I want my audience to grow?
  7. What are the implications if the browser with the best results doesn't do the job?
In my experience, most users don't like changing the browser that they work with. I have been using Firefox for a very long time now and its only recently that I am giving Safari a chance and it has failed on many ocassions due to backend compatibility but that I am sure is something that can be fixed with a little bit of time and tweaking of the java.

In conclusion, the end product of any web deployment or design should encompass a 'wholesome' experience unless the user-base is a niche community that has access to all the tools being offered. I certainly don't want to make a product that passes 20 tests and fails 80 but it seems that alot of things I see these days are following this trend. Only time and a better understanding of world-wide accepted standards will fix this. Till then, pick your weapon and make sure it can stand the test of change ....

Browser used to write this blog : Firefox 3.0.7
Mood : Happy
Music Listened to : The sound of Diner Dash 4.0

Wednesday, March 11, 2009

Multi-Lingual Systems

Sometimes, we browse content on the web and wish that there was an easy way for us to just switch between languages to make the experience more "wholesome". Most websites out there actually come with a language option varying between different dialects of the English language coupled with some other latin script languages. Of course, this offers users in those languages the opportunity to experience the website in the language of their choice but what about all the other languages that sit outside the scope of what those websites are offering? Do they simply pick up another language or do we assume that everyone reading these pages is a master of one of the choices on the page? The answer may lie in web technologies or future WWW technologies that do translations based on inputs received from users in the system. One such product that I have had the pleasure of working with is IBM's Websphere Translation Server. The server sits as an intermediary over Sametime (The internal messenger used by most IBMers) chats and converts the languages before they reach their destination. For eg. I type in English and the recipient sees it in German. However, this is certainly not enough considering the goal is still not accomplishing a total conversion task.

While I have pondered on the requirements that would make such a feat possible, the end result isn't really all that complicated when you consider the following points.
  • Most dictionaries are updated yearly (sometimes the frequency is much less)
  • All systems are moving to e-Storage
  • Most systems aren't allowing legacy storage techniques as the concept of ease-of-access gets disrupted
  • Languages continually change are modified by consortiums sitting in those countries
  • Web technologies like CSS3 and XML are making the user-defined experience more easier to deploy

The list can once again go on and on but lets focus on these points for now. The primary problem with language-related development is that there will always be significant differences in interpretation when one language is converted to another and this has to be considered when working with technical content as well as literary content. Here are some solutions that might be tried.
  • XML Style Sheets that use conversion methods in the framework for moving certain words and their combinations together
  • Developing world-wide standards for delivering webpages without hampering the process and creativity that goes into most websites
  • Encouraging more developers and designers to start using content development techniques that are feasible to easy conversions thereby touching more users in other languages
  • Enforcing a standard set of protocols in web-browsers for easy conversion that may eliminate the XML Style Sheets mentioned in the first point. The less work done on the website means less work by the developers
  • Using the systems managed by Linguistic teams globally to update the XML content and thereby offering users the most updated information
While the road is long and hard, I believe that most people will benefit from this development. Can you imagine a world where your content can be carried in your pocket on a mobile device and simply converted on call? How about working on a project in India and then deploying it in Japan without ever having to worry about the language requirements in the middle? Imagine a world where creative minds didn't need translation services and worked on simply taking content and pushing it out for everyone to read. The pros are many but unfortunately the amount of jobs lost and the continual man-hours spent in updating XML Content would surely outweigh this need right now. The next step I guess is to automate the updates ... One day.

Music Listened to while writing this blog - Joan Jett - Dirty Deeds (AC/DC Cover)
Mood - Creative

Sunday, February 22, 2009

Mobile Applications - UX Considerations - iNotes

In an ever-changing and fast paced world, most companies are making the giant move from web based or thick client platforms to mobile developed platforms. Alas, in the pursuit of mobile applications and considerably better delivery standards to employees and customers some companies have completely neglected the UX component required to make these mobile applications better and certainly friendlier to use. Today's blog is about IBM's entry into the fray with iNotes. Any user of the Notes platform will tell you that at first glance, it really isn't all that great. It offers the cumbersome concept of replication and behaves rather slowly when it is asked to connect to a server. Moreover, the lack of ease with which a commercial user can simply set an account up (as opposed to an Exchange environment from Microsoft) is where IBM has really lost its commercial customers. However, the smart people in marketing have done something to counteract the bad taste left in most commercial users mouths ... they never went public with Lotus Notes for the stat-at-home mom or Gmail fanatic. That was IBM in the good old days but we are in a new era and any company unwilling to offer the joe public the ability to use one of its core applications is really going to lose out on a much larger and diversified crowd when it comes to profits and more importantly application feedback and improvement. Now, lets get back to the topic at hand ... mobile applications.

Lotus Notes for web users is offered through the DWA environment. What is DWA you ask? Its the abbreviation for Domino Web Access and it has been around for a long time. However, most people within IBM have never really explored its true functionality and for the most part, anyone with a thick-client has never really needed to. An offshoot of the DWA concept is iNotes. As the name suggests, it is Notes for intranets or internets. The most used functionality of this feature is mail. The first few questions that will pop into anyone's head these days when they hear of a mail client are the following.

  1. Can I read any and all mails that I receive?
  2. Does it have a calendar facility?
  3. Is it easy to use?
  4. Is it fast?
  5. Do I really need to invest in any special hardware or software to make it work?
  6. Will my browser support it?
  7. Is it a reliable method of communication?
  8. Is it customizable to meet the needs of any and all users?

I could spend all day listing questions that most users ask but lets leave those on the table for now and come to the UX component that drives iNotes. The boys at Lotus have really given a few good options to anyone using the iNotes interface. There are essentially three methods of logging into the system.

  1. Full Mode
  2. Lite Mode
  3. Ultralite Mode

Each of these modes comes with certain limitations and some of them actually offer better speeds and performance as compared to the alternatives offered at login. Lets explore them and some of the things that the UX teams never really thought of when they went into design.

Full Mode

As the name suggests, this is the full blown version of iNotes that claims to have all the bells and whistles that come with the application minus a few things that most people have becomes accustomed to. This mode works very well with some of today's more famous browsers namely Internet Explorer, Firefox (Linux, Win) and Safari (Mac, Win) however, if you try it with other browsers like Opera or Google's trendy Chrome, you might be in for a little surprise as it fails to load due to incompatibility with the browser, as in the case of Opera or a lack of some components as in the case of Chrome. The full mode additionally comes with an Offline mode for users who like reading their mail when they are not connected to the internet/intranet but what they forget to tell you is that it will require you to put your Notes ID in the preferences to get it started. Moreover, the interface really doesn't offer any guidance on the same. The calendar works fine with the exception of some minor tweaking but that is the problem with any web client that is used to schedule meetings. Last but not least, the frame that loads your mail can seriously go through some more development and design as it loads very slowly even at IBM and loads even slower with a VPN connection if you are under the subtly hinted bandwidth requirement. It seems that the developers have forgotten to mention that the minimum speed required would be 1 Mbps ... TSK TSK TSK.

Lite Mode

Something that offers the performance hungry user-population a boost of speed and closer to thick client speeds is this login option. The only problem I find is that when I am trying to scroll through my messages, the page just sits there like nothing is being done. Strange but I would think that the designers might get this one right by now. The calendar is shady too, it states that a user needs to be in full mode to get the option to accept an invitation and while this is a platform built for web users I would hope that the simple action of accepting a meeting invite should be accessible over all the different modes offered by iNotes. Apart from that the name lookup functionality is something to be desired across all the different modes of the interface with the exception of ultra-lite. It seems that the boys at Lotus aren't familiar with the concept of AJAX or they just don't care enough about it to give users the ability to do name lookups when they want to send an email. Instead, a little icon appears to indicate that a name lookup is required and then a window comes up offering the different name choices. In some cases, the name is shown twice and you are then left wondering which one to choose.

Ultra-Lite Mode

Probably the worst mode out of all the above mentioned modes, this mode is the one you would use if you really had nothing better to do and only wanted to read your mail. I would never suggest anyone with a lack of patience to even bother using this mode on their iPhone as it is stupidly slow and it should never be used to reply to mails unless you are in a place that offers wireless speeds that defy the speed of light and even with those speeds your still on an iPhone not a super computer ... once again TSK TSK TSK.

Final Verdict

While IBM is on the right track with their mobile application development and with the horizon push by Adobe for Flash on Apple's iPod/iPhone, I think that iNotes is a breath of fresh air for all those people who want to just read their emails and check their schedules as they travel around the world. If you are an avid user of the thick client and like using links to open databases and browse, this is not for you and certainly not to be used when you have a thick client available. Kudos on the first attempt IBM but many miles to go before it actually lives up to what it should be ... a sound replacement for the mail client offered by Notes for traveling users.

Wishlist for iNotes

  1. Calendar invites can be accepted across all modes
  2. iPhone access should allow Lite Mode
  3. Make the browser requirement a non-existent entity leaving users to choose the browser they want to use. It is after all a web-app at heart.
  4. Use AJAX more freely and definitely incorporate it into the name fields for To, CC and BCC
  5. Nullify the need to ever use a Notes ID file for encryption and maybe the user ID can be linked to the Notes ID or the certificates for easier use

Overall rating - 6/10
Music listened to while writing this blog - Nothing