Category Archives: mobile

Reflections on Microsoft PDC 2009

Microsoft’s Professional Developers Conference has long been a key event in the company’s calendar. CEO Steve Ballmer and his colleagues are famous for their belief that developers make or break a platform, and PDC is where the most committed of those developers learn as much as Microsoft is willing to share of its long-term plans. There have been good – for example, 2000 C# and .NET launch, 2008 Windows 7 – and bad – for example, 2001 Hailstorm, 2003 Longhorn – PDCs but they have all been interesting, at least the ones I have attended.

So how was PDC 2009? While there was a ton of good content there, and an impressive launch for Silverlight 4, there was a noticeable lack of direction; maybe that was why Ballmer decided not to show up. It should have been the Windows Azure PDC, but as I have just written elsewhere, Microsoft has little excitement about its cloud. Chief Software Architect Ray Ozzie gave almost exactly the same keynote this year that he gave last year; and the body language, as it were, is more about avoiding the cloud than embracing it. Cross-platform clients, commodity pricing, throw away your servers: from Microsoft’s point of view, what’s not to hate?

In theory, mobile computing could have been another big story at the PDC, but Microsoft’s slow progress in Mobile is well known.

My instinct is that Microsoft needs to change but does not know how: the wheels continue to turn and we will get new versions of Windows, ever more complex iterations of Windows Server, Exchange, SharePoint, and feature after feature added to Microsoft Office – does it really need to become PhotoShop – but in the end this is more of the same.

The mitigating factors are the high quality of Windows 7, which will drive a lot of new PC sales for a quarter or two, and the strong products coming out of the developer division. Visual Studio 2010 plus Silverlight is an interesting platform, and ASP.NET MVC is in my opinion a big advance from Web Forms.

That’s not enough though; and we still await a convincing strategic discussion of how Microsoft intends to flourish in the next decade.

Technorati Tags: ,,

Is Apple iPhone now unstoppable in the mobile platform wars?

I’ve been reflecting on a chat I had with a mobile application developer at Qt Developer Days last week. He thinks that Apple has all-but won in the battle to dominate the SmartPhone platform.

His reasoning is based on a couple of things. The first is that Apple is easily outpacing others in application availability and number of app installations. I guess there are many ways of counting this, but have a look at these figures. Handango, which has been in this game for over a decade, reported in January that it had over 140,000 apps and 100 million all-time downloads across a number of SmartPhone platforms. Apple reported this month that it has 85,000 apps and 2 billion downloads.

His second point is that Apple is one of the few companies to understand that users like consistency better than choice. “If I pick up an iPhone, my fingers know what to do,” he told me. This makes users reluctant to switch, except to another iPhone. By contrast, Nokia has a zillion different devices supposedly tailored for the needs of different customer segments, but as a result there is no sense of a consistent platform and users can easily switch away. Windows Mobile has the same problem but with multiple vendors as well as frequent design changes from each vendor.

These are points well made. If the much-rumoured Apple tablet appears, we can expect the App Store concept to extend its reach to larger devices as well. No wonder Adobe is so determined not to be left out on this platform, announcing a compiler to convert Flash applications to native iPhone code, as well as stepping up its campaign for Flash in the iPhone browser.

That said, I can think of counter-arguments. One is that iPhone isn’t yet, as far as I know, strong for corporate development. Windows Mobile has some advantages here, for Microsoft platform companies, while Java (not available on iPhone so far) is also appealing to corporate developers.

Another is that Google Android will give strong competition and take advantage of Apple’s weakness, its reluctance to abandon premium pricing.

Third, the consistency argument only goes so far. If you look at today’s iPod touch, for example, compared to the first iPods, there are huge differences. Users will in fact switch if there is convincing value in what is new.

Fourth, the more iPhone grows in importance, the more discontent over the closed nature of its platform will grow.

It is still early days for SmartPhones as a development platform; and while it is fun to speculate, things may look very different in a couple of years.

Still, let’s acknowledge that right now it is advantage Apple.

See also: What’s your choice in the mobile battleground?

and this great rant from a frustrated Symbian/Nokia developer:

Calling all Nokia & Symbian geniuses: Am I wrong?

Microsoft says it will recover Sidekick data – but we still need to know more

Hopeful news at last for customers of T-Mobile Sidekick, who were told that their cloud-stored data had been lost. Roz Ho, Coporate Vice President of Premium Mobile Experiences – how hollow that sounds right now – says:

We are pleased to report that we have recovered most, if not all, customer data for those  Sidekick customers whose data was affected by the recent outage.  We plan to begin restoring users’ personal data as soon as possible, starting with personal contacts, after we have validated the data and our restoration plan. We will then continue to work around the clock to restore data to all affected users, including calendar, notes, tasks, photographs and high scores, as quickly as possible.

That’s the best outcome from a bad situation, though even considered as an extended outage it is unacceptable service, but leaves many questions unanswered. Microsoft still has not really told us how the problem occurred. Ho says:

We have determined that the outage was caused by a system failure that created data loss in the core database and the back-up. We rebuilt the system component by component, recovering data along the way.

Sure; I think we all know that there was a “system failure that created data loss.” However, we all also suspect that there was a human failure that caused normally failsafe systems to fall over.

I read in the LA Times:

Microsoft is now emphasizing that the data loss, and the problems that led to it, were limited to a segment of the company’s network that is separate from its core cloud infrastructure. 

“The Danger Service platform, which experienced the outage, is a standalone service operating on non-Microsoft technologies, and is not related to Microsoft’s cloud services platform or Windows Live," Microsoft spokesperson Tonya Klause wrote in an e-mail.

Sorry, that is not good enough. Danger has been part of Microsoft for long enough that customers cannot reasonably be expected to distinguish it from other services run by the company. The technology is uses is an internal matter.

This AppleInsider article about the Microsoft’s mobile strategy and the Danger debacle is devastating, if true. The writer claims to have “engineers familiar with Microsoft’s internal operations who spoke with us,” one of whom said, “no one really grasps how dysfunctional Microsoft has become.” It paints a picture of a mobile device and OS strategy in disarray, a failed acquisition of a company with a promising product and service, and incompetence in handling the Danger service.

All this is rumour and maybe these sources are just disgruntled employees or ex-employees with grudges to settle. In the absence of facts though, rumours will fly. Currently we have just one fact: a catastrophic system failure for Sidekick customers.

Tell us more, or we will assume the worst.

Update

Another version of the story via Mary Jo Foley, who quotes “one of my Microsoft sources”:

(T)he data loss issue was caused by a hardware update on the existing Danger service that had NOT been ported over to a Microsoft platform and the issue was NOT part of a transition to an MS back end. It was an Oracle dB and Sun SAN solution that got a bad firmware update and the backup failed.

though she adds:

I’ve also heard that foul play has not been ruled out because the failure was so catastrophic and seemingly deliberate.

Qt goes mobile, gets bling, aims for broader appeal

Here at Qt Developer Days in Munich we’ve heard how Nokia wants to see “Qt everywhere”, and will be supporting Qt on its Maemo operating system and on Symbian, as well as adding specific support for Windows 7 and Mac OS X 10.6, “Snow Leopard”. Qt already works on Microsoft Windows Mobile, and of course on Linux which is where it all started. What about Google Android, Palm WebOS, Apple iPhone? Nothing has been promised, but there is hope that Qt will eventually work on at least some of these other systems.

So is “Qt everywhere” a realistic proposition? Here’s a few impressions from the conference. First, a bit of context. Qt is a C++ framework for cross-platform development. and although bindings for other languages exist, Nokia says it is focused on excellence in C++ rather than working with multiple languages. Developers get the advantages of both native code executables and cross-platform support, and Qt is popular on embedded systems as well as desktops and mobile devices.

Qt is an open source framework which was developed by a company called Trolltech which Nokia acquired in 2008. Its motivation, one assumes, was to simplify development for its own multiple operating systems, especially Maemo and Symbian. Still, it has also taken its responsibilities to the open source community seriously. Qt was originally available either under the GPL, which requires developers to make their own applications available under the GPL as well, or under a commercial license. This limited Qt’s take-up. In March Nokia introduced a third option, the LGPL, which is a more liberal and allows commercial development using the free license. The result, we were told, has been a 250% increase in usage (though how this is defined is uncertain) accompanied by “a small drop in revenue.”

Although the revenue decrease is troubling, it is not a disaster for Nokia whose main business is selling hardware; and if take up continues to increase I’d expect revenue to follow.

Since the Nokia acquisition, Qt has been energetically developed. 2009 has seen the release of a dedicated IDE called Qt Creator. I was interested to see a company that has chosen not to go the Eclipse route for its primary IDE, though there are plug-ins for both Eclipse and Visual Studio. The trolls explained that Eclipse came with too much baggage and they wanted something more perfectly suited to its purpose, a lean approach that is in keeping with the Qt philosophy.

Another important move is the inclusion of Webkit within the framework, the same open source HTML engine that powers Apple’s Safari, Adobe AIR, and the browser in numerous Smartphones. Webkit also comes with a Javascript engine, which Nokia is exploiting in several interesting ways.

The big deal at Qt Developer Days was another new project called Kinetic. This is comprised of four parts:

1. An animation API.

2. A state machine.

3. A graphical effects API.

4. A declarative API, currently called QML (Qt Markup Language), though this may change.

Many of these pieces, though not the last, are already present in Qt 4.6, just released in technical preview. Nokia has not announced a specific date for Kinetic, though there were mutters about “first half of 2010”.

The thinking behind Kinetic is to make it easier to support the graphical effects and transitions that users have come to expect, as well as improving the designer-developer workflow – showing that it is not only Adobe and Microsoft who are thinking about this.

QML is significant for several reasons. It is a JavaScript-like API: we were told that Nokia started out with XML but found it cumbersome, and settled on JavaScript instead. It is designed to work well with visual design tools, and Nokia has one code-named Bauhaus which will be part of Qt Creator. Finally, it allows snippets of JavaScript so that developers can create dynamic user interfaces.

At runtime, QML is rendered by a viewer widget, which can be programmatically controlled in C++ just like other Qt widgets.  

Nokia’s hope is that designers can be persuaded to work directly in the QML designer, enabling free exchange of code between designers and developers. It is a nice idea, though I doubt designers will easily transition from the more comfortable world of Photoshop and Flash. However, even if in the end QML is used more by developers than designers, it does greatly simplify the task of creating a dynamic Qt UI. Note that there is already a visual GUI designer in Qt Creator but this is geared towards static layouts.

Long term, who knows, we may see entire applications written in QML, opening up Qt to a new and broader audience.

You can see the latest Qt roadmap here.

Qt pros and cons

I was impressed that attendance here has increased – from around 500 last year to around 700 – despite the economy. Those developers I spoke to seemed to like Qt, praising the way it self-manages memory, though some find the model-view aspect too complex and apparently this is to be improved. Nokia’s stewardship and openness is appreciated and the Qt roadmap generally liked, though there is concern that its understandable focus on mobile may leave the desktop under-served.

Cross-platform capability is increasingly important, and for those who want the performance and capability of C++ along with really good Linux support – important for embedded use – Qt is a strong contender. The focus on mobile is right, not only because of Nokia’s own needs, but because demand for Smartphone apps can only increase.

Integrating with Webkit is a smart move, opening up possibilities for hybrid web/desktop applications and giving Windows developers an alternative to embedded IE with all its quirks.

The open source aspect is another strength. This is now a good selling point if you developing for certain governments (the UK is one such) or other organisations that have a bias towards open source.

That said, talk of Qt everywhere is premature. The mobile space is fractured, and without iPhone, WebOS or Android Nokia cannot claim to have a universal solution. Nor has anyone else; but I’m just back from Adobe MAX where we heard about wider support for the Flash runtime. Then again, few choose between C++ or Flash; Adobe’s runtime is pretty much off the map for attendees here.

Qt is well-established in its niche, and is in good hands. I will be interested to see whether Nokia is successful in broadening its appeal.

Incidentally, if you can get to San Francisco you can still catch Qt Developer Days as it is running there from November 2nd-4th.

Nokia announces N900, juggles three operating systems

Nokia has announced the N900 Internet Tablet running the Linux-based Maemo operating system. This is the latest in a series of Tablets (not to be confused with Microsoft’s Tablet PCs), but the first one to include “cellular features”, which means it can make and receive phone calls, though the press release hardly mentions it.

This is a big deal since this is now in effect a SmartPhone (as the Reg observes) and therefore may be offered with operator subsidies, which seems essential for grabbing market share in the crazy mobile phone business. Nokia needs a success with this one, as its previous Tablets have made little impact beyond an enthusiast niche.

The full specification shows support for quad-band GSM EDGE as well as tri-band WCDMA. There’s also integrated GPS; wi-fi; 5 megapixel camera; Mozilla web browser (not WebKit); Adobe Flash 9.4; Mail for Exchange; 1GB of RAM split between application memory and virtual memory, and 32GB internal storage. Oh, and there’s a slide-out QWERTY keyboard so this could be a great device for messaging.

This comes just after Nokia’s Windows netbook announcement, the Booklet 3G, while the company is also running the Symbian Foundation and supposedly driving Symbian as an open-source mobile OS to rival Google’s Android.

The big question: how many operating systems does Nokia need? I can understand its desire to get on the Windows 7 bandwagon with the Booklet 3G, but why continue with both Maemo and Symbian?

Still, the N900 looks like a neat device; see here for full information and images.

Symbian appeals to Traveling Geeks: develop for our platform

I attended a Traveling Geeks event in London last night, a party sponsored mainly by Symbian and NESTA. I returned with a large pile of business cards from folk involved in a diverse range of initiatives. Kate Arkless Gray told me about Save our Sounds, a BBC World Service project to archive and map interesting and endangered sounds from around the world; while Sarah Blow sought to convince me that I don’t just need Twitter, I need Tweetmeme to track what is happening on the world’s most public short message service.

Digitrad wants me to sign up for yes.tel, which means registering a .tel domain with its service and using it as a public home page, email address and voicemail box. It’s not clear to me what advantage it has over all the other third-parties who want to own my digital identity, except that Digitrad is smaller and therefore less threatening than Google or Facebook. I’m happy with conventional registrars.

From my perspective, Symbian managed to dominate the event with engaging images around the walls and numerous representatives to talk up its mobile platform. The Symbian story is an interesting one. Originally developed by Psion, it was spun off in 1998 into an independent company co-owned by the giants of mobile at the time: Ericsson, Nokia, Motorola and Psion itself. Nokia proceeded to acquire more and more of Symbian, achieving greater control but also – it seemed to me – reducing the chance it once had of becoming an industry standard. Other vendors became wary of depending on an operating system controlled by a competitor. Linux had greater appeal – as seen in both the Palm Pre and Google Android – while Apple did its own thing with OS X on the iPhone, and Microsoft ploughed on with Windows Mobile.

Last year Nokia responded to the pressure by announcing plans to acquire Symbian in its entirety and then to give it to a new Symbian Foundation, an open source, collaborative project along the same lines as Eclipse. Developers can sign up to get the tools for programming Symbian applications in C++, Java, Python, Ruby, Adobe Flash, C# or HTML/JavaScript. I was told that Symbian intends to be even more open than Android. It restores Symbian’s cross-industry potential though there is now more competition.

Should you develop for Symbian? The Symbian Foundation is a great move, but in the App Store era I suspect deployment issues are even more critical than the quality of the OS or its development tools. Developers will go where they can find customers. Apple is reaping the rewards of controlling the entire platform and marginalizing the mobile operators.

Still, as long as Apple is content for the iPhone to be punishingly expensive, it leaves space for others. The appeal of Symbian will depend not only on its success among device manufacturers, but also on how easy it is for users to find, purchase and install applications.

There is also the matter of reliable, fast and affordable internet access, the lack of which has so far spoilt every mobile device I have owned.

Spotify demos mobile music streaming with offline option – for Android

If you have any interest in the future of the music industry, I recommend taking a look at the following video:

There are a couple of reasons why this demo of streaming music to a Google Android mobile is interesting. First, if Spotify delivers the kind of performance and quality it has on the desktop, this will be a great facility for music fans. Second, it is interesting to see how it handles the offline problem, such as when you are in London and descend into the London Underground train network. Simple: just mark a track for offline use, and it downloads to local storage. I’m presuming this is encrypted in some way in order to prevent you from converting it to a standard MP3; but if it is always available anyway, who cares?

Will this be free, or a premium service? I’m guessing the latter but don’t yet have any more details.

Of course everyone is asking for an iPhone version. See for example this post:

It’s interesting that Spotify has chosen Android as the mobile debut, rather than iPhone – although it’s safe to assume the company is working on Apple’s handset too, among others.

Hmmm, I wonder what chance this would have of getting past Apple’s iPhone app censorship? It seems to me that what we are seeing is the beginning of the end for the iTunes download model.

SharpDevelop 3.0: everything .NET from Boo to F#

I’ve been researching open source .NET and noticed that SharpDevelop, the free IDE for .NET on Windows, completed version 3.0 earlier this month. Congratulations to the team. Along with Windows Forms and ASP.NET applications in C# or Visual Basic, you get extras like support for F#, Boo and Python. Another welcome feature is built-in support for Subversion version control. There’s even an ASCII table in the IDE, which brings back memories: 15 years ago every programming manual had one at the back.

SharpDevelop has two major challenges. One is keeping up with Microsoft; right now there are discussions about improving WPF support, for example. The other is that Microsoft offers free Express versions of Visual Studio, which leaves SharpDevelop with those niche users for whom the Express products are unsuitable, but who do not want to pay for a full version, or who are wedded to some exclusive SharpDevelop feature.

In favour of SharpDevelop, it installs more easily and loads more quickly than Microsoft’s effort, and certainly proves the point that native C# applications do not have to be slow.

A more interesting though less complete product is the forked MonoDevelop, which is cross platform and targets Mono, the open source implementation of .NET. Mono now looks good on Linux; but the idea of WORA (Write Once Run Anywhere) has never really caught on in the .NET world. How many significant Mono applications for Windows have you seen? My guess is that if it happens at all, it will be in the form of Silverlight/Moonlight running in the browser.

Technorati tags: , , , ,

How Hyper-V can seem to lose your data

I’m sure it can really lose your data as well, but in this case “seem” is the appropriate word. I’ve been messing around with Hyper-V and one of my test machines is a SharePoint server. I started this up and found I could not access it over the network. On further investigation, it turned out to be a broken trust relationship with the Domain Controller. In other words, on attempting to log on with domain credentials I got the message:

The trust relationship between this workstation and the primary domain failed

The official advice when confronted with this problem is to remove and re-join it to the domain, creating a new computer account. I did so. Logged on, and was disappointed to discover that SharePoint was now empty. Worse still, even checking out the SQL Server databases did not uncover them. All my documents had vanished.

It turned out that I had done the wrong thing. What had really happened is that Hyper-V had been saving my changes on that virtual hard drive to a “differencing disk”, a file with an .avhd extension. This is part of the Hyper-V snapshot system. Somehow, Hyper-V had forgotten the differencing disk, and started up my SharePoint VM using the last fully merged copy of the drive, which was over a month old. My drive had gone back in time, so the data had gone.

The solution was to restore the old parent .vhd from backup, and then manually merge it with the differencing file. Step by step instructions are here. Since I had deleted the original computer account, I then had to remove and rejoin the machine to the domain a second time. All was well and my data reappeared.

The bug here is how Hyper-V managed to start with an old version of the virtual hard drive in the first place. I can imagine this causing panic if it occurs in production – and once you start writing new, important data to the old version you are really in trouble. I was lucky that the discrepancy was severe enough that Active Directory complained.

Virtualization may be wonderful; but it also introduces new problems of its own.

The other lesson is that those .vhd files in C:\Users\Public\Public Documents\Hyper-V\Virtual Hard Disks do not necessarily contain your latest data. You also need to consider the .avhd files stored handily at C:\Program Data\Microsoft\Windows\Hyper-V\Snapshots.

Technorati tags: , , ,

Why it’s hard to compete with Apple in mobile app development and deployment

One OS – one device – one AppStore – easy over-the-air purchase for end users. Apple’s development and deployment model delivers results, despite mutters about lock-in and Apple helping itself to a generous slice of the revenue.

Here at Adobe MAX Europe we’ve been hearing about the future of Flash on mobile devices and even seen a demo of what many would like to be able to do: simple over-the-air download of both the Flash runtime and Flash applications. Flash is a great runtime for a mobile device. A while back I reviewed the LG Viewty phone, which has a Flash UI, and despite some imperfections it convinced me of the potential of Flash for mobile devices.

Even so, it will be difficult for Adobe to create an application platform that works as well as Apple’s AppStore. Here are some of the problems.

  • Device-specific APIs. I spoke to the folk on the Sony Ericsson stand here at MAX. If you want your Flash application to do things like talking to the GPS, or integrating with the PIM (Personal Information Manager) on the phone, then you have to write a device-specific version of your Flash application. This adds to the development effort and creates friction in the deployment process. Will Adobe wrap device functions in Flash APIs? I asked about this at the press briefing today. The answer from Senior Principal Scientist Mark Anders was yes … maybe. He mentioned that API bloat became a negative for Java. It really is a difficult thing to get right.
  • Operator interference. Apple has bullied the operators it works with into doing things its way, and gets away with it because the device is so desirable. The operators though are reluctant to be no more than data carriers. They lock down devices, run their own application stores or music services, and make it difficult to mount a convincing challenge to Apple’s single store.
  • Diversity of devices. Diversity is good, sure. It’s tough for developers though. Maybe there’s a keyboard, maybe there is a touch screen, maybe there is a joypad, maybe the screen is big or small. Your app has to work well in every scenario, or else limit the number of devices it supports. Much easier with Apple, just one device to target. That will change somewhat as Apple bring out new iPhone variants, but there will always be more consistency from a single vendor.

It was similar factors that caused Microsoft to abandon its third-party vendors and create Zune, in an effort to compete with the iPod. Microsoft was too late. I am sure we will see increasing use of Flash and Flash-based applications on mobile devices; but it will be hard to displace Apple’s iPhone as the foremost mobile platform for downloaded applications.

Flash in the mobile browser is another matter, of course. If Apple continues to exclude Adobe’s runtime – which I guess it does to protect its application business – then it makes a nice selling point for competitors which do support Flash.