Thursday, September 2, 2010

The iPad Revolution

iPad Web Medical Business Application Screenshot

The release of Apple’s iPad tablet has changed the game for mobile business solutions. I have read that the iPad is targeting the consumer world as an eBook reader, movie and music player, game console among other things. I am sure it is that target domain that is clearing the stocks in all the Apple stores these days. However I am interested in how it can penetrate the traditional business and health care market and that is what I want to talk about. 

The Early Years
Over the past 10 years or so or even before that with the Newton, there has been a lot of talk about providing mobile applications to the business user, but there has been little significant progress in this domain space. I believe there are several reasons for this:
1) Many of the true mobile devices that successfully made it into the business world were simply limited by size. The palm, smart phones like the blackberry, iPhone etc. were just too small to have anything really practical to work with, other than typical productivity apps synonymous with these types of devices, such as ones which managed email, calendars and contacts. It was and still is difficult to read the content on these devices due to their small size. Additionally, the virtual keyboard interface is too small and difficult to use.
2) The larger tablets required a pointer of some kind as a substitute for the mouse, while the operating systems for all intents and purposes were the same as the ones used on the desktop or laptop and lacked many of the mobile features of the smaller devices. When we tried out our applications on some of the windows tablets, they just seemed difficult to use. This was due to the fact that our standard web user interface was developed for devices that come with a real mouse and keyboard, which was difficult to navigate when the hardware was substituted with a pointer and virtual keyboard, no matter how hard the slate vendors tried to convince us otherwise. The effort necessary to change an application user interface to be more slate friendly was too great and it provided vendors like us little ROI because it was still going to be a difficult proposition to get mobile medical professionals like physicians and nurses to use the tablet for the reasons mentioned. 
3) If a vendor decided to provide some mobile modules, they had to be developed using native APIs for the device operating system. Web solutions were just too impractical to develop as many of the small devices, even if they had browser capabilities, were slow and did not support JavaScript, which is essential for developing good web applications. The tablet again, was just just a glorified laptop without the keyboard, so it was pointless developing special code for it because a laptop just seemed like a better way to go and that is exactly what business professionals decided to do in general.
4) If the application was built for the native OS, it had to still connect to a central database, thus requiring a WI-FI connection directly to the database port and WI-FI was not always that reliable then. Another option was to develop the application to use a local mobile offline database solution and to synchronize it with the central database whenever possible. However, this was a very difficult and impractical solution to implement because of all the complications related to offline application development and the subsequent complications of synchronizing data. No business professional wants to deal with data conflicts. They will just walk away from it. Actually they never even walked to it.
5) To build a native application would require vendors to develop new mobile development frameworks which seemed like too much work given the light demand compared with the constant new requirements for standard desktop based web solutions. Furthermore, each device would have to be installed separately with the native application resulting in a version control nightmare. B Sharp like many other vendors were better off continuing to enhance their desktop and laptop based web solutions.

The year 2010

Fast forward to 2010 and the release of apple’s iPad. When I first heard about the release and all the hoopla surrounding it, I said “another tablet? so what?”. Critics said things like it was just a larger version of the iPod touch and it wasn't worth much. Nevertheless, I decided to have a look at the iPad and after some analysis, I concluded that the iPad will revolutionize the business and medical community for four main reasons:
1) It uses the iPhone OS and not the MAC OS
The critics definitely got it wrong. It is the fact that the iPad is indeed a larger iPod (or iPhone) that makes it compelling for three reasons. Firstly, for the first time of any consequence, we have an operating system built for mobile devices running the tablet, unlike the Linux and Windows desktop or laptop operating systems which were modified slightly for the tablets thus making the tablets really glorified laptops. Secondly, professionals don’t have time to learn new user interfaces. If they are comfortable with a known mobile device interface such as the ones that are provided in their iPhone or iPod touch, why change it? Thirdly, the iPad is controlled by hand and finger gestures. For the average non IT savvy person, controlling a computer by hand gestures is just more intuitive than using a mouse. For example, to zoom in on an article all you have to do is to flick your fingers outwards and it zooms in. Likewise to zoom out you flick your fingers inwards. Same thought applies for scrolling. You simply move your fingers in the scroll direction. The problem then for vendors like us is that applications developed for the MAC and PC which use the mouse pointer are not necessarily ideal when using gesture controlled devices. Therefore, applications for these devices must be modified specifically for the gesture controlled UI. More on this in the next point.
2) Technology is now available to build Web applications to look like Native Apps 
For reasons explained above, it is counter productive to build native OS applications, therefore the only practical solution it to build the user interface as a web application. If we ask a professional like a doctor to use a web interface, we must make it consistent with the native UI to which he is accustomed. More importantly, this type of user should not have to differentiate between the two or even be aware of it. The timing of the release of the iPad could not have been better, given the imminent release of HTML5 and CSS3, which goes a long way towards helping a developer make a web app look like a native app without having to invest a lot of money and time on it. The iPad only support the Safari browser which is a concern. However, it has excellent support for CSS3 and has a pretty fast JavaScript interpreter (when I last checked, it was second only to Chrome), which is obviously good news. 
3) Wireless access and infrastructure has become more robust and usable. 
The other factor with respect to timing is that wireless WI-FI connectivity is now pretty ubiquitous in any business environment and quite robust. If it is not available, 3G cell networks are everywhere. Apple was smart enough to provide a 3G modem option for the iPad. This allows for "anywhere" wireless cell data access to the internet and best of all, it is not tied to a cell vendor, woohoo! In the past, 3G protocol was not available, so web browsing over a cell network was pretty unusable really. If you do connect via 3G, you will need to also have a VPN client on the iPad, in order to access the web server from the outside network. The iPad does provide a native client, but it only supports a few VPN servers, but that should improve in time hopefully. Although, on the other hand VPN server solutions today are pretty infantile and the technology has progressed little over the past several years. There should be a single protocol standard after all these years, no?  I digressed, sorry!
4) the iPad is cool

I hate the word cool, but it applies here. At the risk of typecasting and offending (there is a "tongue in cheek" element so please don't be, and you are welcome to hit back in the comments section), high end professionals like doctors, lawyers, financial guys love their “brand”. Can you imagine one these guys driving around in a fully loaded KIA Sorrento, which has many of same the nice features as a BMW or Mercedes SUV? Not on your life. In fact the new KIA even looks nicer. How many of these guys and gals would listen to their music on some creative labs or Zune MP3 player which may even be technically superior to an iPod? Nary a soul.  It doesn’t matter, Apple has got the “it” factor and that is an intrinsic intangible that gives Apple a huge advantage over everyone else that wants to “get a mitt and get in the game”. I just read several articles where many of these wannabes from HP to Neofonie (who?) are claiming to be soon releasing iPad killer products. Yeah right! Whenever anyone says he/she has a Google killer or Microsoft killer or Apple killer product, he/she is only paying the Killee a huge compliment by acknowledging that it is the market leader and the one to beat. We all know they have only two hopes of it ever happening and you all know what they are, particularly if you paid attention to my screenshot above, right? “Bob Hope and No Hope”. Imagine a doctor who gets to walk around the hospital complex entering his orders and prescriptions on one of these devices with just his finger gestures. At the same time he gets to show off that lit up bitten off apple on the backside of his tablet to his envious colleagues. As far as he is concerned, he is cool and he is probably one of those guys who refused to use the old tablet. Now all we have to do as vendors is to produce a nice and easy familiar user interface for him or her to work with. 

The iPad is not going to get killed off any time soon, but that is not say that since Apple has started a phenomenon, that it won’t be getting any competition. On the contrary,  the competition will be fierce. The folks at Microsoft are trying hard to team up with some of their key hardware partners such as Lenovo and Dell to develop the perfect "iPad killer", just like they tried with the ill fated “iPod killer” Zune MP3. The problem is that they are using the same failed strategy they had with the previous generation of slates and that was to modify their existing bloated OS for the device. In this case they are doing it with Windows 7 by adding the Windows touch interface, which is an overlay to allow finger gestures. But the windows interface is really written for the mouse so using it with touch gestures is not very a friendly user experience. Unless they come up with a new OS for tablet soon, they really have little chance against vendors who have developed their operating systems from the ground up specifically for mobile devices. Google Android based devices will be serious contenders as they mature and so will other new kids on the block, such Palm with its webOS (although Palm may be a little offended by the "new kid" moniker). Either way, I believe these devices are here to stay and we as software vendors have to jump on the bandwagon.

Monday, June 7, 2010

My Bad

I am going to preface this blog entry, with the fact that I am sure you literary types out there will point out that my grammar is terrible, I cannot form a basic sentence structure and that I am completely illiterate. Nevertheless, this is my blog and I am allowed to rant any way I want.

Uhhmm, this word contains two words!!

Why do so many people make this same mistake? Speeell cheker is everyvare you kno?

My Bad
My bad what? My bad breath? My bad ability to finish a sentence?

How many times does the pilot explain over the P/A system the following?: "Do not worry. We have found out why the wing fell off during our most recent  landing attempt and we have fixed it. Now we are good to go and we will be taking off momentarily".   I don't know about you, but I cry like a baby and beg for mercy every time I hear that!

Momentarily means that some activity will take place for an instant or moment. It does not mean that an activity will happen in a moment.

I Could Care Less
This one just plain burns me up.

How many people say this when they really mean, I couldn't care less? If you could care less, that means that you care more than your lowest possible level of caring. So if don't care is measured numerically by 0, then if you could care less, your level of caring right now is higher than 0. Than means you do care somewhat.

There are scholars out there who even try to argue that it is OK to say "I could care less" in this context.  for example. By the way I agree wholeheartedly with William and Mary Morris.

Sorry Michael Quinion, "I could care less" used in the context described is not correct. Capital P, small E, small R, small I, small O and small D as Denis Leary would say.

rofl, lol, lmao, afaik
Ok these speak for themselves.  The most remarkable one that I have seen is LQTM. That means "laughing quietly to myself". I am trying to figure out when this could be used when I am text messaging. Oh I know.
"Wow that's a really funny one. But guess what? I am at a teaching hospital and I am watching a live demonstration of open heart surgery right now, so I am LQTM"

Actually there is one that I really like and would love to use if the situation presents itself. It is FUBAR. That has a great ring to it doesn't it? It means, "fouled up beyond any recognition". 

"Gordon Brown's political career is FUBAR".   I love it.

It was literally raining Cats and Dogs. I was literally going a 1000 miles an hour
No, it was figuratively raining "cats and dogs". Otherwise there would be a whole lot of dead cats and dogs on top of you and all around you, if you even  lived to witness them.

If you were literally going a 1000 miles an hour, again chances are that you would already be dead, so this discussion would be moot. Oh or is it mute? Check out the real definition of the word moot and then it really does appear that mute may in fact be more logical. 

Ok I will stop now. My Bad. Who am I to talk? I am just AICG. But then again I could care less what you think.

PS. AICG (An Illiterate Computer Geek).

Monday, May 31, 2010

My Head is in a Cloud

There is a lot of talk these days about CLOUD computing. I have been asking around, even some fairly computer savvy people if they know what it really means. I was amazed that the majority of people I spoke with had no idea, so I thought I would attempt to define it. First of all, here are some of the words or phrases associated with the cloud. "SAP model", "SaaS ", "Off premise computing", "", "Google Apps", "Amazon EC2", "Web services" and so on. My definition is that The CLOUD is just a simple super classification of all this. It is that the information we retrieve from the internet is coming from some mysterious source out there that we know nothing about nor should we. The truth is, we have been in the cloud ever since the internet became public, although my wife says that I have been in a cloud ever since I was born, but enough about me.

On the internet cloud front, technology to serve the cloud has been improving at a breakneck pace. This steady progression has resulted in a technology available today, which enables a company to never really have to own a computer room or to own an off-site data center or have to purchase any server computers and associated equipment ever again. The server room can be scrapped and made much smaller. All you would really need inside it is a super duper router with a redundant connection to the internet and wireless access for local workstations.

CTOs and CIOs will ask: No more servers or data centers to manage? All I have to do is sign up for a pay-as-I-grow subscription fee which will allow me to upload electronic images of my servers somewhere out there? Redundancy and clustering can happen with a flip of a switch? Backups are made somewhere out there? I can add memory and processing power with another simple flip of a switch? Would it be like calling Rogers to add a new TV channel and then just having my monthly bill increase accordingly? The answer is yes! The technology is out there to do this today. Just Google Amazon EC2 and read all about having virtual servers and data centers.

Similarly on the business software front, there are and have been plenty of software being offered as service for many years now, where the software is being hosted and managed somewhere out there in the cloud. Most of you have used the cloud already. Have you ever used Yahoo mail, Hotmail, Gmail,, just to name a few? You never have to worry about managing the server uptime, software upgrades, redundancy, server capacity or anything else if you use this type of solution. All you have to do is pay a monthly fee or nothing (in some cases like hotmail) and the provider looks after all the services for you.

Alright, so where do I sign? Well hold on now. I was at a conference here in Colombo where CISCO put on a big show for us. Once I filtered out all the sales jargon, their message really was no different from my claim above, that our “on premise” computer room can be replaced by a router, preferably a Cisco one of course. Cisco and their Cloud partners would take care of the rest. Of course the CIOs from the various big conglomerates jumped up and cried bloody murder. My head was turning to and fro, as if I was watching a ping pong match as these guys pontificated. "We don't have the bandwidth to do this", "What about security and privacy?", "What if the internet is down?", “I need to know where my data is" No way; I am staying with my in-house solutions for some time to come, thank you very much".

These CIOs while they got a little emotional with their resistance, also answered why companies have not embraced the cloud for serving internal applications and servers as fast as the technology is being made available. The three biggest reasons for this, in order I believe are lack of available bandwidth, privacy concerns and concerns that we need LAN access to our critical data if the internet is down. While I agree that these concerns are very real, it is still only a matter of time before true cloud compliance will become a reality in many companies. Recognizing the ROI is a “no brainer”, so I need not get into that. Therefore if we can overcome the three concerns, then I would say that most CIOs would be on board to move their infrastructure to the cloud.

What about now? What can we do today? I would like to suggest to the concerned CIOs, that we do not need to move “cold turkey” to the cloud today, but instead we could get there by taking baby steps. First of all depending on the size of the company you could pick a few critical applications, such as CRM and groupware apps and move them to the cloud. For example moving to Salesforce, sugarCRM or Google apps from internal solutions is simple. Google apps and Salesforce for example are proven applications that work effectively with standard bandwidth offered today. To make the transition to Google services simpler, you can replace your in-house exchange server for example, but still retain the fat client applications on each workstation which manage the Groupware data, such as outlook, and change their configuration to use Google apps instead. Google offers the necessary tools for this, resulting in a cloud friendly Groupware application, but having it completely transparent to your users. Of course you would want to rid yourselves of the fat client application eventually with a browser solution, but that can come in time. What you would now get are fewer calls to your support guys asking "what happened to my email?". It would now be the responsibility of Google and they have a pretty good track record for up-time. Also our in-house guys would have no more concerns about having to deal with managing software upgrades. You gotta keep the faith with the likes of Google and Salesforce. They have a lot at stake, a lot more at stake with this than you, remember that.

What about privacy concerns? That is an interesting one. Many people have no problem having gmail or hotmail manage their email, which by the way generally contains as much confidential information as anything else. However the same people will balk at having a SaaS (software as a service) accounting service. It’s just a mindset guys. Get over it. How do you currently get around the fact that your IT administrator and financial guys can get at any data, any time in your internal system? Nothing in the end is really private if the data sits on a shared server. As I said before, Cloud companies have a lot to lose if private data is leaked. Look at what has been happening with Facebook recently? Google also had some privacy alarms recently which caused an uproar in the community. Facebook and Google are now spending a lot of time trying to appease their customers. Facebook could be marginalized as a company very quickly because of what is happening to them unless they get it together in short order. Salesforce or even a giant like Google could have their business viability threatened big time if they have continued privacy publicity in the media. In the end they will just not let it happen. We just have to go along with the Cloud and join the ride if we want to progress or just be left behind. And that can happen very quickly.

On the computer room front, there is no doubt that bandwidth is the greatest limiting factor. Many companies now have off-site data-centers; they also have servers on an “on premise” LAN. Some good examples of why we still need "on premise" servers are:
1) The need to have local shared hard drives for shared storage.
2) Client server solutions do not work very efficiently if the server component is moved to the WAN.
3) Developers usually need their database servers to also run on the LAN to get quick results. Microsoft is offering a SQL server solution for the cloud already called SQL Azure, so work is being done on that front as well.

While we wait for the bandwidth capabilities to improve, steps can be taken to get cloud ready. Take a few powerful physical servers and slap on a whole lot of memory on them and increase the disk space availability. Then load these servers with hypervisors. Either Xen or VMWare. A hypervisor is sort of a bare bones operating system which manages virtual images of physical servers. The actual host computer then will not have its resources bogged down with the extra requirements of a real OS. Once loaded, consolidate as many physical servers you have into separate images and load them up into the hypervisor. There are ways to even automatically transfer a physical server into a virtual image. You will be amazed as you configure your virtual images, how little processing power and memory you really need for your different applications. It is very easy to tweak your settings, once you go virtual. You will find that you can quickly get rid of all those old servers and find some long awaited space in that clogged up computer room. Eventually you might just be able to have a few servers running virtual images of your entire office or department. This could even include your firewall and dns servers as well.

If you currently have your own “off premise” data centers, you can also start creating virtual images there as well and create your own little private cloud, or you can start moving your servers to true virtual image cloud providers such as Amazon EC2 immediately. Have a transition plan where you pick and chose which servers you want to migrate, eventually moving everything. Make sure you server images are portable. For example if you migrate to Amazon which hosts Xen images, there are many tools out there to easily convert a VMWare image to Xen, if indeed your private cloud images are built for VMWare.
The eventual goal then would be to rid yourself of all your servers in the data center and close off the contract with them. You also want to eventually move your “on premise” LAN based servers to the cloud, once the bandwidth concerns are sorted out. It would be a simple process as you would electronically move the local virtual server images you create now, straight to a cloud server.

What about concern #3? What if the internet is down or my internet connection breaks down? The internet is getting more and more like electricity. We get UPS devices or backup generators to keep us going in the event of a power failure. We can do similar things with our internet connectivity. Get some redundancy by using different providers. The internet is too important for us not to. But of course if there is a catastrophic failure with the internet, then even redundant lines will not help, just like when our generator run out of fuel in the event of a major power failure. But how often does this really happen? Nevertheless, in that unlikely event, what happens? We go home. What happens if we lose internet connectivity today? We can’t do much even now, but eventually we won’t be able to do anything, and we will also go home. That is how life will be. Offline access will be more and more meaningless and our online access will be our lifeline to business, just like electricity. So forget about those concerns about the internet being down and assume you will always have it. Spend your money on internet redundancy.

What about workstation applications? Well that has to be next, doesn’t it? For this transition, it is not so much technology where the challenge lies, but rather getting people to change their ways. Let’s see what Google, Microsoft and the other big boys have in store for us on that front. There is promise ahead, however. My wife, who is far from being a techno user, just had her OS upgraded. I asked her what applications she wanted. She said just FIREFOX and that was all she wanted (I also loaded acrobat reader for her as she does not know it is not part of the browser). She also said she did not want any of her data backed up as she did not have any. She gets all of her info in websites and does all of her documents, emails etc. in Google and never stores anything locally. Unbeknownst to her, she is bigger cloud user than many of the people even in our office.

I believe it will not be long before you see companies who do not ever own or purchase new physical servers again. There will be no concerns about firewalls, backup, systems, VPN etc. We would only need a router and a redundant internet connection. But to get there, we need to start thinking about getting ourselves prepared now.

Or maybe my head is just in a cloud.

Friday, April 30, 2010

I don't like flash

I am not a big fan of anything flashy. I am talking flashy house, flashy car, flashy girl, flashy dress or flashy whatever. There has been a recent controversial subject in the news about flashy software between Apple and Abobe. Adobe is upset that flash is not supported on Apple's devices, such as the MAC which has partial support, but more importantly the iPod touch and the iPad which are taking the small computer world by storm. In Steve Jobs' open rant, he gives 6 very good reasons why this "flash" is out of fashion and I agree with him on most counts.

For me, my biggest complaint about flash is just that. It is all flash and little substance. Secondly, like Java Applets, in order to run the application, I need a plug-in. I hate plug-ins. I just want to install my browser and run my web pages and that is it. I can't count the number of times, while surfing the net I get a plug-in required message, causing me to quickly exit the site as fast as possible, even if it looks interesting. However, there have been some rare cases where "curiosity killed the cat" and I attempted to load the flash plug-in. Just my luck that in many of these cases I was invariably on a non windows platform, and that meant the flash player was never easy to install. Typically after a few frustrating attempts to manually install the software, I finally got the plug-in working, but the end result was pretty underwhelming. I got to look at some flashy ads pop-up on the screen or I got to see some pretty useless intro to a website. And as an added bonus, I had to wait several seconds for the flash app to load. Then after it loaded I was privileged enough see some meaningless oh so "neat" animation which contained little information to me of value. How many of you click the 'skip intro' button if the webmaster mercifully makes it available? I do or in many cases, I just leave the site completely. Why do web developers continue to think that producing a flash animation intro will draw people to their site?

Games, movies? well ok. I do see that there is at least some value in using flash to develop a game. Same goes for watching youtube videos, although their dependency on flash is changing already.  If you want to play games, then you will be on a PC loaded with some Windows home edition which usually has the flash plug-in working and pre-installed. So for that demographic of users, I say fine, load your flash and your other multimedia stuff and go for it.

But otherwise, flash provides me as a business and knowledge user with nothing more than just "FLASH" and you know what I think of that.

Thursday, March 25, 2010

SOA and other Gobbledygook

I was at an IT conference at BMICH (in Colombo) last year, which was Keynoted by Narayan Murthy, the founder of Infosys in India. He spent some time talking about entrepreneurship and one of the things he said that really struck me as interesting, was that "a business idea will fail if you cannot describe it in one sentence". At first,I thought that he may have been a little over the top with that comment, but on reflection, it really did make sense. How many times have you tried to read about a new idea or concept, but quickly moved onto something else,  if you didn't get the gist of it after reading the first paragraph? I have done it many a time.
I think the same can be said about proposed new software paradigms or ideas. SOA has been talked about for years now, but I have had a really difficult time having our company explore it because no one can really explain to me clearly what it really is all about from its vision to its benefits. Take a look at a website dedicated to explaining it. OK so do you understand it now? Not me. The author actually uses up the first three or four paragraphs informing us that SOA has not been successfully defined by others. He doesn't do much to demystify it either, well at least not before I lost interest and gave up reading. I love this article by Redhat on Redhat's SOA vision. Are they for real? That first paragraph says nothing. It is just a bunch of words strung together to take up space.
I just can't help but feel that they want to confuse us because in fact they are trying to convince us to to move to an architecture for solutions that we have already been implementing for years, but by just using different techniques, names and acronyms.
SOA reminds me of CORBA back in the 80s and 90s. Where is CORBA today? Actually for that matter, where was it then?
Now on the other hand, have a look at a basic web definition of MVC architecture . There you go, just one sentence and it is clear as day. That to me is the simplest reason why MVC is so widely adopted by so many companies. A similar argument could be used to explain the reason for the success of Client Server Architecture which granted, is considered legacy today, but one that became very popular and quickly adopted in the 90s. Here is a definition of client-server. Well it really is easy for any CTO to grasp the concepts and it advantages with one quick read.
Some people say SOA is dead. see Ann Thomas Manes article on why she thinks SOA is dead. To me her reasons for why it will fail make some sense and she actually, while explaining why it will fail, has given me the best explanation yet on what SOA is all about and its benefits.
An all or nothing re-engineering project to move to true SOA is a big ask, particularly if the end user experience is not going to necessarily change (I will talk about this more in another blog article). Why? we already use or can use SOAP, MOM and HL7 (for healthcare) right within our current J2EE framework. Thus incorporating web services into an existing architecture makes a lot more sense and as she says it will become a necessity as we migrate to cloud computing, particularity if there are integration points between "on premise" and "off premise" apps for example.
However, I think the biggest reason for why it may fail is because nobody can define it like the simple and elegant one sentence mission statement for MVC architecture.
"The main aim of the MVC architecture is to separate the business logic and application data from the presentation data to the user."
So to the SOA pundits out there, I say go back to the basics and define your vision in just one short sentence, which should get the regular "Jo" CTO like me on board, if the benefits result in pragmatic consequences. Otherwise someone else will come along very quickly with something else and may render your stuff irrelevant.