Category Archives: internet

Internet Explorer 8, FireFox 3 pop-under failure

I attended a UK briefing for Internet Explorer 8 last night. An interesting product which I’ll be writing plenty more about – you can get it here. Installed smoothly on my Virtual Box Vista.

At the event I mentioned to someone from the IE team that it is annoying how pop-ups still somehow get round the pop-up blocker. The guy seemed mildly surprised and asked me to send him any urls I found. I didn’t have to wait long. If you want obsessive detail on the recordings of Elvis Presley, a great site to visit is elvisrecordings.com [warning: pop-ups and pop-unders]. I can’t recommend it though, because there are some annoying scripts there. I thought this would make a good test for IE8 Beta 2. The home page has some stuff that gets blocked, and it has some Java which doesn’t run because I haven’t installed it yet, but if I click the link for the Sun recordings (arguably the best of Elvis) I get this:

The only extra step I took to get this screen was to click the pop-under in the task bar so it came to the front. Lucky me, I’m a “possible Audi A3 winner”.

Just to be fair, I tried it in FireFox 3. Same result:

Maybe it is just too difficult to block this stuff successfully without breaking pages.

The other question: why do otherwise useful sites pollute themselves with this junk? Is the money really that good? For what it’s worth, the culprit seems to be a “free” web stats provider called Motigo. Avoid.

I’ll forward the url to my contact.

Apple rapped by ad standards body for not supporting Flash and Java

The UK’s Advertising Standards Authority has upheld a complaint (from all of two viewers) against an Apple ad which stated that “all the parts of the internet are on the iPhone”.

In its adjudication, the ASA stated:

Upheld
The ASA noted that Java and Flash proprietary software was not enabled on the iPhone and understood that users would therefore be unable to access certain features on some websites or websites that relied solely on Flash or Java.  We noted Apples argument that the ad was about site availability rather than technical detail, but considered that the claims "You’ll never know which part of the internet you’ll need" and "all parts of the internet are on the iPhone" implied users would be able to access all websites and see them in their entirety.  We considered that, because the ad had not explained the limitations, viewers were likely to expect to be able to see all the content on a website normally accessible through a PC rather than just having the ability to reach the website.  We concluded that the ad gave a misleading impression of the internet capabilities of the iPhone.

Nobody comes out of this with any credit. Apple’s point, when challenged, was this:

Apple said the aim of the ad was to highlight the benefit of the iPhone in being able to offer availability to all internet websites, in contrast to other handsets which offered access to WAP versions or sites selected by service providers.

Somewhat misleading I’d say. All the smartphones I’ve seen recently support HTML as well as WAP. Still, Safari on the iPhone has a larger screen and more complete standards support than other mobile browsers, and on these points Apple is on firmer ground.

What about Flash and Java? Apple apparently said:

They said they could not ensure compatibility with every third party technology in the marketplace and, in order to create the best customer experience, had created their platform on open standards.  They said Java and Flash were examples of proprietary software they had chosen not to enable on the iPhone.

A reasonable point, surely. But the ASA says:

…viewers were likely to expect to be able to see all the content on a website normally accessible through a PC…

Naive viewers, perhaps. Most would figure out at least that a much smaller screen will introduce limitations. And why stop at Flash and Java? What about ActiveX, Silverlight, Real Player, or any site that needs a plug-in to operate correctly? Of course the ASA doesn’t say that Apple should enable all that stuff. It merely says that the ad implies it. That strikes me as a fragile argument. I’d back Apple here.

Nevertheless, it is interesting to see this pressure on Apple to support proprietary plug-ins. I wonder who complained?

Technorati tags: , , ,

Parts of EcmaScript 4 deemed unsound for the Web

This was the conclusion of an EcmaScript meeting in Oslo last month. Specifically, as Brendan Eich explains, three features – packages, namespaces and early binding – were considered too heavyweight unsuitable for a browser scripting language. Here is Eich’s “Executive summary”:

The committee has resolved in favor of these tasks and conclusions:

1. Focus work on ES3.1 with full collaboration of all parties, and target two interoperable implementations by early next year.

2. Collaborate on the next step beyond ES3.1, which will include syntactic extensions but which will be more modest than ES4 in both semantic and syntactic innovation.

3. Some ES4 proposals have been deemed unsound for the Web, and are off the table for good: packages, namespaces and early binding. This conclusion is key to Harmony.

4. Other goals and ideas from ES4 are being rephrased to keep consensus in the committee; these include a notion of classes based on existing ES3 concepts combined with proposed ES3.1 extensions.

This means that the evolution of JavaScript is now on a new path, focused for now on a more modest enhancement to the language called EcmaScript 3.1.

Given how loudly Eich protested about EcmaScript 3.1 last October, it is a surprising turn of events. Was Eich convinced by the arguments of Microsoft and Yahoo in support of a more lightweight JavaScript?

What this means is that JavaScript 2.0 won’t happen as previously envisaged. John Resig:

… you can forget a lot of what you learned about ECMAScript 4, previously. Many of the complicated concepts contained in the language have been tossed. Instead there is a considerable amount of effort going in to making sure that new features will be easily duplicable through other means.

Eich and Resig are keen to stress that JavaScript will still be a highly capable language. Still, the obvious conclusion is that this will be good for plug-ins which support more powerful languages: Adobe Flash, Microsoft Silverlight, Sun Java or Java/FX. Personally I’m disappointed.

It is also presenting Adobe with a tricky problem, as it implemented much of an earlier specification for EcmaScript 4 in ActionScript 3. Rather than being a standard language, as Adobe had planned, it looks like this will now be more of an Adobe language. I doubt this will have much practical impact on developers.

PS Brendan Eich has commented below.

Silverlight 2 threading issues, Quickstarts not working

I’ve been working on a Silverlight tutorial involving reading an RSS feed. Silverlight has a SyndicationFeed class which is meant to make this easy – as Microsoft’s Scott Barnes enthuses here.

It is handy, but I discovered that the Quickstart Barnes refers to does not work in Silverlight 2 Beta 2. The Quickstart section on Silverlight.net needs some work. Even if you get to this Quickstart via the link for Silverlight 2 Beta 2 examples on this page, it is soon apparent that it is actually for Silverlight 2 Beta 1. Click the Run It button and you’ll see that it asks for the older runtime.

The code doesn’t work in Beta 2 either; and as so often with thread-y stuff, it’s not immediately clear what’s going wrong. I got a blank page and the following message in the Debug output window in Visual Studio:

A first chance exception of type ‘System.UnauthorizedAccessException’ occurred in mscorlib.dll

In situations like this I recommend breaking on all CLR exceptions (Debug – Exceptions – check the Thrown box for Common Language Runtime exceptions in Visual Studio). Run again; and this time Visual Studio stops on the line which updates a Silverlight TextBlock:

feedcontent.Text += "* " + item.Title.Text + Environment.NewLine

with the message “Invalid cross-thread access”:

Rooting about a bit, I found this post from Karen Corby on changes in Silverlight 2 Beta 2:

HttpWebRequest’s delegates are called on a new non-UI thread.

  • Delegates were previously always called on the UI thread.
  • You must invoke back on to the UI thread if the data you’re retrieving will be consumed by a UI element.
  • For an example, see the updated networking post series (part one).

What this means is that you have two doses of asynchronous coding to think about if you use HttpWebRequest. First, the request itself; and second, in the code you write for the response handler if it needs to update the UI – which in most cases it will.

The example referenced by Corby shows a neat solution using a SynchronizationContext object, or you can use the Dispatcher class as explained by Wilco Bauwer here – he also draws attention to locking issues. See also Shawn Wildermuth’s post though note that CheckAccess is available despite what is said here.

This adds a significant dose of complexity to Silverlight coding. I’m not sure if any of this will change again in the final release.

I also noticed that VB coders are not well served by the Silverlight examples out there, which are overwhelmingly C#. Looks like this is the language of choice if you want an easy life.

Is Silverlight evil?

That’s really the question John Markoff is asking in this New York Times piece about the way the NBC Olympics streaming video is putting Microsoft’s browser plug-in on the map. Someone has even popped up to state that this is another go at technology monopoly:

“They’re still playing the same games,” said Michael R. Nelson, professor of Internet studies at Georgetown University. “It’s a way to lock up the content, and it’s not enabling as much innovation as we would like to see.”

It seems to me that Microsoft cannot win here. If the NBC servers were stuttering then it would prove that Silverlight isn’t up to the job and can’t compete. If Microsoft were not doing Silverlight, it would confirm that the company doesn’t grok the Internet and is still stuck in the world of Windows and Office.

As it is, the NBC Olympics streaming video seems to be working pretty well, judging by reports like this from CNET:

The picture quality is quite spectacular. The mist is so real it could not possibly have been photoshopped in there by the Chinese authorities to provide some extra menacing ambience. This makes YouTube seem like student video.

From a PR perspective, accusations of being evil is probably the best Microsoft can hope for.

But is Silverlight evil? I spoke to Dean Hachamovitch, the IE general manager, at the Mix conference in the Spring. My impression was that Microsoft has back-pedaled on improving browser-hosted JavaScript because it would rather see developers target Silverlight. There is some substance to the idea that Microsoft is promoting its own technology at the expense of open standards.

Still, without Silverlight would we all be using the OGG Theora format and the HTML 5 Video tag? In reality, the alternative is Adobe Flash; and the competition is if anything energising Adobe, which is not a bad thing.

Even if Silverlight achieves its aims, and becomes a widely used cross-platform runtime for web applications, I doubt we will see anything similar to the Windows/Office dominance of the nineties. Microsoft’s investment in Silverlight is conceding the point: that the future belongs to cross-platform clients, zero deployment, and both data and applications in the cloud.

According to Markoff’s piece, Adobe’s Kevin Lynch questions Microsoft’s cross-platform commitment, mentioning:

Microsoft’s decision to reserve certain features like 3-D effects and downloading for the company’s Windows Vista operating system.

I think this is a reference to the full WPF (Windows Presentation Foundation), which only runs on Vista and XP. I’m not sure what the “downloading” bit means; but Lynch is right, in that the relationship between WPF and Silverlight must be a subject of intense debate within Microsoft. Cross-platform .NET is a huge step to take, and there must be internal voices questioning why on earth the company is helping its customers to deploy applications that are not tied to the Windows client.

Still, I think that bridge has now been crossed. Nobody wants to build Internet applications that only work on Windows; it isn’t an option. Therefore I doubt that Microsoft will hobble Silverlight in order to promote WPF; doing so would only help competitors. I may be proved wrong; it’s smart of Lynch to draw attention to Microsoft’s conflicted interests.

Silverlight is great work, and only a little bit evil.

Backup: a gap in Google’s online services

Slashdot has a discussion on Google and backup. The question:

I am doing almost all of my computing in the cloud. Google Reader, Calender, Email, Docs and Notes have become my tools of choice … is there a one-touch solution that will take all my data from the various online apps and archive it on my home server?

The answer appears to be “No” – that is, there are ways of doing this with scripts, offline email clients and so on, but there is no one-touch solution.

It strikes me as a valid concern. It is not just a matter of trusting Google not to zap your data accidentally – though Google accounts have been known to disappear. Another scenario is that someone guesses your password, or grabs it via keystroke capture, and deletes stuff on your behalf. It just isn’t sensible to have only one copy of data that matters to you.

Arguably this is one advantage of synchronization services like Live Mesh, but these have a flaw too. Synchronization will happily copy a corrupt document over all your good copies. That’s why I like version control systems – they keep a history.

Even in the admin features of the premier edition, aimed at businesses, I don’t see backup covered.

It can’t be that hard to fix this with something like, say, differential backups from Google to Amazon S3. It would be unlucky to fall out with both companies simultaneously.

Technorati tags: , , ,

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.

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: , , , , ,