All posts by onlyconnect

Microsoft Silverlight: 10 reasons to love it, 10 reasons to hate it

A year or so a go I wrote a post called Adobe AIR: 10 reasons to love it, 10 reasons to hate it. Here’s the same kind of list for Microsoft’s Silverlight, based on the forthcoming Silverlight 2.0 rather than the current version. The items are not in any kind of order; they also reflect my interest in application development rather than design. It is not a definitive list, so there are many more points you could make – by all means comment – and it will be interesting to have another look a year from now when the real thing has been out for a while.

This Silverlight developer chart is available in full on Brad Abrams’ blog here, or in Joe Stegman’s Deep Zoom version here.

The pros…

1. The Silverlight plug-in means developers can target a single, consistent runtime for browser-based applications, rather than dealing with the complexity of multiple browsers in different versions. You also get video and multimedia effects that are hard or impossible with pure HTML and JavaScript; though Adobe’s Flash has the same advantages.

2. Execute .NET code without deploying the .NET runtime. Of course, the Silverlight plug-in does include a cut-down .NET runtime, but instead of dealing with a large download and the complexities of the Windows installer, the user has a small download of about 4MB, all handled within the browser. In my experience so far, installation is smooth and easy.

3. Performance is promising. Silverlight comes out well in this prime number calculator, thanks no doubt to JIT compilation to native code, though it may not compare so well for rendering graphics.

4. Support for Mono (Moonlight) means there will be an official open source implementation of Silverlight, mitigating the proprietary aspect.

5. Silverlight interprets XAML directly, whereas Adobe’s XML GUI language, MXML, gets converted to SWF at compile time. In fact, XAML pages are included as resources in the compiled .XAP binary used for deploying Silverlight applications. A .XAP file is just a ZIP with a different extension. This also means that search engines can potentially index text within a Silverlight application, just as they can with Flash.

6. Third-party component vendors are already well on with Silverlight add-ons. For example, Infragistics, ComponentOne and DevExpress.

7. Take your .NET code cross-platform. With Macs popping up everywhere, the ability to migrate VB or C# code to a cross-platform, browser-based Silverlight client will be increasingly useful. Clearly this only applies to existing .NET developers: I guess this is the main market for Silverlight, but it is a large one. The same applies to the next point:

8. Uses Visual Studio. Microsoft’s IDE is a mature and well-liked development environment; and since it is also the tool for ASP.NET, you can use it for server-side code as well as for the Silverlight client. For those who don’t get on with Visual Studio, the Silverlight SDK also supports command-line compilation.

9. Choose your language. Support for multiple languages has been part of .NET since its beginning, and having the .NET runtime in Silverlight 2.0 means you can code your client-side logic in C#, Visual Basic, or thanks to the DLR (Dynamic Language Runtime) Iron Ruby or Iron Python.

10. Isolated storage gives Silverlight applications local file access, but only in a protected location specific to the application, providing a relatively secure way to get this benefit.

The cons…

1. If Apple won’t even allow Flash on the iPhone, what chance is there for Silverlight?

2. Silverlight is late to the game. Flash is mature, well trusted and ubiquitous; Silverlight only comes out of beta in the Autumn (we hope) in the version we care about – the one that includes the .NET runtime – and will still lack support on mobile devices, even Windows Mobile, though this is promised at some unspecified later date.

3. The design tools are Expression Blend and Expression Design – but who uses them? The design world uses Adobe PhotoShop.

4. While having solution compatibility between Expression Blend and Visual Studio sounds good, it’s actually a hassle having to use two separate tools, especially when there are niggling incompatibilities, as in the current beta.

5. No support for the popular H.264 video codec. Instead hi-def video for Silverlight must be in VC-1, which is less common.

6. It’s another effort to promote proprietary technology rather than open standards.

7. Yes Linux will be supported via Moonlight, but when? It seems likely that the Linux implementation will always lag behind the Windows and Mac releases.

8. Silverlight supports SOAP web services, or REST provided you don’t use PUT or DELETE, but doesn’t have an optimized binary protocol like Adobe’s AMF (ActionScript Message Format), which likely means slower performance in some scenarios.

9. Silverlight is a browser-only solution, whereas Flash can be deployed for the desktop using AIR (Adobe Integrated Runtime). Having said that, yes I have seen this.

10. You have to develop on Windows. This is particularly a problem for the Expression design tools, since designers have a disproportionately high number of Macs.

SQL Server 2008 is done

Microsoft has announced that SQL Server 2008 is released to manufacturing – ie. the bits are done, even if you can’t buy it yet. MSDN subscribers can download it now.

This is the product that was “launched” back in February; it’s been a long delay but I get the impression that the SQL team likes to wait until its release really is ready.

SQL Server 2008 is more like a suite of products than a single product now. It has a large range of editions from Compact to Enterprise, and product areas like Analysis Services and Reporting Services are distinct from the core engine.

The pieces that interest me most are the spatial data types, sparse columns, FILESTREAM data type, and the various object-relational layers including LINQ, Entity Framework, ADO.NET Data Services, and the ongoing work with SQL Server Data Services (which is far from done yet).

DBAs will likely have a very different view of what is important, as will Business Intelligence specialists.

SQL Server has prospered by being cheaper than than the likes of Oracle and DB2, and by integrating smoothly with Windows and Active Directory. I wonder if it will feel pressure from even more cost-effective open source offerings like MySQL, as they become more Enterprise-ready?

Will anyone untangle the nofollow mess?

I get frequent emails asking to place advertising on itwriting.com. My reply is that I’m happy to take appropriate ads, provided that they are clearly marked as such, non-intrusive, and that links are either inserted by script or tagged “nofollow” in accordance with Google’s guidelines. Usually I don’t hear back from the advertiser.

The problem is that these advertisers are not primarily interested in having readers of this site click their ad or see their brand. Their real concern is search engine optimization – improving the rank of a web site in Google searches by adding to the number of incoming links. Counting incoming links to determine PageRank was Google’s original secret sauce, by which it determines which pages are of the highest quality, though it is probably less important now precisely because the principle is so well known. Advertising like this is often called paid links.

Although it upsets Google, there is nothing illicit about accepting paid links. Advertising is the commercial engine that drives much of the web. It is risky for the host site, since Google might downgrade its ranking because of the paid links. In other words, the advertiser is proposing a trade – buying more PageRank for its own sites, at the expense of some of yours.

The other risk, which is the reality that Google’s algorithms are attempting to simulate, is that a site filled with spammy links is less attractive to readers and therefore likely to become less popular. After a while the advertising will dry up too.

Balancing the demands of advertisers and editorial is nothing new. My main complaint about these advertising offers is that they are not transparent about their intentions.

Even so, the whole SEO/Paid links/Google dance is a horrible mess. One of the problems is that the Web has de-facto authority. People search the web for information, and believe the top-ranking results as the answer to their question. Another real-world issue is that countless businesses now depend on Google for their success and survival. I often hear from organizations which are desperate to improve their search ranking and vulnerable to SEO consultants whose services are often not good value.

All this makes the nofollow idea good, in that it is tackling the right problem; but unfortunately it is not working. We are seeing the nofollow tag frequently applied to links that are “good”, and frequently not applied to links that are “bad”. For example, links in comments to a WordPress blog are automatically tagged nofollow; yet some of the best-informed advice on the web is found in comments to WordPress blogs. Links in Wikipedia are tagged nofollow; yet an external link that survives in an important Wikipedia article is a high recommendation of quality.

At the same time, both the spammers and the SEO folk are having few problems placing paid links sans nofollow all over the web.

It would not surprise me if the secret search ranking algorithms used by Google and others actually accord more significance to links tagged nofollow than is acknowledged. It would actually make sense for the search engines to try and distinguish between good and bad links regardless of nofollow. In other words, the nofollow tag has become almost pointless. That said, I have no idea whether, if Google declared the tag obsolete, the net spamminess of the web would improve or deteriorate.

I don’t know how to fix the problem; though I suspect that Google as the Web’s current gatekeeper is the entity with most power to improve it. Another thing that would help: more focus on content and less focus on SEO.

Technorati tags: , , , , ,

Office 2007 ODF support: my guess is it will be good

More details are emerging about the ODF converter which will be in Office 2007 SP2, set for release next year. Doug Mahugh’s post outlines the architecture and explains how the converter will deal with compatibility issues.

I want to highlight the section that describes how the converter is implemented:

Word, Excel and PowerPoint have a Model-View-Controller design. The in-memory representation of the document, or Model, is designed to facilitate document revision and display functions and includes concepts which are never saved to the file, such as the insertion point and the selection.

The persistence code converts this in-memory representation to and from some sort of the disk file based representation. Office 2007 already had code to support a number of angle-brackety persistence formats including HTML and OOXML. When we built in support for ODF, we added it in that area of our code.

That suggests deep integration, and a converter that has good chances of working smoothly and quickly – unlike the clunky open source translator which Microsoft sponsored, which is based on XSLT.

Users also have the option of Sun’s plug-in, which is based on Open Office code.

It seems that Microsoft is aiming to make Office 2007 a good ODF citizen. Will that impede adoption of Microsoft’s own OOXML format? Well, I guess OOXML will still be the default, and will have the best support for Office-specific features. Another thing to bear in mind is that OOXML was designed with Office specifically in mind. Potentially troublesome creatures like very large Excel spreadsheets may well perform best with OOXML. Another point is that Microsoft’s server products, where they exploit XML documents, are likely to work best with OOXML. In other words, there are likely to be advantages in OOXML within enterprises that use Microsoft’s platform.

Still, strong support for ODF by default in Office will be a significant boost for the OASIS format. Microsoft is protecting its very profitable Office sales against the risk of being dropped for lack of ODF compatibility.

Technorati tags: , , , ,

CNN Daily Top 10 spam email shows failure of user education

Virus propagation follows an evolutionary pattern – the ones we see are the survivors, that have the right balance of technical ingenuity and social psychology to get themselves installed. I therefore conclude that lots of people have clicked Continue on sight of the following dialog, which you get if you follow a link on the CNN Daily Top 10 spam email doing the rounds right now (I have had it over 20 times):

In FireFox it is even cruder – just a link to a viral executable, click OK or cancel.

What gets me is that this is such an obvious virus. Here’s several clues:

  • The URL for the page is not cnn.com
  • The supposed Flash placeholder image is obviously faked. It says “Flash Player 0” is installed
  • The English is poor
  • This doesn’t look anything like IE’s normal behaviour when installing a new ActiveX control (it isn’t of course, it is just asking you to download an EXE)
  • Image missing on the dialog
  • The dialog doesn’t even mention Flash
  • I’ve not actually checked, but I’d be astonished if the executable is signed, so the user will have to pass further warnings unless they are running an ancient version of Windows
  • Of course I already have Flash 9 installed

I also presume from the success of the virus that either lots of people don’t have current a/v software installed, or it didn’t work because it was not updated in time.

Why is this virus succeeding? I imagine because it is trading on two respected brands – CNN, and the fact that most people are happy to install Flash and know it is OK to do so (the real one, that is).

Shows what a tough job the security guys have. You have to assume people will click OK to almost anything.

Innovative multi-user Windows XP system may breach Microsoft license

I was asked to review an unusual system which lets multiple users run concurrent sessions on Windows XP. MiniFrame’s SoftXPand lets up to 8 users plug mice, keyboards and displays directly into a Windows PC, each with their own desktop. It makes a bit of a tangle of USB expanders and cables, but it’s wildly efficient, and unlike conventional thin clients it enables applications to use hardware accelerated graphics. Schools which thought they only had the budget for a single PC are able to support six users. News like this travels fast, and it has apparently been adopted by 20% of primary schools in Derbyshire, where the main UK distributor is based. My review for IT Pro is here.

But surely the EULA for Windows XP doesn’t allow that kind of use? By default XP won’t allow more than one session, though there are registry hacks which enable it. I asked Microsoft, which gave me a comment from Michala Wardell, head of licensing and anti-piracy, Microsoft UK:

According to Microsoft’s license agreement, each added work station represents a new way of interacting with the software. As such, using hardware and software to effectively extend a single license to cover multiple users is a clear violation of this agreement. We urge customers to stay clear of this as they run the risk of non-compliance.

MiniFrame’s CEO Eli Segal says this is all about new licensing models:

MiniFrame has not been approached by either Michala Wardell or by any other Microsoft representative. We are therefore obviously not working with them on any licensing issues, as being claimed by Michala Wardell. MiniFrame has a very clear third party licensing policy: each EULA (End User Licensing Agreement) of any third party software provider should be respected by users, and with no exception to Microsoft. Virtualization has become mainstream, and I’m sure that licensing issues are being considered by all industry players, as well as by Microsoft, trying to shape a new model of licensing (EULA).

I’m no lawyer so I’m just passing the comments on – they are also quoted in full in the review – though when I saw the system I was surprised that it used Windows XP and not Windows Server. Further, it is not really virtualization, it is much more like running multiple remote desktop sessions, but without the remote bit. MiniFrame even has an article explaining why SoftXPand is not a virtual machine.

Still, I hope Microsoft doesn’t try and squash it out of existence. In the right context the system saves power and long-term there is less hardware to scrap, both issues of increasing importance. This is not the moment for Microsoft to insist that an organization replaces one PC with six, or to disappoint all those primary school kids.

It’s not just free software that has poor usability

Jack Schofield at The Guardian links to Matthew Paul Thomas’ post on Why Free Software has poor usability.

For most of his points you could drop the free from his title.

Thomas makes the point about most programmers not being good designers:

Some programmers are also great designers, but most aren’t. Programming and human interface design are separate skills, and people good at both are rare. So it’s important for software to have dedicated designers.

True; but software can be over-designed too – I guess this happens more in the commercial world. Sometimes usability is sacrificed for the sake of good looks.

Mega-budgets don’t always help. How did Office 2007 get through its usability testing, when there is no indication that you have to click on the “Office button” to access essential features like New, Save As and Print? What about Outlook 2007, with one of the world’s most obscure and difficult UIs? Opening another user’s mailbox – how many clicks is that, and how would you possibly find it without being told?

Good code is hard; good design is harder.