Category Archives: microsoft

RIA (Rich Internet Applications): one day, all applications will be like this

I loved this piece by Robin Bloor on The PC, The Cloud, RIA and the future. My favourite line:

Nowadays very few Mac/PC users have any idea where any program is executing.

And why should they? Users want stuff to just work, after all. Bloor says more clearly than I have managed why RIA is the future of client computing. He emphasises the cost savings of multi-tenancy, and the importance of offline capability; he says the PC will become a caching device. He thinks Google Chrome is significant. So do I. He makes an interesting point about piracy:

All apps will gradually move to RIA as a matter of vendor self interest. (They’d be mad not to, it prevents theft entirely.)

Bloor has said some of this before, of course, and been only half-right. In 1997 he made his remark that

Java is the epicenter of a software earthquake, and the shockwaves are already shaking the foundations of the software industry.

predicting that Java browser-hosted or thin clients would dominate computing; he was wrong about Java’s impact, though perhaps he could have been right if Sun had evolved the Java client runtime to be more like Adobe Flash or Microsoft Silverlight, prior to its recent hurried efforts with JavaFX. I also suspect that Microsoft and Windows have prospered more than Bloor expected in the intervening 12 years. These two things may be connected.

I think Bloor is more than half-right this time round, and that the RIA model with offline capability will grow in importance, making Flash vs Silverlight vs AJAX a key battleground.

Flash library for Facebook, Silverlight library for MySpace

Adobe and Facebook have announced that ActionScript 3, the language of Flash 9 and higher, is now officially supported by FaceBook along with JavaScript and PHP. Information about coding for Facebook with Flash is here, and the library itself is on Google Code.

MySpace has announced the MySpace Silverlight SDK which will be hosted on Microsoft’s CodePlex open source site. The focus of the Microsoft Silverlight work seems to be on wrapping the Open Social API used by MySpace in a C# library.

Note that there is already documentation on creating Flash applications for MySpace. On the Facebook side, here’s an intriguing fact: there’s also an Fb:silverlight tag, though the documentation remarks: “For now this feature has no functionality.” Fb:swf is better supported. David Justice has been working on a Facebook library for Silverlight. It’s clear though that Flash is more widely accepted and supported on both platforms, reflecting its maturity and broader acceptance.

Smart developers can already devise code to access the public APIs of platforms like Facebook and MySpace from a variety of clients; this is about making that easier. It benefits the social networking sites if a wider group of developers has access to its platform, and with the advantages of multimedia features; equally it benefits the plug-in vendors if their runtime works smoothly with the broadest possible range of services. Therefore we should expect more of this type of announcement.

It is interesting to see technology partnerships bridging political divides. Microsoft has a stake in Facebook, for example, while Google has a partnership with MySpace.

Perhaps the most interesting outcome may be more Facebook applications based on AIR, Adobe’s Flash platform for the desktop. The existence of AIR applications like Twhirl and Tweetdeck has significantly boosted Twitter; maybe it is now Facebook’s turn.

Open Cloud Manifesto – but from a closed group?

I’ve read the Open Cloud Manifesto with interest. It’s hard to find much to disagree with; I especially like this point on page 5:

Cloud providers must not use their market position to lock customers into their particular platforms and limit their choice of providers.

Companies like IBM won’t do that? I’m sceptical. Still, it is all very vague; and companies not on the list of supporters have been quick to point out the lack of any effort to achieve cross-industry consensus:

Very recently we were privately shown a copy of the document, warned that it was a secret, and told that it must be signed "as is," without modifications or additional input.  It appears to us that one company, or just a few companies, would prefer to control the evolution of cloud computing, as opposed to reaching a consensus across key stakeholders

says Microsoft’s Steve Martin. Amazon, perhaps the most prominent cloud computing pioneer, is another notable absentee.

It is a general truth that successful incumbents rarely strive for openness; whereas competitors who want to grow their market share frequently demand it.

The manifesto FAQ says:

There are many reasons why companies may not be listed. This moved quickly and some companies may not have been reached or simply didn’t have time to make it through their own internal review process.

A poor excuse. If a few more months would have added Microsoft, Amazon, Google and Salesforce.com to the list, it would have been well worth it and added hugely to its impact.

That said, I’ve found Amazon reluctant to talk about interoperability between clouds, while Salesforce.com makes no secret of its lock-in:

… you are making a platform decision, and our job is to make sure you choose our platform and not another platform, because once they have chosen another platform, getting them off it is usually impossible.

said CEO Marc Benioff when I quizzed him on the subject. I guess it could have taken more than a few months.

Sys-con vs Aral Balkan in Web 2.0 war over intellectual property

Aral Balkan is well-known in the Adobe Flash community as an independent speaker and developer; I first came across him a few years back as a champion of open source Flash. On Friday Balkan was surprised to find that he was apparently a key author at Ulitzer.com, a new online publication from Sys-con media which has been launched with the extravagant claim:

Ulitzer is designed to replace Wikipedia with Its three dimensional live content offerings and dynamic topic structure.

Balkan found that he had an entire sub-domain on Ulitzer devoted to his work, with articles he had written. He had not been consulted about this or offered any payment and was indignant, declaring on Twitter (note the sub-domain has been removed):

WTF is Ulitzer and why am I listed as an author on it? Sys-con, remove me now!!! http://aralbalkan.ulitzer.com

He was not alone; and along with a number of other authors contacted sys-con to have his content removed. Balkan expressed his feelings in a series of tweets using the tag @plagiarismtoday and remarking that:

They’ve never had any respect for authors/speakers. I was once announced as speaking at an event I wasn’t approached about!

Fair enough; and the drama could have ended there, except that Sys-con decided to fight back on its blog.

Sys-Con libels me, calls me a "gay son of a bitch" in article titled "Turkish Fags Who Live in London"

tweeted Balkan in response to an intemperate blog post, letting loose a salvo of tweets expressing his emotions towards the company.

Next up, Sys-con blogged under the heading Turkish Web Designer declares Death on Twitter:

Company representatives contacted the Interpol and Scotland Yard to locate the Turkish Web Designer who is suspected to live in London. Aral Balkan seemed to be organizing a Twitter group who may harm the company representatives according to his Twitter logs.

and going on to recall the attempted assassination of the Pope John Paul II.

All very silly; though in saying that I don’t want to underestimate the impact this kind of outburst can have on individuals – it can be profoundly disturbing. Certainly it is not the way a reputable media company should behave. It strikes me that Sys-con has underestimated the influence of a popular individual armed with Twitter, a blog, and the attention of numerous influential folk at companies including Adobe and Microsoft, which are Sys-con’s advertising clients or potential clients – Sys-con’s site is currently plastered with ads for Microsoft’s Visual Studio.

The episode interests me because at heart it is a battle over intellectual property. One way to look at Ulitzer.com is that it gets free content from others and profits from it – something which Experts Exchange also does, but in that case successfully and openly. That’s worrying for those of us who make a business from selling our content. The episode is causing some bloggers to have second thoughts about the Creative Commons license:

Take a scroll down the right-hand side of this blog and you will see that I have removed the Creative Commons License and reverted to specific copyright protection.

Why? Some rather interesting facts have come to light about a certain publishing house over the last few days. It seems that they are doing nothing short of scraping blogs and recycling content under the auspices of a "publishing portal" labelled with their brand, claiming the original blog authors as their own featured authors as if the content was written specifically for them.

says Robert Turrall.

I doubt Sys-con need fear assassins; but it should not under-estimate the power of a community or the importance of reputation.

Microsoft’s hefty Outlook 2007 patch – a performance fix at last?

I’ve just come across Microsoft’s February 2009 cumulative update for Outlook 2007, thanks to a comment on this blog. This is apparently a pre-release of what is coming in Office 2007 SP2, promised for release between February and April 2009 – yes, that’s round about now.

As for Outlook, if you are keen to get the fixes immediately there are three documents to read. This one describes the update, and you should settle down for a long read. The bit people will likely care about most is this:

Performance and responsiveness are key concerns for all our customers. That is why we made the large performance tuning and optimization changes that are included in Office suite Service Pack 2 (SP2).
Outlook 2007 SP2 delivers performance improvements in four major areas:

  • General Responsiveness
    SP2 reduces I/O disk usage and UI response time.
  • Startup
    SP2 removes long operations from initial startup.
  • Shutdown
    SP2 makes Outlook exit predictably despite pending activities.
  • Folder/View Switch
    SP2 improves view rendering and folder switching.

In other words, the patch promises to fix that annoying “The data file … was not closed properly.” message as well as speeding performance.

In case you are not aware of how much these problems have troubled users, look no further than this blog. This post on Outlook slowness, from November 2006 gets thousands of views every month and has 190 comments; this follow-up from February 2007 is equally popular and has 144 comments. 

So how do you get the patch today? It is an unsupported hotfix, which means you have to request an email link from one of two pages. Here I must admit to being confused. I’ve carefully read the paragraph on update information and it still makes no sense to me. It says that to download the update you need this hotfix (961752); but adds that:

For full Outlook functionality, you can install the Cumulative Update package that is associated with the following Microsoft Knowledge Base article: 967688

You might think then that the first hotfix is included in the second; but curiously the second supposedly cumulative update is much smaller than the first. Both hotfixes are dated February 24th 2009. I took a cautious approach and applied them both, in KB order, and it seemed to work. Alternatively, wait for the complete SP2.

When you run Outlook after applying the patch you get this dialog:

Apparently this is the reason:

Immediately after you install the SP2 update, the first startup of Outlook will not be fast because Outlook must update internal PST data structures that are used in our optimizations. This is a one-time cost, however, and it affects just the initial startup. As soon as the data structures are updated, Outlook can then benefit from the improvements.

Is Outlook 2007 really fixed? We’ll see; but I’m hopeful there will be real improvement. Reading the knowledgebase article, it sounds like Microsoft took the problem seriously. There are hundreds of other bug fixes too, though I guess some of these have been fixed for a while – this is a cumulative update after all.

Vista’s well-documented problems at launch combined with the desperately slow Outlook 2007 was a one-two punch that must have cost Microsoft millions of dollars, and early adopters suffered significantly in terms of lost productivity. Vista is not so bad now; if Outlook is fixed too then all that remains is to hope that Microsoft never again shows such low regard for its customers.

Tim Bray’s contrarian views on Rich Internet Applications

There’s a though-provoking interview with Sun’s Tim Bray over on the InfoQ site. One of his points is that Rich Internet Applications aren’t worth the hype. He says that web applications are generally better than desktop applications, because they enforce simplicity and support a back button, and that users prefer them. He adds:

Over the years since then I have regularly and steadily heard them saying: "We need something that is more immersive, more responsive, more interactive". Every time without exception that somebody said that to me, they have either been a developer or a vendor who wants to sell the technology that is immersive or responsive, or something like that. I have not once in all those years heard an ordinary user say "Oh I wish we go back to before the days of the web when every application was different and idiosyncratic … ".

In further gloomy news for advocates of Adobe Flash, Microsoft Silverlight or Sun’s own JavaFX he adds:

I suspect that the gap in the ecosystem that lies between what you could achieve with Ajax and what you need something like Flash or JavaFX or Silverlight to achieve is not that big enough to be terribly interesting.

I think there is a lot of truth in what he says, and I still regularly see Flash applications or Flash-enabled sites where I wish the developers or designers had not bothered. Nevertheless, I don’t go along with it completely. I’m typing this post in Live Writer, a desktop application, when I could be using the WordPress online editor. The reason is that I much prefer it. It is faster, smoother, and easier to use.

Another example is Twitter clients. I use Twhirl though I may switch to Tweetdeck; both are Flash (AIR) applications running as it happens outside the browser. I’d hate to go back to interacting with Twitter only through web pages.

I agree there there is some convergence going on between what we loosely call Ajax, and the RIA plug-ins; Yahoo Pipes apparently uses the HTML 5 Canvas element, for example, using this Google Code script for IE support. I’m glad there is a choice of RIA platforms, but I don’t see either Flash or Silverlight going away in the forseeable future.

It’s worth recalling that the RIA concept began with the notion that a rich user interface can be more productive and user-friendly than an HTML equivalent. I’ve written a fair amount about the legendary iHotelier Broadmoor Hotel booking application which kind-of kicked it off – and I’ve interviewed the guy who developed it – and it was undoubtedly motivated by the desire to improve usability. As far as I can tell it achieved its goals, which were easy to measure in that online bookings increased.

Multimedia, rich visual controls, Deep Zoom, offline support, pixel-level control of the UI; there’s a lot of stuff in what we currently call RIA that is worthwhile when used appropriately.

Another twist on this is that RIA is enabling a more complete move to web applications, by reducing the number of applications that do not work either in the browser, or as offline-enabled Flash or Silverlight.

Still, Bray is right to imply that RIAs also increase the number of ways developers can get the UI wrong; and that in many cases HTML with a dash of Ajax is a better choice.

I think the RIA space is more significant than Bray suggests; but his comments are nonetheless a useful corrective.

Leaving Las Vegas: Mix09 wrap-up

I’m heading back to London after 3 days at Microsoft’s Mix09 conference in Las Vegas. I took the opportunity to ask a few delegates what they thought. One thing that everyone seemed to love was SketchFlow, a new feature of Expression Blend which enables designers to sketch out design ideas, distribute them for discussion and annotation, collect responses, and export the results to Word to create a report or proposal. It looks like SketchFlow has been influenced by Bill Buxton, who gave a keynote at Mix, since it embodies one of his key ideas, that design ideas should not look too finished as that inhibits the response.

There was also enthusiasm for Silverlight 3.0, with its numerous new features including out-of-browser support. Several Adobe folk were at Mix sizing up the competition; one was Mike Downey who commented:

I’m really impressed by how much Microsoft has gotten done with this whole platform so quickly. They’re catching up really fast. #mix09

It’s true that Silverlight is maturing with remarkable speed, and many of the developers I spoke to were using it or planning to use it.

That said, we are really talking about Microsoft platform people, most from a developer background. I got some insight into what Microsoft is up against chatting to some design students and a lecturer on the bus to the airport. Microsoft sponsored their visit to Mix in an attempt to get them interested. They all use both Macs and Adobe tools; and the lecturer said to me, “we already get the students to install 7 different pieces of software for the courses we run; why should I add two more (meaning, I think, Expression Blend and Visual Studio)? The Mac issue is huge; there is some work being done to support Silverlight design on the Mac, but it is rudimentary in comparison to Blend.

The sessions on ASP.NET MVC were well attended and of the developers I spoke to, those who grasp what it does are delighted with it and intend to use it – several had evolved their own ASP.NET frameworks out of frustration with Web Forms. It appears though that Microsoft didn’t pitch ASP.NET MVC in a way that communicated well with developers not already familiar with it. Some had attended sessions but still didn’t really grok what it does.

Mix day one, with the Buxton/Guthrie keynote, went down better than day two, which had the IE8 launch and Deborah Adler presenting her research and commercial success designing medicine bottles – interesting but over-long in a web conference. IE8, which was a highlight of Mix08, didn’t make much impact here as everyone already knew all about it, and it no longer looks so impressive one year on, even though it is a big advance on IE7.

Windows Azure didn’t appear to make much impression here, though there is relief that SQL Data Services is getting full relational features. I attended a UK round table on Azure with the other UK journalists who made it out here, Jon Honeyball, Simon Bisson and Mary Branscombe. I observed that Azure is widely misunderstood or not understood, that the follow-up since PDC has been poor, and that the web site relies too much on videos and is confusing to navigate; the early access system based on developer tokens is also problematic. I reckon Microsoft needs to do more work on communicating what Azure is about, if it is to win any mindshare from other cloud contenders.

Still, overall this was a good Mix; one delegate said it was the best Microsoft conference he’d ever attended. The wi-fi worked. The conference layout is good for networking and the warm atmosphere was not just a consequence of the desert air.

By the way – Mix10 has been announced, same place, March 15 – 17, 2010.

How to print in Silverlight out of the browser

Trick question, you can’t, or not in any sane way that I’ve discovered. When an app using Microsoft Silverlight is running in the browser you at least have the browser’s print features, but a SLOOB (Silverlight Out of Browser, a new feature in Silverlight 3) does not even have that to fall back on.

This is unfortunate for business applications, though of course many applications are fine without print features.

Workarounds: well, you can press Alt+PrintScreen and paste into Paint…

Another idea is to generate a document in code, then let the user “download” it from your SLOOB to somewhere on the desktop, since finding a document in the app’s isolated storage would be a challenge. The user can then print the document at his or her leisure.

What this illustrates is that even in version 3.0, Silverlight is not altogether mature, especially for this new out-of-browser feature. I’m told that print support is planned in some future version – Silverlight 4.0 I guess. Software is always a waiting game.

Note this post is based on the Silverlight 3.0 beta; it’s just possible something could be added in the final version.

Technorati Tags: ,,

Mono creeping into the mainstream?

For those of you who have not already seen this link on Twitter: I’ve posted a short piece on Mono, the open source implementation of Microsoft .NET. The piece was prompted by my own experience writing a simple .NET application in Visual Studio and deploying it to Linux. Admittedly I anticipated the move by using MySQL rather than SQL Server as the database; but even so, I was impressed by how easy it was – I spent more time recently deploying an application from Visual Studio 2008 to Windows Server 2008, thanks to some issues with SQL Server Express.

Don’t Miguel de Icaza’s comment about scalability and garbage collection, two of the factors that have deterred some from real-world Mono deployments.

Hands on with ASP.Net Membership, SQL Express and Server 2008

Is it worth using the built-in membership framework in your ASP.Net application, or should you roll your own? I’ve been trying it out recently, and I have mixed feelings.

On the plus side, it does get you up and running quickly with user login and role-based permissions, saving time and possibly achieving more reliable results, on the grounds that Microsoft and countless other users should have found and fixed any bugs by now.

One the negative side, there are annoying limitations. The most obvious one is that a user as defined in the framework only has a minimal number of fields, not including information you probably want to store like first and last name. You are meant to fill this gap by using profiles, another ASP.Net feature which lets you store arbitrary name-value pairs in a database as a kind of persistent session. That works, but the way profile properties are stored makes it hard to do things like sorting users by last name. Therefore, you will probably end up managing your own user database and joining it to the membership system with the user ID, at which point you begin to lose some of the benefits.

Some of the supplied controls, like the CreateUserWizard, seem rough-and-ready too.

Still, the real fun began when I tried to deploy my demo app to Server 2008 and SQL Server Express 2008. By the way, make sure you install .NET Framework 3.5 SP1 and Windows Installer 4.5 before installing the latest SQL Server Express, otherwise the setup spends ages unpacking its files and then exits with a brief message. I got there eventually, copied my application across, and optimistically tried to run it.

When you debug a web application in Visual Studio, it defaults to a SQL Express database in the App_Data folder within the web site, attached on demand. In theory, that should make it easy to deploy to another machine with SQL Express installed: just copy it across, right? There must be a way of getting this to  work, but it seems a lot of people have problems. I got the message:

Login failed for user ‘NT AUTHORITY\NETWORK SERVICE’.

This makes sense, insofar as ASP.NET runs as this user. I temporarily attached the database and added the login, to be rewarded with a different and more perplexing error:

Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance.

A quick Google shows that many users have suffered from these errors, and that a large number of remedies have been proposed. I abandoned the idea of attaching the database on demand and set up a new database, made ready with Aspnet_regsql. I still got one or other of these errors.

Eventually I realised that my application was using more than one connection string. The problem is that the membership framework uses three different "providers", one for membership, one for roles, and one for profiles. By default in IIS 7.0, these all use an attach-on-demand connection string, defined as LocalSqlServer, and inherited from machine.config buried deep within your Microsoft .NET Framework system folder. In order to prevent ASP.Net membership from using this, you have to override all three providers in the web.config for your application. There’s an example in this article from ISP MaximumASP. I wish I’d come across it sooner; but my demo works fine now.