Red Rocks

Why Microsoft is Jealous of Apple

January 21, 2011

Microsoft has been struggling to find a new line of revenue that will ‘move the needle’ for more than a decade.  Their stock price has gone down 8% relative to 10 years ago.  As a comparison:

  • AAPL (Apple): +3,701
  • AMZN (Amazon) : +903%
  • GM (General Motors): +8%
  • PG (Proctor and Gamble): +87%
Source (1/21/2010)

Not only have technology companies wildly outperformed Microsoft so have large US stalwarts like GM and Proctor and Gamble.  GM even pulled that off despite bankruptcy protection!  Microsoft is struggling for Growth.

Microsoft's revenue by division in the latest reported quarter (Q2 2011 - Ending 9/30/2010):
  • Windows and Windows Live: $4.76B
  • Server & Tools: $3.96B
  • Business: $5.126B
  • Online services: $0.527B
  • Entertainment & Devices: $1.8B
Source

The vast majority of Microsoft's income comes from the same place it has for years: Windows, Windows Server, and Office/Exchange.

There is little growth potential for these businesses (at least in the Western world) as they are nearly a monopoly in the Windows and Office/Exchange business lines.  And these lines of business are under new attacks on several fronts.

Windows: Mac OSX, Netbooks, iPads, Android Tablets (soon), and Chrome OS (soon) are or soon will be increasing their market share.  While it is not one to one, the growth in this area will diminish the Windows market share.

Office/Exchange: The advent of hosted solutions, primarily from Google in the form of Google Apps (Email + Office) enables smaller (and now medium size to large) companies to utilize Google as an alternative to the Office/Exchange monopoly.

Microsoft has focused on new fronts, such as Search (Bing), Mobile (Windows Phone 7), and Gaming (XBox) to provide growth (or backfill slowing growth).  But when you look at the current picture, less than 15% of its revenue comes from outside of the three major cash cows.

The picture looks even worse when you contrast it with Apple.  In Apples most recent quarter (one after the above MS quarter), Apple reported $2.79B in revenue from the iPad.  The iPad, less than a year old, has already surpassed the revenue of all of Microsoft's new endeavors.
(Apple revenue source)

So Microsoft, in a decade of attempting to find new revenue, has come up with less revenue than Apple has in the 3rd quarter of a new product that was nearly universally shrugged off by the tech reporters.

Microsoft needs to launch an iPad sized product every other year to regain anything near its previous growth.  Apple has done that for nearly the entire decade.  Microsoft has maybe done it once, with the XBox 360, after many years of investment.

This is why I think MSFT will still be a $30 stock in a decade, while Apple will have another decade of 4 digit percent growth.

Photography

January 4, 2011

Photography has been a hobby of mine for the past few years.  I decided to post some of my favorite shots on my website.  You can view them here. The header image for the site was also created from one of these images.

Here are a few samples:





Smart phones: Open, Closed, and Fragmented

November 22, 2010

Android is Open, iOS is closed.  Well, that is one way to look at it.  Steve Jobs would prefer: Integrated vs. Fragmented.  As we’ve learned from politics, (Estate Tax vs. Death Tax), how you name something can dramatically change people’s perceptions.

I don’t believe most of the facts in this discussion are in dispute.  Apple and Google take a very different approach to their mobile operating systems.

Apple takes a very controlling closed/integrated approach.  You can only publish an application on an iPhone if Apple approves it.  The approval process can be opaque at times, though it is getting better.  As Henry Ford said: “Any customer can have a car painted any colour that he wants so long as it is black”; the iPhone comes in one color, one screen size, one form factor.  Old devices are supported for a while with the latest OS, but users are certainly encouraged to run the latest OS, with a somewhat recent version of the hardware.

Google’s approach is open and free.  You can build any application you want for Android.  You can launch your own Application Store.  You can ship Android using Bing as your search engine.  You can use any screen size, form factor, or even any color!  Android is a platform on which you can build a mobile operating system for your device from.  You can choose the defaults, or you can customize it.

Both of these approaches have costs/pains associated with them…

iPhone Limitations: You can only use your iPhone to do what Apple approves of.  Well, that is partially true.  You can use any part of the Internet (excluding Flash) using the browser, but there are a large number of applications that Apple will never approve, and therefore cannot be used on an iPhone.  Interested in Swype for the iPhone?  Sorry, not approved.

Android Fragmentation: There has been much discussion of late about the fragmentation of the Android space.  Netflix stated that they will support Windows Phone 7 before Android, and that their Android support will be on a device by device basis.  This is because there is no unified security model that they can use to insure people won’t ‘steal’ the streaming content (a ridiculous limitation).  Rovio came out with a list of unsupported Android smart phones for its popular Angry Birds game.  It seems the different hardware configurations make the game play different across devices.  These are two very popular applications that are struggling to provide a solution on the Android platform due to its ‘openness’.  Developing for Android is harder than iOS because you must handle the different physical and software configurations that exist.  That is a much smaller issue on iOS.

In addition to these issues, other questions have been raised about the state of applications on Android.  John Gruber, a noted Apple enthusiast, asked: “Where Are the Android Killer Apps?"  While he is certainly biased towards Apple, I think the question is valid.  Does Android have killer apps, or simply ports/clones of iOS applications?

Android ‘Free’ Fallout: Scoble has a post about the iPhone and Android application ecosystems.  He points out that regardless of overall market-share, the perception is that iPhone users spend more money per device than Android users.  And that the iOS market is where developers want to be.  The integrated Apple approach drives more eyes to their (single) app store.  And those uses are more likely to already have accounts setup and be able to do ‘one click purchases’.  Google has also been slow to enable application purchases globally, which has driven more developers to release free ‘ad supported’ versions on Android than iOS.

So who wins?  Neither.  Both ecosystems have their issues.  iOS is and will continue to be a major success and huge market for paid applications.  If you are developing a non-controversial (to Apple) application, it is a great bet.  The Android platform will be huge.  Android will drive nearly every non-Microsoft or Apple based mobile device made in the next few years.  There will be a wide variety of hardware and customized software versions released, and it will enable the development of some exciting ‘custom’ mobile solutions that are simply not feasible (or even possible) on iOS.

As a developer, both platforms have a lot of appeal, but they are very different to work with.  There is no clear winner.

Android is a Success, but for Whom?

November 22, 2010

There is no arguing that the market share of devices built on the Open Source Android operating system is impressive.  The Android platform, judged by adoption, is a success.

But who are the winners?

Google, who is spending the money to develop and market Android, obviously hopes to gain from their effort.  While they do not sell Android, they support it to foster more traffic to Google and the web in general, which will, in theory, sell more ads.  When asked about the ad revenue from Android, CEO Eric Schmidt said: “Trust me that revenue is large enough to pay for all of the Android activities and a whole bunch more."  Google’s Jonathan Rosenberg estimated Google’s Android related revenue at $1b annually.  However, this revenue is all indirect.  Would Google be just as well off if the smart phone market were entirely iPhone devices defaulted to use Google and YouTube?

But Android is beginning to be used in ways that would appear to be neutral or negative to Google.  Rumors swirled in early September that Verizon was replacing Google Search with Bing on all of its Android phones.  Those were followed up quickly with denials, stating that Bing would not be used on ALL Android phones, but that it would be the default on some.  So Verizon is shipping some Android phones defaulted to use Bing search.  Also, Google competitor Baidu is reportedly working to build Android powered smart phones with all Google references replaced with Baidu.  Neither of these uses will drive revenue, direct or indirect, to Google.  These examples illustrate Android’s openness.  No one, not even Google, can control how Android is used.

I believe Android is, and will continue to be, a success for Google.  The various other uses of Android do not diminish the value of the normal uses of Android.  The existence of Android certainly provides a better situation for Google than a smart phone market dominated by Apple and Microsoft alone.

Using Tycho to Build an OSGi Project

October 22, 2010

I recently migrated the build process for an application from a monolithic Eclipse Buckminster build to a Maven build using Tycho.  Our source code was componentized and runs in an OSGi container, but our build was not, making it difficult to version each component individually.

Because all of our OSGi meta-data was already stored in the OSGi MANIFEST.MF files, we wanted a built process that would leverage that investment, while providing us the flexibility and functionality  a generalized build tool provides.  Maven and Tycho fit the bill.

Tycho is only supported on Beta releases of Maven 3.  We used Beta 2 for our build.  Tycho is simply installed as a build plugin, so all you need to get started is the Beta release of Maven 3.

The Maven/Tycho setup is pretty simple.  We defined a parent POM that provided the Tycho dependency, the child modules to build, and the P2 Update Sites that provided any dependencies needed by the component.  The Tycho part of the config looked like:

Read More

Apple Deprecates Java, Escalates War on Flash

October 21, 2010

Apple made a few surprise moves yesterday.  Engadget noticed that the new MacBook Air computers do not ship with a Flash Plug-in pre-installed.  This is another escalation in the Apple vs. Flash battle that started with the iOS devices and is now creeping into the OS X computers.  However, unlike iOS, you can still manually install the Flash Plug-in if you choose.  In the end, this is an inconvenience, but nothing that can’t be resolved by a user in 5 minutes since Adobe develops the Flash Plug-in.

The second move, and the one more relevance to me, is the deprecation of Java on OS X.  The Apple/Java relationship is interesting.  While Sun produces JVMs for most major platforms (Linux, Solaris, Windows), it does not provide a version for OS X.  Instead, Apple provides its own version of the JDK, developed at least in part by Apple.

My belief is that Apple is hoping (or already made deal) that Oracle will take over the development of the JDK for OS X.  While Apple is ruthless about attaining control over their entire stack, Java is not a critical part of any of their future plans, so why waste engineering resources on it.  Instead, let Oracle spend the effort, just as they already do for Windows, Linux, and Solaris.

However, if Oracle does not take over development (although really, how could they not) then this could be a significant negative impact on MacBook sales, as the MacBook Pro is the chosen development platform for many Java developers.

I think the most realistic risk is that there will be a large gap between when Apple stops developing and when Oracle takes over.  However, deprecated does not mean “we re stopping all work”.  It simply means, that the end of the road is near.  Although given the slow release cycle of Java itself, I suppose we have a while before it becomes a serious problem.

Forest Fires

September 7, 2010

Today while hiking near Estes Park, CO I saw smoke from two different forest fires.  The larger fire was the Fourmile Canyon fire near Boulder that broke out this morning.  It is not yet contained and the smoke can be seen throughout the Denver area.

The second fire was a smaller file near Lumpy Ridge in Estes Park.  I believe there have been fires in this area already this year, and at this point this one is believed to be minor.

There were really high winds today, which enables the fires to spread quickly and makes it difficult to fight from the air.  Good luck to all the firefighters working to contain them.  Here are a few pictures from each:

Fourmile Canyon:


DSC_0904.jpg

Lumpy Ridge:
DSC_0910.jpg

The Power of Simplicity

August 20, 2010

Small changes in functionality can make big impacts on usefulness, and therefore the value of tools and applications. This has always been true, but is more obvious on mobile devices where limited user input, network access, and screen size magnify the value of a good user experience (UX).

One example of this phenomenon is Wikipedia. On the iPhone, I can look up data on Wikipedia using Safari, or using one of the Wikipedia iPhone applications. At first glance, an iPhone Wikipedia application is absurd. After all, it simply uses the built in Safari to render public web pages to the user. The exact same pages can be viewed using the built in Safari browser, and you can add a bookmark directly to the Wikipedia page to your iPhone home screen. But one difference makes all the difference. That one difference is auto-completion. On the mobile site, Wikipedia does not provide for search auto-completion. You must type in a full search and execute it. If you searched correctly, you can then select the result and view the page. Using the application, you simply start typing, and then select the correct match of your partial search to view the page.

This probably saves less then 30 seconds per usage. But looking up an answer in Wikipedia should be a sub-minute activity, making it a significant difference. And that difference makes me more likely to use the application, increasing its value.

A second example is Instapaper.  Instapaper is essentially a bookmarking service. Through various means, you can mark a website for reading later.  Then, using various client interfaces (Web, iPhone, etc.) you can read that article later.

When I first read about it, I didn’t get it at all. What’s the point? There are several existing ways to do the same thing. You can use Delicious, Bookmark items in your browser, email links to yourself, etc. It doesn’t really allow you to do anything you couldn’t do already.

What it does do is make that same function easier. As I read through my RSS feads, I will often find a longer article I don’t want to read right away. Now, I simply use the Instapaper bookmark in a desktop browser (javascript that sends the URL to Instapaper) or the Send To Instapaper button in Mobile Safari to bookmark it. Then later, when I’m sitting around with 5 minutes to kill, I’ll pull up Instapaper on my iPhone and read an article.

After a few weeks of usage, I found that I am reading many more long articles with better reading comprehension. Instead of hurrying through an article when I wasn’t dedicating my full attention, or just skipping it because I wasn’t ’that interested’, I now Instapaper it, and read it when I’m ready.

The functionality provided by Instapaper and the iPhone Wikipedia application are both trivial enhancements over existing options. But they provide just enough grease to make a task that was possible before a little easier.  That can be a huge value.

When looking for that next great idea, remember, you don’t need to invent an amazing new product category, you just need to make one thing easier to use.

Is Scala Too Complex?

July 22, 2010

Is Scala too complex to become the ‘New Java’?  This question has been debated before, and there are some good existing posts including:

I tend to mostly agree with their arguments that Scala is not inherently more complex, but instead is different and has complexity in different ways.  The syntax is different, and you need to learn a few different rules, and some features like Traits (multi-inheritance) and implicit conversions can make tracking down how things work a bit more difficult.  In the end though, I don't believe Scala is itself more complex than Java.

But I want to take a different angle on this question.  I believe that the use of Scala to build Domain Specific Languages illustrates how some of Scala's features can be used to create code that can be complex to understand, but that may be OK.

Domain Specific Languages
Domain Specific Languages, or DSLs, provide a syntax suited to a specific problem domain.  Scala provides a set of features that enable the development of Scala libraries that enable a DSL or pseudo-DSL.

Lift is a web framework written in Scala.  It provides what I consider a Scala based DSL for creating web applications.  Let's examine some sample code from a simple Lift Snippet.  (A Lift Snippet is somewhat related to a Servlet):
class A {
  def snippet (xhtml : NodeSeq) : NodeSeq = bind("A", xhtml, "name" -> Text("The A snippet"))
}

This example (from Exploring Lift site - pdf) provides a trivial snippet implementation.  It simply replaces the <A:name /> XML tag with “The A snippet” text and would be called by the following XHTML:

Read More