Stephen Smith's Blog

Musings on Machine Learning…

Posts Tagged ‘Microsoft

Wearable Devices and Sports

with 2 comments


I happen to be on holiday this week on the Sunshine Coast (in BC, not Aus). I’ve doing a lot of running and cycling so I thought I would blog a bit on how new devices like GPS watches, step counters and Phone Apps are helping track sports. I have a Garmin GPS watch and an iPhone 4s. So what can I do with these and what is the potential as these devices improve?


This year Sage is again participating in the GCC (the Get the World Moving Coporate Challenge). Basically you form teams of 7 co-workers and each of you wears a pedometer for the duration of the event. You then enter your steps, meters swam and km cycled into the website each day.

You then are tracked as you walk around the world and compete with other teams, either generally, within your company or within your area. The website is quite good, provides lots of useful information and tips on how to improve your health and fitness levels.


To do this tracking just requires a pedometer and their website. No other high tech gadgetry required. It will be interesting to see if more low tech solutions like this one (though the web site and pedometer are both fairly sophisticated) or solutions requiring more hardware like smart watches and extra devices will become the norm.

Garmin GPS Watches

There has been a lot of talk about Apple, Google and Microsoft coming out with smart watches this fall. Further several manufacturers like Samsung already have devices on the market. Then there have been a number of failures like Nike’s entry in this field. I think a lot of these companies have been looking at the success Garmin has had here. Garmin has transformed itself from manufacturing standalone GPS’s (which have now largely been replaced by functionality built into every phone) to making quite useful GPS sports watches.

The watches tend to be a bit bigger than a normal watch but still not uncomfortable to wear when running. Perhaps not the greatest fashion accessory, they are really quite useful. Besides recording your speed, location, distance and elevation in great detail, they also have heart rate monitors to give you quite a bit of information. Then they have a web site that is no extra charge to store and share all your routes and runs. For instance here.


The info is collected by the watch and then you upload it to your PC when you get back and then from there to their web site.

Generally this then gives you all sorts of metrics where you can see how you did, your pace every kilometer, how you did on uphill’s and downhill’s, etc. You can then track your progress and have a good idea of how you are doing.


There are quite a few fitness tracking apps for the iPhone. I just chose Runtastic because I liked the dashboard display in their app store ad. But otherwise it’s been fine, except for a bit too much promotion for the pro version. There are ads in the app and web site, but at a reasonable level, I think for the service you are getting.

There are a lot of attachments available to mount your phone on your bike; however, I’ve found that doing this really drains your phone’s battery quickly (i.e. in about an hour) and so isn’t really all that practical.

Runtastic Road Bike

More typically it’s better to leave the display off since then it doesn’t seem to use that much battery. Also if you stop to take pictures or something, make sure you switch back to the app first. The iPhone doesn’t have good multi-tasking, so unless the app is the active one, it probably won’t be doing anything.

Once you are finished your ride, the app uploads the data to the website and allows you to share what you are doing via social media (as any of my Facebook friends know). For instance this one here.


Like the Garmin website, this one gives you lots of information and makes it easy to track your progress as you try to improve your sport.

The Future

I think that companies like Apple are looking at this market and hope it is a bit like the early MP3 music player market was. Then a company like Apple could come along, redefine the market, make it dead simple and create a much larger market than what the early technology startups could achieve.

Whether Apple can repeat the iPod success in this market is yet to be seen. And they are certainly going to face a lot of competition as Microsoft and Google are hoping they can do the same thing.

Garmin type devices have better battery life and better durability than phones. However phones have better apps and greatly benefit from continuous Internet connectivity. So what are successful future devices going to need? From my perspective they will need:

  • Better battery life. Operating with only a couple of hour’s batter life is insufficient. This should really be a week.
  • Better durability. They can’t just fry when they get a little wet in the rain. Cycling and running are outdoor sports performed in any weather. Athletes don’t want extra clothing or gear to keep their watch dry. Further it would be great if these work for swimming. After all there are already a great many regularly triathlon watches that work great while swimming.
  • Intelligent support for more sports. Useful metrics gathered while golfing for instance. What about soccer, football or hockey?
  • Do not require a separate data plan. If you have to pay $50 per month to a cell phone provider then they are dead in the water.

Another area where there is great research going on is developing more sensors that measure things like blood glucose levels, blood pressure, etc. It will be interesting to see how tracking these additional metrics can help athletes.

There are also appearing apps that intelligently use the Phone’s camera to do things like analyze golf swings and tennis strokes. As these improve we may reach the stage where casual players can get real professional coaching and feedback right from their phone.

On the flip side, there is a lot of concern about the possible privacy implications of these devices. For instance if I record heart rate monitor information and it starts detecting abnormal behavior, could an insurance company find out and cancel my insurance? Could it be used in other adverse ways? Generally this sort of medical information is very protected. Will these devices, services and web sites offer the necessary levels of personal privacy protection? Will I find out I have a heart condition because suddenly I start receiving ads for defibulators and pace-makers? There is certainly a lot of concern about this out there and there have been many Science Fiction stories about the possible abuses. Hopefully these won’t all turn out to be prophetic.


By Christmas shopping season we are going to be inundated by new intelligent watches and other form factors that can help us track and improve our fitness levels. They will track all sorts of metrics for us, provide feedback and even professional levels of coaching. It will be interesting to see if this sparks a greater level of interest in fitness and sports. Maybe these will even help with the current epidemic obesity levels in our society.

Written by smist08

July 5, 2014 at 4:17 pm

Azure and PaaS Versus IaaS

with 9 comments


Sage 300 ERP has had a cloud version for over ten years now with Sage 300 Online. I blogged a bit about how this offering works here. Basically we offer our on-premise product in the cloud relying on Citrix and Terminal Services technologies to host and allow access. You are basically running your on-premise Windows desktop ERP application in the cloud. The only thing required on the local computer to access the software is the Citrix client component which is available for Window, Mac, iPad, etc. We are currently hosting this in Sage’s Atlanta data center.

We are now looking to produce the next generation of this cloud offering and we are looking to host it in Microsoft Azure rather than our own data center. There are quite a lot of reasons for this, like being able to deploy globally to various Azure datacenters or to take advantage of the Microsoft network which provides quite low latency access to these data centers. But the Azure feature we are going to explore in this blog posting is what does Azure PaaS give us over an IaaS offering? What are the differences and what are the considerations?


IaaS stands for Infrastructure as a Service. In this model the provider, typically someone like AWS or Rackspace, provides all the hardware, storage and networking equipment. Then they give you the ability to create virtual machines in this environment (often providing some starting templates of typical servers). It is then up to you to install everything you need to run on these virtual machines and to maintain them fully going forwards, ensuring all patches are installed, upgrading to new versions of the operating system, etc. If you need a database server then it’s up to you to buy and install that database server on one of your virtual machines and it is up to you to maintain this server, back it up, provide geographic redundancy and anything else that is required to keep the data safe.


PaaS stands for Platform as a Service. The goal of PaaS is to build on IaaS to have the vendor also take care of maintaining the operating system and the database server. So you don’t need to worry about patches, backing things up and various other chores. Microsoft Azure is an example of a PaaS offering (although they are getting into offering IaaS as well). Below is a diagram showing how the layers are often separated. This also gives the vendor the opportunity to provide more advanced monitoring and management tools for the platforms they are supporting.


Complexities of PaaS

That all sounds good but how do you separate out the maintenance of the operating system from the maintenance of the application? Generally the way this is done is that whenever you start a VM you start with a fresh copy of the operating system which is then guaranteed to be at the most recent patch level. In the IaaS model you start with the operating system template once, then everything that happens to that image is stored to disk and if the image is stopped and started you continue from where you left off. In the PaaS model if your image is stopped and started, then it is restarted with a fresh image of the operating system and you need to install all your software before it can start processing.

This is why most PaaS systems tend to be very specialized in the type of applications they can run. Azure is built around running ASP.Net applications. Microsoft provides support in Azure and .Net to easily deploy your ASP.Net application to a new operating system image as it starts up. Similarly Ruby on Rails PaaS vendors provide support for installing the Rails application on their new image as it starts.

But doesn’t that mean you have to transfer huge amounts of files to the environment every time a VM starts? Well actually no. Azure provides a number of non-VM storage mechanisms for storing files in the environment. So for instance you can use blob storage or one of the other storage mechanisms to hold all your files and data. Then the scripts that start the VM would just attach these to the VM when it starts, or your program knows how to use the Azure SDK to connect to these when it runs.

PaaS databases are bit easier, since you just create and access your SQL Server databases in Azure SQL just like you would in a regular SQL Server, you just need to know the right information for the connection string to the Azure SQL server. But there are still issues to be aware of. For instance when you create your own set of VMs to make a production system, you can specify them in a VM group and ensure they all run in the same area of the Azure data center. This then ensures any latency of communication between these VMs is very low. But when you switch to the PaaS database server, all the servers that comprise, say Azure SQL all run together in another area of the data center and the latency from your server group to this server group is a bit higher than communications within your own group. Further you are then sharing these servers with other unrelated applications using these servers, so you are relying on the vendor to provide sufficient processing power to keep everything performant. But the best thing about PaaS databases is that you don’t need to worry about tuning the server or backing up all the data.


Moving Sage 300 ERP to PaaS

But Sage 300 ERP is not an ASP.Net application. So how can we even run in this environment? Fortunately, Microsoft provides both IaaS and PaaS services in the Azure environment. This means we can move our current Sage 300 ERP cloud implementation from our Atlanta datacenter to Azure by using the Azure IaaS infrastructure. We can then start to take advantage of various PaaS services one by one.

The whole Azure infrastructure provides a very rich API which allows you to use PowerShell scripts to control what is going on. Hence the ASP.Net support is really a set of scripts developed to handle typical deployments that is built into the Azure/Visual Studio SDK. From Sage 300 ERP we are developing similar scripts to create and control a Sage 300 ERP deployment. This way we can incorporate PaaS building block into our system. So we can have scripts to start and configure the whole system, scripts to add applications servers and so forth. We can even integrate these into standard DevOps tools such as RightScale or Chef.

Leveraging Azure SQL is perhaps a bit easier since you can use the same access technology we currently use. We have to add a bit of code to our database driver to handle some cases that can happen in the Azure environment but generally using Azure SQL is very similar to using regular SQL.

The system that makes up Sage 300 ERP cloud consists of quite a few VMs all performing various tasks. Switching some of these to PaaS based servers is very straight forward, so we can do this right away. For our application servers that have full Sage 300 ERP installed, we will continue to maintain these as IaaS for the foreseeable future since right now the overhead in installing full Sage 300 ERP is a bit high. But there are features coming in the Azure roadmap which will over time let us migrate these to PaaS as well. To some degree PaaS is still in its early stages and new services are regularly being rolled out and we can take advantage of these new services as they appear.

In our Atlanta data center we operate Sage 300 Cloud on a fixed set of servers that we purchased and as the usage grows we buy another server now and again. With a managed service like Azure we are paying for our infrastructure on a usage basis. However the system is elastic, meaning that we only need to run as many application servers as we need to handle the current load. So if usage is low during the weekend then we can shut down some application servers and save some money. Similarly if we get a big spike in usage we can easily add as many application servers as we need instantly to handle the load (perhaps at year end). Again basically we control all of this with a number of PowerShell Scripts.


Microsoft Azure is a very rich cloud environment. It provides us with a lot of benefits to help us beef up our Sage 300 ERP Cloud offering. But with the richness, there is quite a bit of work creating scripts to take advantage of it, tuning our application for this environment, as well as a learning curve learning the best ways to leverage all these new PaaS features.

Written by smist08

January 13, 2013 at 12:59 am

Choosing Between Cloud Providers

with one comment


It seems that every day there are more cloud providers offering huge cloud based computing resources at low prices. The sort of Cloud providers that I’m talking about in this blog posting are the ones where you can host your application in multiple virtual machines and then the cloud service offers various extension APIs and services like BigData or SQL databases. The extension APIs are there to help you manage load and automatically provision and manage your application. The following are just a few of the major players:

  1. Amazon Web Services. This is the most popular and flexible service. There are many articles on how much web traffic is handles by AWS these days.
  2. Microsoft Azure. Originally a platform for .Net applications, it now supports general virtualization and non-Microsoft operating systems and programs.
  3. Rackspace. Originally a hardware provider, now offers full services with the OpenStack platform.
  4. VMWare. Originally just a virtualization provider, has now branched out to full cloud services.

There are many smaller specialty players as well like Hiroku for Ruby on Rails or the Google App Engine for Java applications. There are also a number of other large players like IBM, Dell and HP going after the general market.

All of these services are looking to easily host, provision and scale your application. They all cater to a large class of applications, whether hosting in the cloud a standard Windows desktop application, or providing the hardware support for a large distributed SaaS web application. Many of these services started out for specific market niches like Ruby or .Net, but have since expanded to be much more general. Generally people are following the work of Amazon to be able to deploy seamlessly anything running in a virtual machine over any number of servers that can scale according to demand.

Generally these services are very appealing for software companies. It is quite expensive and quite a lot of trouble maintaining your own data center. You have to man it 24×7, you are continually buying and maintaining hardware. You have to have these duplicated in different geographies with full failover. Generally quite a lot of activities that distract you from your main focus of developing software. Fewer and fewer web sites are maintaining their own data centers. Even large high volume sites like NetFlix or FourSquare run on Amazon Web Services.

Which to Choose?

So from these services which one do you choose, how do you go about choosing. This is a bit of game where the customer and the service provider have very different goals.

For a customer (software developer), you want the cheapest service that is the most reliable, high performance and easiest to use. Actually you would always like the cheapest, so if something else comes along, you would like to be easily able to move over. You might even want to choose two providers, so if one goes down then you are still running.

For the service provider, they would like to have you exclusively and to lock you in to their service. They would like to have you reliant on them and to attract you with an initial low price, which then they can easily raise, since switching providers is difficult. They would also like to have additional services that they can offer you down the road to increase your value to them as a customer.


Both Amazon and Azure look to lock you in by offering many proprietary services, which once you are using, makes switching to another service very difficult. These are valuable services, but as always you have to be careful as to whether they are a trap.

Amazon pretty much owns this market right now. New players have been having trouble entering the market. Rackspace suddenly realized that just providing outsourced hardware wasn’t sufficient anymore and that too much new business was going to Amazon. They realized that creating their own proprietary services in competition with Amazon probably wouldn’t work. Rackspace came up with the disruptive innovation of creating an open source cloud platform called OpenStack that it developed in conjunction with Nasa. They also realized that so many people were already invested in Amazon that they made it API compatible with several Amazon services.

OpenStack has been adopted by many other Cloud providers and there are 150 companies that are officially part of the OpenStack project.

This new approach has opened up a lot of opportunities for software companies. Previously to reduce lock-in to a given vendor, you had to keep you application in its own virtual image and then do a lot of the provisioning yourself. With this you can start to automate many processes and use cloud storage without suddenly locking yourself into a vendor or to have to maintain several different ways of doing things.

Advantages for Customers

With OpenStack, suddenly customers can start to really utilize the cloud as a utility like electricity. You can:

  1. Get better geographic coverage by using several providers.
  2. Get better fault tolerance. If one provider has an outage, your service is still available via another.
  3. Better utilize spot prices to host via the lowest cost provider and to dynamically switch providers as prices fluctuate.
  4. Have more power and flexibility when negotiating deals with providers.
  5. Go with the provider with the best service and switch as service levels fluctuate.

One thing that scares software companies is that as soon as they commit to one platform, then do a lot of work to support it, then suddenly have a new service appears that leapfrogs the previous services. Keeping up and switching become a major challenge. OpenStack starts to offer some hope in getting off this treadmill, or at least making running on this treadmill a bit easier.

Is OpenStack Ready?

At this point OpenStack doesn’t offer as many services as Azure or AWS. Its main appeal is flexibility. The key will be how well or the major companies backing OpenStack can work together to evolve the platform quickly and how strong their commitment is to keeping this platform open. For instance will we start to see proprietary extensions in various implementations, rather than committing back to the home open source project?

Amazon and Azure have one other advantage, and that is that they are subsidized by other businesses. For instance Amazon has to have all this server infrastructure anyway in order to handle the Christmas shopping rush on its web store. So it doesn’t really have to charge the full cost, any money it makes off AWS is really a bonus. By the same token Microsoft is madly trying to buy market share in this space. It is taking profits from its Windows and Office businesses and subsidizing Azure to offer very attractive pricing which is very hard to resist.

Apple uses this strategy for iCloud. iCloud runs on both Amazon and Azure. This way it isn’t locked into a single vendor. Has better performance in more regions. Won’t go down if one of these services goes down (like Azure did on Feb. 29). Generally we are seeing this strategy more and more as people don’t want to put their valuable eggs all in one basket.


With the sudden explosion of Cloud platform providers, suddenly there are huge opportunities for software developers to reduce costs and expand capabilities and reach. But how do you remain nimble and quick in this new world? OpenStack provides a great way to provide a basis for service and then allows people to easily move to new services and respond to the quickly changing cloud environment. It will be interested to see how the OpenStack players can effectively compete with the proprietary and currently subsidized offerings from Microsoft and Amazon. Within Sage we currently have products on all these platforms. SalesLogix cloud is on Amazon, is on Rackspace and Sage 200 (UK) is on Azure. It’s interesting to see how these are all evolving.

Welcome to the Post-PC World

with 2 comments

There were quite a few announcements this week about forthcoming operating systems from Apple and Microsoft. iOS 5 and Windows 8 have quite a few interesting aspects that show how the computing landscape is changing. This blog posting will talk about the various announcements and then provide a fair bit of personal speculation on what this means for ERP, CRM and business computing.


Steve Jobs

Apple had its WDDC 2011 conference this past week in San Francisco. At this conference they unveiled a new version of iOS, the operating system used by iPods, iPads and iPhones. They introduced a new version of Mac OS and they unveiled a new service called iCloud.

One of the key features of iOS 5/iCloud is that a PC/Mac is no longer required to operate an iPad or iPhone. You can now upgrade the operating system and sync files entirely from the cloud. You are no longer required to ever tether your device to a PC or Mac. This means you can buy and get the full functionality from these devices without owning either a PC or a Mac at all.

Is this the downfall of the PC? Is Apple sacrificing the Mac to eliminate Windows? I suspect PCs and Macs will be around for a long time to come. But if you only need to browse the Web and perform simple computing tasks, is a simple to use, inexpensive Tablet fine for you. Or can you do everything you need to do from your phone all by itself? Will many consumers and businesses just buy phones for everyone and no more PCs or Macs?

Another way to look at this is that the PC (and Mac) have been downgraded to just another device that connects to the cloud. They are now on an equal footing with tablets and phones. Now you can choose the device that is best for the tasks you want to perform. If you need a number of large screen monitors to do programming in many Windows, then a PC Workstation is best for you; but for most other uses a Tablet is better suited and much handier. Some of the advantages that Tablets have is extreme ease of use, very long battery life, light weight, and are actually useful in economy seats on airplanes.


Larry Page and Eric Schmidt

Google has had a very similar plan to Apple all along. Android devices generally don’t require a PC or Mac to operate and Google’s business has always been offering cloud based services. From the beginning Google has been trying to move the world to Browser based clients. Google deserves much of the credit for developing JavaScript into a fully usable and performant platform for development. If it wasn’t for the Google Chrome browser starting a performance war among all Browser vendors, we wouldn’t be able to do what we do today.

There is a fundamental difference in how Google and Apple currently view the cloud. Apple sees it as a synchronization mechanism where the cloud is used to share your files across all the various devices you own. The main point being that the files primarily exist on the devices. Whereas Google sees your files as living in the cloud and being operated on from your devices and never really residing on your devices. I suspect over time these two approaches will become much more blended into a hybrid, since each approach has merits and not one size fits all. For instance the Apple model works even if your device is disconnected from the Internet; whereas, the Google model doesn’t have to worry about conflicts from multiple devices editing the same file locally.


Steve Ballmer

Microsoft has been showing off early previews of Windows 8. My key take away from these videos is that Microsoft is finally adopting open web standards like JavaScript, HTML5 and CSS. They are no longer so heavily promoting a Microsoft only proprietary Internet running Silverlight, XNA or XAML. .Net is just turning ten years old and is moving into the legacy category of MS offerings.

This is really recognition on Microsoft’s part that they are no longer a monopoly and can no longer dictate how developers write their programs. If you are a developer that is starting to write a program today, are you really going to start from scratch and write a program that won’t run on an iPad, iPhone or Android device?

For software developers, this is a huge win. Now there is one clear programming paradigm where you can develop programs that will run on any device whether PC, Mac, iPad, iPhone, Android phone, Blackberry, Touchpad or something that isn’t released yet. That standard is HTML5 combined with JavaScript and CSS. Now you can write once, very rich client applications that run well on all these diverse platforms. Since IE9, Microsoft Windows devices are finally part of the fold and with Windows 8 and IE 10, it looks like MS is now firmly part of this world.

Microsoft is following IBM’s lead and concentrating on selling to IT departments of large companies. Beefing up its IT consulting wing and concentrating on out-sourcing IT datacenters with its Azure platform. Microsoft realizes that huge investments in Windows and Office are no longer worthwhile and that it needs to diversify the devices their software run on, while concentrating on the server side of things. The main problem MS has now is promoting Azure against its main competitors Google, Amazon and Rackspace which are already established and have much simpler to use offerings.

Microsoft is a huge company so there will always be exceptions, for instance at the recent E3 show, MS showed off many quite innovate improvements to the Xbox platform. But many of these are around connecting  the Xbox as another device into the cloud as we’ve been talking about.

Other Vendors

Other vendors, such as RIM and HP are trying to keep pace. At least with the WebKit browser engine which is at the core of the Safari and Chrome Browsers being open source, means that RIM and HP can incorporate this into their Playbook and TouchPad devices and play in the same clouds as all the iPads and Androids. How much room there is there is yet to be seen, but with standards based software, the key to competing is going to be hardware innovation.


Guy Berruyer

Sage is a business application vendor and not a platform vendor. Sage wants to ensure that all our applications run where and when our customers need them. It isn’t in Sage’s interest to promote any given devices or platforms, it is in Sage’s interest to listen to the market and ensure all our applications can be used where they are needed by our customers.

Sage would like to play in all the platforms and cloud mentioned above. Ideally anyone should be able to access their business application from any computing device, whether to look up information or enter an order. When someone asks if they can run their CRM or ERP application in a certain context, perhaps on a Mac in their design studio, on an iPad at home or on a PC at the main office, we really hate to have to answer with no to what the customer wants to do.

People may not realize that you can run most Sage applications from an iPad already. Most Sage applications support running on Citrix and there is an iPad client for Citrix that lets you access any application on your Citrix desktop from the iPad. Solutions like this along with many new virtualization technologies are opening up standard desktop applications for use anywhere.

It’s in Sage’s interest to work for the best interests of our customers rather than the best interests of any given platform vendor. For the cloud, if say is the best and most cost effective platform today then we should use today, if it’s someone else next year then we need to ensure we have the ability to move and aren’t locked in to higher prices or lesser functionality.

Sage already has a number of cloud based applications like Sage One,  or Sage Spark. Then Sage is moving many Windows desktop applications over to being Web based and optionally cloud hosted such as Sage ERP Accpac 6.1A. The key point being that Sage is already operating in these worlds and expanding our presence there aggressively.

With Sage it’s all about freedom of choice. Freedom to deploy locally or to access via the cloud. Freedom to access your applications from anywhere on any device. Freedom to choose the best infrastructure and platform. Freedom to select databases and middleware.

As Sage moves forward we are looking to make our applications far more Service Oriented. You can access our applications through their native Forms, or you can access them through Web Services based on SData. All our Business Logic is encapsulated as a service and can be access via our forms (which use SData) or via any application anywhere utilizing our REST based web services.

Sage will still support on-premise installations for most of our applications for a long time to come. But more and more customers want to move to the cloud for the cost savings and convenience. We want to offer the choice and make the transition (in either direction) as painless as possible.

Of course things are never black or white. Sage will be offering many “connected services” which are web/cloud services that provide the benefits of the cloud to customers running on-premise applications. This way customers can pick up many of the benefits of these new cloud services without having to abandon their investment in learning and customizing their on-premise application. For instance functions that make the most sense to run on phones or tablets could move to the cloud, but still be connected to the on-premise application, syncing data via SData web services.


Welcome to the Post-PC world. I hope many people are reading this blog from an iPad or other tablet. Perhaps many are reading this from their phone. The point being that you certainly don’t need a PC to perform most computing tasks anymore and in fact there are many tasks that phones can do that PCs can’t.

Written by smist08

June 11, 2011 at 5:18 pm

Posted in Business

Tagged with , , , , ,

Diversity in Mobile Phone Platforms

with one comment

There seems to be an explosion of mobile phone platforms these days. Mobile phones is certainly where the growth is. The number of people regularly using them is expanding, plus people tend to break, lose or get stolen phones, that the replacement cycle is very fast. We have a number of legacy platforms like Symbian, Microsoft Windows Mobile, Motorola. Then there are a great number of new contenders including Apple’s iPhone, Google’s Android, RIM’s Blackberry, Intel’s Moblin and Palm’s Pre. Then there are dozens of smaller players all contending for developer’s attention.

Each of these systems has its own SDK (whether closed, proprietary or open) where you can write applications for the particular platform. Then if you can certify your application you can get it sold through some sort of proprietary app store. So as an application developer, do you just choose one platform and lock yourself into that and live with the risk that the vendor can kick you off the app store on a whim if they think you are competing with them or annoying a major cell phone carrier? Or do you develop the same application over and over in each SDK? Doing this is a lot of work and you can still get kicked out of major markets.

So what to do? Each of the major platforms now comes with a good browser (ever built in or via an add in). Google as Chrome, Apple has Safari, etc. These cell phone mobile browsers can browse and run most AJAX/JavaScript/HTML based applications. This gives a point of standardization that is outside the control of the cell phone platform software vendors, hardware vendors and cell phone carriers. If you write your application using web based standards then you can run in the browser on all these cell phones. All you need to do is make sure you application can render the screens nicely for commonly available screen sizes and allows varied input mechanisms.

Now doing this you don’t have access to the cell phone hardware, so you can’t initiate calls and can’t access the GPS (at least yet). But you still have open to you a wide range of things you can do. Additionally you are writing an application that runs on any hardware, not just cell phones, so your application can be accessed from Windows PCs, Linux PCs, Apple PCs, Game Consoles, WiFi devices (like iPod touch or PSP), and many more.

It seems that as hardware platforms are diversifying, it doesn’t make sense to develop for a single platform’s SDK anymore whether its Windows or iPhone. It seems like the cost effective way to get the widest audience is via open web standards. The standards based JavaScript/HTML world as evolved to the point were you can write extremely rich client experience applications without the use of any proprietary SDK. Java tried to get us to a write once, run anywhere world, but failed. Now AJAX/JavaScript/HTML has gotten us there.

Written by smist08

September 27, 2009 at 11:45 pm

Frenzy in the WWW

with one comment

Seems to be a lot happening in the web these days. Microsoft Bing goes live, Google goes into a frenzy of upgrades to their search engine. Microsoft makes a deal with Yahoo. Facebook buys FriendFeed. Twitter downed by a denial of service attack. Everyone frantically trying to be the ultimate search/social networking/communications service.

I received by test account for Google Wave today. The first thing that struck me, was that I would love it to be connected to FaceBook or LinkedIn, so I actually have someone to communicate with. Great tool, but the trick would be adoption. I think if any social networking site had developed this, it could really take off. Not sure how Google will manage alone. Maybe they’ll make a deal with Twitter, Facebook, Myspace, LinkedIn or someone. Someway to really spiff up the communications features of these sites, which tend to be a bit lacking.

It seems Microsoft unveiled Bing to much fanfare and have been running a massive number of TV commercials promoting it. But it seems that it is already standing still as everyone surpasses it. Google has already upgraded their search a couple of times, adding features Bing promises, but doesn’t deliver yet. Not sure if Microsoft understands how to compete in the Internet world. Still running on quite long software development life cycles, rather than operating in Internet time where product updates can be quickly rolled out.

Meanwhile Microsoft is playing Pepsi to Apple’s Coke in the music player category with Zune trying to compete with the iPod. I think they are starting from so far behind that they really don’t have a chance. Combine that with the power of the iPod/iPhone application store and they don’t seem to have much chance.

It seems online office productivity tools like word processing  and spreadsheets are quickly moving to the web. Probably much quicker than anyone anticipated. Meanwhile laptop prices continue to fall through the floor. Can now get good Linux based laptops for $200. Not much room in that price for the Microsoft Windows tax. With no real demand for office, these make a lot of sense now. The newer laptops can’t even run Windows since they are based on ARM CPUs.

Anyway all these developments, competitions and change make life interesting. Good time to be in the computer industry.

Written by smist08

August 18, 2009 at 2:51 am

More Bad Earnings for Microsoft

leave a comment »

Microsoft announced their quarter and year end financial numbers today (reported in detail in many other places). This is the first year ever that MS has reported a year over year decline. It’s easy to blame the economy for these numbers. Microsoft’s CFO compared them to how the economy was doing in general and how the IT sector was doing in particular; claiming that MS dropped by about the same amount as the economy and IT sector. However this strongly contrasts to the recent good earning reported by Apple and Google. In fact Apple claims they could have grown even more if they could just manufacture more iPhone GS’s. All this in spite of Microsoft’s monopoly on PC operating systems and office productivity software. These earnings also showed how badly MS’s on-line business is doing. As Google (only an on-line business) reported huge earnings gains and profits, MS reported their on-line business brought in under 1 billion in revenue, but lost almost 1 billion dollar last year. So for every dollar the on-line business brings in, MS spends 2 supporting it.

MS started as a small software company producing Basic interpreters for hardware manufacturers like Apple. Then they got the contract to develop the operating system for the original IBM PC (basically a CPM clone). MS was then able to re-invest the money from this and take over the office productivity space with Excel, Word, Powerpoint and Access. The problem is that since then they haven’t been able to produce another successful product. Basically they just keep making new versions of Windows and Office and milking these cash cows. They take all this money and throw it at other ventures like Zune, Bing, XBox, Dynamics, and such; but, keep losing huge amounts of money on all of these. This was all good fun when revenues from Windows and Office kept growing at phenomenal rates year after year. But what now?

It appears that sales of Windows and Office have peaked and are starting to decline. MS has no new business to replace them. Competitors smell the weakness and are attacking. Witness Google’s ChromeOS and online applications business. Apple is becoming more aggressive and taking away the high end of the market on one side with MacBooks and the low end on the other end with iPhones and iPods. It looks like the hardware companies are getting nervous and can’t afford to be afraid of MS anymore. More and more are offering Linux based computers and saving users the MS operating system tax.

Anyway, don’t take Microsoft’s dismal financial results as an indicator of the health of the high tech industry. Use more innovative and leading companies like Apple and Google to judge this health. We are basically seeing Microsoft undergo the same transformation IBM went through from a products company to a services company. Microsoft products will stay in use for many years to come and Microsoft can make quite a bit of money offering consulting services to these products. But the days of Microsoft compounding huge growth off product sales are gone.

Written by smist08

July 24, 2009 at 3:33 am