Category Archives: microsoft

Adobe Flash vs Apple iPad: RIA in the balance

Adobe evangelist Lee Brimelow has posted some images of well-known sites that break if Adobe Flash is not enabled. His point: if Apple’s iPad does not support Flash, none of these sites will work correctly.

While true in the short term, I do not think this is an effective line of argument. 

Let’s presume that you run one of these Flash-dependent sites. Now along comes a popular computing device that no longer displays Flash content. It’s already happened with the iPhone; but iPad is more serious because it has a full-size web browser, and many of us tolerate strange behaviour in a mobile web browser because we are used to it. Further, I’m guessing that some of these sites already adapt their content for iPhone.

What happens now? One of two things. Either Apple is persuaded to add support for the plugin; or the site owners fix their sites, detecting iPad/iPhone and substituting Quicktime or HTML5 content in place of Flash. In the case of the major sites such as those Brimelow lists, I doubt that second process would take long.

Result: people complain less, the pressure is off Apple and on Adobe.

I do not take the success of iPad for granted; but it is plausible; and if the device does become popular it is going to make Flash-centric web developers re-think their strategy. Further, if it fails, I doubt it will be for lack of Flash. Users do not care about Flash, they care about content, and the iPad will provide plenty of that.

The problem for Adobe is that much of its strategy is now built on the Flash runtime and its presumed ubiquity. If you compare Creative Suite 4 to Creative Suite 3 you can see how Flash is more pervasive, in several different roles ranging from rendering capabilities to code execution. It will be even more so in Creative Suite 5.

Applications built with Flex are equally affected. And note: if Flash is struggling to get over the wall into Apple’s orchard, Oracle Java will struggle more, and Microsoft Silverlight more still. It is not just Flash, but much of what we think of as RIA (Rich Internet Applications) that is at stake.

It is not over yet. If Apple is primarily concerned about browser stability, rather than controlling the platform, then Adobe may yet satisfy its requirements. Second, the iPad might fail – not completely, but enough to make it an unimportant niche. iPad is expensive and most users don’t get the tablet concept; it is not a sure-fire winner.

If neither get-out comes to pass, what can Adobe do? There are a couple of mitigating factors. One is that Adobe has already been thinking about how to deal with Apple devices. At the Adobe Max conference last year we saw its Flash to native code compiler, which will be in Creative Suite 5. It only targets iPhone; but no doubt iPad can be added. It raises the possibility of more Flash applets becoming native applications in the App Store. Money and control for Apple; but at least your code will run.

We also saw, in the Max sneak peeks, how Flash can be rendered server-side, and served to the browser as video. It’s an interesting thought if you simply must get your Flash content working on the iPad.

Another point is that Adobe is at a design tools company, and it can adapt its tools to be less focused on Flash. Another feature we saw at Max was an Illustrator to SVG converter. It is now in Adobe’s interests to work more intensely to advance HTML standards, to make them better clients for rich content.

Still, Apple has come up with what may be a significant roadblock to Adobe’s ambitions for what it calls the Flash Platform.

Web standards people may cheer this, on the grounds that a Flash-free web is less broken. I am not cheering though. Vendors locking down their devices is not a healthy way to advance web standards. Further, Flash is an amazing runtime. Flash enabled YouTube to succeed. The BBC iPlayer project did not deliver on its promise until it converted to Flash. Flash provides web developers with a consistent runtime that has value in entertainment, in education, and in general applications. One of the first things I install on Windows, Mac or Linux is Adobe AIR, which lets me run a desktop Twitter client.

Here’s my vote for Flash on iPad – and Silverlight and Java too, if the user wants their capabilities.

Windows 7 booms for Microsoft, everything else is flat

Microsoft has had a bumper quarter driven by Windows 7, as expected. I’ve put this into a table as I have before.

Quarter ending December 31st 2009 vs quarter ending December 31st 2008, $millions

Segment Revenue % change Profit % change
Client (Windows + Live) 6904 69.9 5394 98.9
Server and Tools 3844 0.24 1491 8.4
Online 581 4.60 -466 -49.5
Business (Office) 4745 -2.78 3010 -0.36
Entertainment and devices 2902 -10.87 375 288.5

The poor performance of Vista meant latent demand for Windows 7, as both individuals and organisations deferred upgrades, which was unleashed in this quarter. Microsoft said it was a “record quarter for Windows units” and “the fastest selling operating system in history”. Windows 7 is also a strong product in its own right.

There isn’t much else to cheer about, though given the general weakness of the server market the sliver of growth there is impressive. There is still no sign of a profitable online business, which is of major concern as interest in cloud computing accelerates.

Entertainment (Xbox) is now a steady business; I’m guessing that the huge growth in profits reflects lower investment and a reduction in cost of fixing endless red rings of death thanks to better quality hardware. Revenue on the other hand is somewhat down.

Windows 7 will continue to do well, though once the upgrade bump is passed the results will be less spectacular. Windows 8 will not get the same easy ride, unless Microsoft delivers something that surprises us all with its excellence.

The positive spin on these figures is that the company still has an opportunity to reinvent itself, financed by Windows profits. It needs its own iPod equivalent to show that it can escape its Windows and Office legacy. Windows Mobile 7? Laugh if you like; but the two things with obvious growth potential in the market generally are mobile devices, and cloud computing – the two go together, of course. That said, there is no evidence yet that Microsoft has the energy and agility to reverse its poor performance to date in both areas.

Who knows, perhaps after a couple of months of mobile focus, with details to be revealed shortly at Mobile World Congress and Mix10, the picture will look more promising?

Apple iPad vs Windows Tablet vs Google Chrome OS

Apple has announced the iPad – essentially a large-size (242.8 x 189.7mm) iTouch. Large multi-touch screen, claimed 10 hour battery life, flash drive of 16GB up to 32GB, browse the web, play music and video, read eBooks. Keyboard dock for the desk, virtual keyboard for when you are out and about. App Store support and runs iPhone apps.

image

Here’s my instant reaction with a few pros and cons.

The design looks great, as you’d expect from Apple, and I’m a fan of the tablet concept. I wrote a piece on the subject back in 2003 when it still looked possible that the Windows tablet would take off. I think laptops are too big and bulky, and that the clamshell keyboard idea is desperately awkward when you are travelling. Ever tried to use a laptop while eating a meal, flying economy, for example? Or quickly fire up your laptop to get an address from an email, while walking down the street? It’s a horrible experience and the tablet concept is much better in these scenarios.

I also think that Microsoft’s big mistake with Tablet PC was requiring a stylus. Styluses are horrible, expensive, easily lost, and destroy much of the advantage of having a tablet. They are fine of course as an optional input mechanism, for writing or drawing, but not as a required item. Our fingers are capable of fine control on their own.

Apple’s device wins here; plus it has a UI designed for multi-touch, rather than a desktop UI with pen input bolted on top. The same will be true of the apps.

All good reasons then why iPad will succeed. And it will.

Still, I have reservations. When I travel, I need a mobile phone, for voice and all the other things smartphones are good at; and I need a laptop for all the things laptops are good at: email, word processing, spreadsheets, web browsing, custom apps and so on.

However, I will be reluctant to carry three devices with overlapping features, so for the iPad to work for me, I will need to ditch the laptop. Otherwise I’ll leave it behind, use it a little round the house, but eventually wonder why I bought it in the first place.

Thus, the critical question for iPad is this: to what extent can it enable me to leave the laptop behind? A lot will depend on the usability of iWork, the virtual keyboard and so on.

A related issue is the extent to which the device is locked down. I’m not 100% clear about this, but my impression is that the only way to get apps onto the iPad is via App Store. You can get music on via iTunes, and pictures via a USB adapter designed for cameras, and there must be a way to transfer documents via iTunes, but I’m guessing these go into some secure area which cannot execute applications – though no doubt there will be hacks to get round this. In this respect the model seems to be the same as iPhone and iTouch, and different from the Mac. Another factor is the relatively limited storage space.

This aspect is an annoyance – unless you change gear and think of it as a web client. Let’s say I wanted to get my custom database app onto the iPad. Maybe I could do that with the SDK; but better still, why not write it as a web app? Add a bit of offline capability and it could be just about perfect.

In other words, if I can truly get the web habit, so that all the stuff that matters to me is available online, then I can leave the laptop at home and just take out an iPad.

Or indeed Google Chrome OS. From what we’ve heard so far, Google’s devices will also be locked down, and unlike the iPad you will not even be able to install apps from an app store or save music and video locally – though who knows, maybe that could change, when people complain about how useless it is on a train or aeroplane. And like Gizmodo I reckon Google should make a Chrome OS tablet.

I’m beginning to think that Apple could have the high-end tablet market, and Google the low-end, because it’s safe to say that a Chrome OS device will be cheaper.

Microsoft will do its own iPad-like multi-touch device in around 2013, judging by how long it has taken to do Windows Mobile 7 following the launch of iPhone in 2007.

See also: Battle of the portables: Netbook vs Apple iPad 2.

Picture courtesy of Apple.

The mystery of the slow Exchange 2007: when hard-coded values come back to haunt you

Following a migration from Microsoft Small Business Server 2003 to SBS 2008 users were complaining that Exchange was slower than before in some scenarios. How could this be? The new machine had 64-bit goodness and far more RAM than before.

I checked out the machine’s performance and noticed something odd. Store.exe, the Exchange database, usually grabs vast amounts of RAM, but in this case it was using surprisingly little, around 640MB. Could this be related to the performance issue?

I speculated that Exchange memory usage was limited in some way, so looked up where such a limit is set. I found this article. Ran ADSI Edit and there it was, a 640MB limit (or thereabouts), set in msExchESEParamCacheSizeMax.

I removed the limit, restarted Exchange 2007, and it immediately said “thank you very much” and grabbed 8GB instead.

Why did this setting exist? No doubt because back in the days of SBS 2003 and a much less powerful 32-bit machine, someone set it in order to prevent store.exe from crippling the box. It is another example of why Small Business Server is harder to manage than full server setups when Exchange invariably has a dedicated server (or several).

SBS 2008 cannot be installed as an in-place upgrade; but the official migration process does preserve Active Directory; and since that is where this value lives, and since it is not specific to any version of Exchange, it was dutifully transferred.

Why wasn’t the setting discovered and changed before? Well, you will observe that it is somewhat hidden. The main chances of finding it would be either if you were deeply schooled in the ways of Exchange, or if one of the Best Practices Analyzer (BPA) tools picked it up, or if the users screamed that Exchange was slow (which is what happened) and you figured out what was wrong.

The SBS BPA did not notice it. The Exchange BPA did, kind-of. It was not shown as a critical problem, but listed for information under “Non-Default Settings”, ironically with a tick beside it, as “Maximum ESE cache size changed”. Summoning help on this setting leads to this article which refers to Exchange 2000.

An admin failure, yes, but arguably also a defect in Exchange and SBS. Typical Microsoft: critical setting, hard-coded when it would make more sense to use a percentage value, not checked by setup and persistent across major upgrades of Exchange, deeply buried in Active Directory.

Mentioned here just in case it saves someone time when trying to figure out why their shiny 64-bit Exchange 2007 is running worse than 32-bit Exchange 2003 ever did.

A Silverlight UI for Windows Mobile 7, backward compatibility in doubt

Note: speculative post; I have no official information on this.

It’s been rumoured for ages; but at this point I would be surprised if the Windows Mobile 7 UI were not built with Silverlight. Consider:

  • Silverlight has to be supported – it should have been in 6.5 – otherwise nobody will take mobile Silverlight seriously
  • WM7 has to have excellent UI design; and WPF/Silverlight is Microsoft’s designer-friendly UI framework
  • Silverlight 4 already supports touch control in the current beta
  • Scaling/Zooming is baked into Silverlight and ideal for a mobile UI
  • If Silverlight is present on the device it would make sense to build the UI with it

If this is right, there are a couple of interesting aspects for developers. It will make Silverlight a more attractive platform in scenarios such as Enterprise roll-outs where the device can be specified.

The awkward question: what about all those existing Windows Mobile apps built either with native code or with the compact framework? Again, there are rumours of lack of backward compatibility. Does that mean that all Windows Mobile 7 apps with a UI will have to be done in Silverlight? That’s what John Biggs says:

WinMo 7 will not run 6.x code. End of story. It is based on Silverlight and .Net. Everything save a few basic programs will not work under WinMo 7. There is no expectation that this will be a “business device” and the focus is currently on games including some XBox Live functionality for gaming and messaging. There will be a Microsoft App store with an easy approval process.

I find this a stretch. I can believe that Microsoft might initially target the consumer market, or have crippled “consumer” versions; but not that it would give up on mobile business apps – we heard at PDC (to the point of tedium) how Microsoft is supporting “three screens and a cloud”, unified for developers by Visual Studio. There’s no reason why Silverlight should not be used for business apps.

What about backward compatibility though? Traditionally Microsoft does a good job of keeping your old stuff running, within reason; possibly too good – Windows is full of compatibility hacks that may be to its detriment overall.

Another point to bear in mind: WM7 needs a browser, and I don’t see Microsoft re-implementing IE in Silverlight.

So I’m sceptical about this too; but with Windows Mobile at such a low ebb could the company decide it has little to lose?

Windows Azure is too expensive for small apps

I’m researching Windows Azure development; and as soon as you check out early feedback one problem jumps out immediately. Azure is prohibitively expensive for small applications.

Here’s a thread that makes the point:

Currently I’m hosting 3 relatively small ASP.net web applications on a VPS. This is costing about $100 per month. I’m considering transitioning to Azure.
Q: Will I need to have 1 azure instance per each ASP.net application? So if I have 3 web apps, then I will need to run 3 instances which costs about $300 per month minimum, correct?

The user is correct. Each application consumes an “instance”, costing from $0.12 per hour, and this cost is incurred whenever the application is available.

Amazon also charges $0.12 per hour for a Windows instance; but the Amazon instance is a virtual machine. You can run as many applications on there as you like, until it chokes.

Google App Engine has a free quota for getting started, and then it is charged according to CPU time. If the app is idle, you don’t pay.

In addition, all these services charge extra for storage and data transfer; but in a low-usage application these are likely to be a small proportion of the total.

Summary: Azure’s problem is that it does not scale down in a way that makes business sense. There is no free quota, unless you count what is bundled with an MSDN subscription.

I realise that it is hard to compare like with like. A cheap Windows plan with a commodity ISP will cost less than either Amazon EC2 or Azure, but it is worth less, because you don’t get a complete VM as with Amazon, or a managed platform as with Azure, or the scalability of either platform. The point though is that by cutting out smaller businesses, and making small apps excessively expensive for customers of any size – even enterprises run small apps – Azure is creating a significant deterrent to adoption and will lose out to its rivals.

Check out the top feature request for Azure right now: Make it less expensive to run my very small service.

Silverlight 4 with COM can do anything – on Windows

At PDC Microsoft played down the significance of adding COM support to Silverlight 4 when run out of the browser and fully trusted (you can also be out of the browser and not fully trusted). The demos were of Office automation, and journalists were told that the feature was there to satisfy the requests of a few Enterprise customers.

Now former Microsoft Silverlight program manager Justin Angel, who has implemented his blog in Silverlight, has spelt out what we all knew, that Silverlight with COM support can do just about anything. His richly-illustrated blog post has code examples for:

  • reading and writing to any file (subject I guess to the permissions of the current user)
  • executing any command or file
  • emulating user input with WShell.SendKeys
  • pinning files to the Windows 7 taskbar
  • reading any registry values
  • adding an application to the Windows startup folder
  • doing text to speech using Windows built-in engine
  • accessing local databases with ODBC
  • automating scanners and cameras
  • using the Windows 7 location API, accessing the full .NET Framework
  • and of course … automating Microsoft Office.

Well, fully trusted means fully trusted; and these are great features for powerful though Windows-only Silverlight applications, though I hope no user installs and trusts one of these applets thinking it is “only Silverlight” and can’t do much harm.

The post also has comments on the lack of any equivalent feature for the Mac in Silverlight 4:       

If Microsoft chooses to not go ahead with Mac support in Silverlight 4 RTM, well, it’s not because they couldn’t

says Angel, suggesting that it would be easy to add AppleScript support. (I had to type that quote – no clipboard support in Silverlight 3).

Of course there is time for Microsoft to unveil such a feature, say at Mix10 in March, though I wouldn’t count on it.

Why F# rather than IronPython in Visual Studio 2010?

Dynamic languages are all the rage; and after JavaScript, Python is perhaps the dynamic language of the day, loved by Google and gaining increasing attention. IronPython, built on .NET, is stable and at version 2.6. Now Visual Studio 2010 turns up with an additional language in the box, but it is not IronPython; rather it is a little-known language out of Microsoft Research called F#.

Now, F# is very interesting and brings real diversity to Visual Studio; it is great for mathematics and for parallel programming. But wouldn’t IronPython have sparked more immediate interest from the .NET community? Judging by this feature request, with 500 votes, it would. It’s is a little embarrassing for Microsoft that the favoured IDE for IronPython work is SharpDevelop. Plenty of IronPython enthusiasts are pressing for Visual Studio support.

Here’s what IronPython MVP Jeff Hardy says:

I think I can safely say that adding full, high-quality support for IronPython to Visual Studio would require at least a couple of man-years of work. The rabbit hole goes pretty deep when you consider all of the functionality that VS offers, not to mention the difficulty of doing IntelliSense well. I estimate they’d have to at least double the IronPython team to get full support into VS11. IronRuby would require the same commitment.

Hardy is hopeful for VS 2012.

I still find it odd. Official Visual Studio integration would do a lot to raise awareness and usage of IronPython; and make Microsoft’s commitment to dynamic languages more visible – though I guess F# supporters will be happy with Microsoft’s priorities here.

The end of Code Access Security in Microsoft .NET

In the early days of .NET I remember being hugely impressed by Code Access Security. It gave administrators total control over what .NET code was permitted to run. It’s true that the configuration tool was a little intimidating, but there were even wizards to adjust .NET security, trust an assembly, or fix an application – great idea, that last one.

image

Well, now the truth is out. Code Access Security was too complex for humans to configure. Buried deep in the documentation for .NET Framework 4.0 you can find Microsoft’s confession, under the heading Security Policy Simplification:

In the .NET Framework 4 Beta 2, the common language runtime (CLR) is moving away from providing security policy for computers. Historically, the .NET Framework has provided code access security (CAS) policy as a mechanism to tightly control and configure the capabilities of managed code. Although CAS policy is powerful, it can be complicated and restrictive. Furthermore, CAS policy does not apply to native applications, so its security guarantees are limited. System administrators should look to operating system-level solutions such as Windows Software Restriction Policies (SRP) as a replacement for CAS policy, because SRP policies provide simple trust mechanisms that apply to both managed and native code. As a security policy solution, SRP is simpler and provides better security guarantees than CAS.

The section below, headed Obsolete Permission Requests, is even more damning of the old system:

Runtime support has been removed for enforcing the Deny, RequestMinimum, RequestOptional, and RequestRefuse permission requests. In general, these requests were not well understood and presented the potential for security vulnerabilities when they were not used properly.

It goes on to explain why they did not work, with explanations like this one for RequestOptional:

RequestOptional was confusing and often used incorrectly with unexpected results. Developers could easily omit permissions from the list without realizing that doing so implicitly refused the omitted permissions.

The new .NET Framework 4.0 no longer enforces these obsolete permissions.

Microsoft is right. As far as I’m aware, few used the .NET Configuration tool, and I cannot even find it in Windows 7, even though Visual Studio and all the versions of the .NET Framework are installed. Developers feared, with justification, that tinkering with the settings would simply cause mysterious exceptions that were hard to resolve.

I recall though that Code Access Security was considered a highly strategic feature when .NET was first released. One of the promises of .NET was that applications would be more secure and malware less prevalent. The fine-grained permissions were a selling point versus Java.

The painful lesson is that simplicity is a feature. Of course some things are inherently complex; but technology succeeds when it simplifies rather than complicates the tasks that we face.

What does Ribbon Hero say about Microsoft Office?

Microsoft has released a tutorial game called Ribbon Hero in its Office Labs. This installs an Office add-in for Word and Excel which watches you work. It has several features. When you perform an action such as Copy and Paste for the first time, it awards you points. You get further points by performing “challenges”, where Ribbon Hero generates a document and sets you a task, like removing duplicates from a table. Finally, you can upload your score to Facebook to share with friends.

I gave it a go. It worked, though on the second challenge I got the right result in what the Ribbon Hero clearly considered to be the wrong way, which was annoying. Hint – use the Ribbon. Should have thought of that.

image

Ribbon Hero is easily impressed, and on a quick look the tasks are mostly basic ones, though I guess they could be expanded if the idea proves popular.

Irritating and patronising, or a brilliant training tool? Well, learning by doing is a good principle so I don’t dismiss it, even if my own reaction is more the former one.

The interesting aspect is what the existence of this tool says about Office. Not everyone gets on with the Ribbon; some miss the old menus. Further, Office is so bloated feature-rich that knowing it in depth is a formidable task. I have often been told that the majority of wish-list requests are for features that already exist.

In consequence, a large part of the challenge for Microsoft’s Office team lies in enabling users to operate the product successfully. This is not a new problem; the notorious “it looks like you’re writing a letter” Office Assistant, or Clippy, was another attempt. The Ribbon itself was also meant to address it, though I am convinced that Microsoft also intended to differentiate itself from the competition and to devise a user interface it had some hope of protecting, if necessary, in the courts.

You could argue that the very existence of Ribbon Hero is an admission of failure. The perfect office suite would not need a game to teach it; it would work so much in accord with what the user expected that it would not be necessary.

I use Office all the time and respect it. That said, eventually Microsoft (or a competitor) will need to remove features rather than adding them, or to retire Office and deliver something better in its place, that achieves the same goals but with less complexity – if such a thing is possible. And if it is going to happen, it will happen on the Web; for some, it already has.