Why Microsoft May Still Have Game

At the Mobile Portland meeting Monday evening, Jeremy Foster came down to show off the developer aspects of Microsoft’s new Windows 8 operating system. I walked in skeptical and walked out very impressed. At least from a developer perspective, the developer tools and language integration is very well thought through. Jeremy was demonstrating things like calling native C code from within Javascript without having to do anything special at all, a huge advantage for companies like mine that have a huge native code base we need to use. I always did give Microsoft huge credit for its developer programs and tools [1].

Here’s the reality: Microsoft still has plenty of volume on its side. I heard a report that, if you factor in tablets and smartphones, Windows still has 30% market share. The report indicates that Microsoft will sell about 250 million copies of Windows this year, second only to Android. There is still a large contingent of users who are very happy with Windows and will continue to use it, and there is another group that will continue to use it because corporations said so.

Here’s the weakness Microsoft can exploit: we are now four years into the iOS App Store and about three years into the Android app store. The bulk of developers aren’t making a living on either platform. If Microsoft can demonstrate that typical developers can make a living on Windows 8, they may just find converts.

As much as the press seems to hate Microsoft, there are still some things going for the company. Cross-device support where the core infrastructure is the same and the API [2] calls are the same is a huge advantage for developers. I’ll be watching OS sales closely.

[1] I give the company less credit for its marketing. In the middle of the meeting I decided the company really needs a Senior VP of Simplicity whose sole job is to veto any products that can’t be easily explained to consumers. The confusion around the different flavors of Windows is particularly bad.

[2] APIs are the calls we make into the operating system to do the things we expect the OS to do. These calls can be anything from working with text to making images dance across the screen to showing a table of data.

Hacking Away On The Bleeding Edge

We are doing some very interesting development work lately, although none of it is in releasable form yet. We decided with our most recent project that instead of just starting from the beginning and building one big project, we would build a series of small projects that did distinct tasks. This means we can easily test a single concept or idea long before we have to make sure it plays nice with other code.

Sometimes these projects are a one-day event. For instance, we will create a completely separate project just to make sure an animation works the way we want. In other cases the project is long-term. For the new app, we spent well over a year and a half just playing with the engine to make sure it reacts the way we want, for instance.

The latest component we are working on is something we have been playing with for a month or two now, off and on. In this case we started it as a separate project because the code uses concepts that are right on the bleeding edge of technology. This technology takes a web page and turns it into a rich text editor, a la Word or Pages.

As I mentioned, though, this stuff is bleeding edge and lots of things have not been thought through well in this world. For instance, it is painful to get the cursor position and figure out where it is relative to the screen. Why do I care? Because when typing into this kind of view I want the cursor to be on screen and for some reason no one thought to do that automatically. After spending an entire day playing around with the code and pulling out what is left of my hair, after spending a week researching the topic, I finally came up with an elegant hack that will do the job perfectly.

When this is all said and done, we should be able to take all these sample projects, move them into the primary one, clean a few things up and be ready to go.

That’s the theory anyway.

Buying Developers Or A Cut Of The Profits?

If you aren’t familiar, app.net is a paid service for those who are tired of Twitter treating us like product and selling us to the highest bidder. For the record, 1) I understood this when I signed up for the Twitter service and knew they had no business plan; and 2) I do have an app.net account. Developers, in particular, have been screwed by Twitter. Long story that I won’t go into if you are not familiar — I’m sure you can google “Twitter screws developers” and uncover 50 million posts — but let’s just say here that Twitter built itself on the backs of third-party clients and is now screwing them over by cutting them off.

app.net charges $50 per year to be apart of its Twitter-like service and is looking for ways to reward developers who write apps for app.net. With that, app.net is offering a portion of its monthly income to these developers. I don’t agree with the method for determining the split but I think it is a brilliant idea.

Why? First, it is hard for developers to make a living $2 or $3 per copy. Giving developers a cut of the revenues gives them an on-going incentive to keep improving the app and adding new app.net features. Second, if the platform is successful then app.net is recognizing right up front that developers have contributed to that success and aren’t just paying it lip service. They are actually paying out hard cold cash to their best contributors.

This is a valuable model, akin to Amazon offering reference referrals [1]. Yes, the app.net model is more complicated since it can’t directly give each developer 10% of the purchase price (or whatever the Amazon referral model pays), but a few thousand dollars on top of the revenue generated from selling their apps could be huge for many developers and is an interesting supplemental model to consider when trying to build a company.

[1] I’ve read mixed reactions to the model, partly because it smacks of paying developers to write apps for your platform, which may indicate doom for a platform. I don’t know if I agree with that but that’s the thread circulating these days. Except I see what app.net doing as very different. This isn’t paying developers to write apps; this is a thank you to app developers for contributing to the platform. As I mentioned above, this is much close to Amazon.com’s referral program, not RIM and Microsoft buying apps.

Honda, Lane Assist and Blind Spot Cameras

Who says car companies aren’t innovating? Honda is introducing a very cool feature into the 2013 Accord: Lane Assist. At its core this technology monitors your position in the road and beeps at you if you start drifting into another lane. If you turn on the turn signal, it won’t beep. Here’s a concept video from Honda posted to YouTube:

A reporter from the Portland newspaper, The Oregonian, took the new car for a test ride and noticed something else interesting. When you turn on the right blinker, the map changes to a camera view, which shows the scene from a small camera embedded in the right rear view mirror. This is perfect for seeing into your blind spot before moving to the right. Check out the video at oregonlive.com.

Upgrading Sucks

I finally got a chance to upgrade my desktop operating system to OS X Mountain Lion yesterday. And of course I have devices to upgrade to iOS 6 this week, too, although one OS per day is more than enough. Every time I update the OS I remember what a pain it is and why I miss the days when I only had to go through this pain once every five years or so. Given that, this upgrade doesn’t seem to be as bad as the Snow Leopard to Lion upgrade, where it took me weeks to figure out how to scroll correctly. This time my biggest complaint is that Apple defaulted a calendar preference that now means I will be constantly alerted to every all day event I have scheduled. For the record, none of my all day events — and I have lots of them — had alarms before this.

On top of these OS changes, I’ve also been steadily updating my development skills. I’ve been exploring new features in iOS, learning OS X, and getting up to speed on the latest changes to Rails as well. My code for iOS in particular is so much better than it was even a few months ago and the changes Apple has made to the compiler are really nice. At the same time, massive changes to the way things are done. The older I get, the more stuck in my ways, the less I want to completely re-think the way I am writing code every year.

Upgrading isn’t easy, and I say that knowing full well that Apple’s iOS and OS X upgrades are about as painless as I could possibly expect. It would stink if technology stayed still. After all, we have a long way to go with this technology before it can stop changing. On the other hand, it would be nice if things didn’t change quite so often.

I’ve got whiplash.