Category Archives: web authoring

Microsoft brings Silverlight – not Mono – to Linux via Intel

Yesterday I speculated about what was meant by the inclusion of Silverlight among supported runtimes for Intel’s Moblin Linux, which is being used on netbooks using the Atom processor. I had assumed it was some new development of Moonlight, Mono’s Silverlight implementation, but apparently this is not the case. Here’s what Microsoft’s Brian Goldfarb, director of the Developer Platform Group at Microsoft, said:

Microsoft and Intel announced today that the two companies have agreed to work together to bring support for Silverlight 3 to Intel’s Atom-based Mobile Internet Devices (MID). These Atom-based devices run on Windows and Moblin, an open source, Linux-based operating system targeted at Atom-based devices. In order to help bring Silverlight content to these devices, Microsoft has provided Intel with Silverlight source code and test suites, and Intel will provide Microsoft with an optimized version of Silverlight for Moblin devices that Microsoft can then redistribute to OEMs.

There are a couple of curious aspects to this. One is why Microsoft would not simply feed optimisations into the Moonlight project, which would benefit Silverlight/Moonlight on all Linux systems. Goldfarb did add:

The Silverlight for Moblin announcement is independent from Microsoft’s work with Novell on Moonlight. The Intel/Moblin effort is specifically about building great out-of-box experiences for consumers on Atom-based devices. Microsoft’s efforts with Novell remain critical as they build an open-source, compatible, and broadly available Silverlight solution for Linux.

Another is whether Intel/Microsoft are devising some way for Silverlight to run as a desktop application, rather than just as a browser plug-in. I’m hopping to clarify these points soon.

Intel has a press release here.

Adobe’s new social platform for ads and apps

Adobe has announced the distribution side of its Flash Platform Services. The press release heading is quite a mouthful:

New Distribution Service Provides Web Application Sharing, Promotion, Measuring and Monetization across Desktops and Mobile Platforms

and it is hard to take in at a glance exactly what the services are offering. Here’s my quick take.

A good place to start is with this article on Gigya’s site, Gigya being Adobe’s partner for this. Here you will see Gigya’s Wildfire Flash widget; it’s a working example so you can try it out on the site – the illustration below is only a bitmap though.

This widget is what Adobe calls a Share Menu in its Distribution service overview. The idea is that you as the publisher display a widget like this alongside or within your new or existing Flash applications – perhaps customized to hide the ugly embed code. Your user comes along, sees the cool application, and wants to embed the application on their own blog, Facebook page, or even on the desktop. They click one of the buttons and the widget automates as far as possible the creation of a new post on the selected service which includes the embed code for your widget or application.

Along with services like Facebook, MySpace and WordPress listed above, Wildfire supports desktop widgets such as the Vista sidebar and bookmarks on services such as FriendFeed, Digg and Twitter. In the case of a mobile app, the button would generate an SMS message that would link to the application install.

I’m not a good candidate for this kind of widget as I try to keep logged out of social services. As an experiment though, I logged into Live Spaces. I clicked the Live Spaces button which prompted me for a post title. Clicking OK then pre-populated a new post to my Spaces blog; one further click would have confirmed the post.

Creating a Share Menu

The piece that confused me at first is that the Share Menu can be either external to the application you are distributing or embedded within it. Embedding it within the app is the most powerful option, since the application can then have a “get this app” button. This allows other users to display the Share Menu and install the app for themselves. The goal, of course, is viral distribution, where apps can become popular quickly via social networks, as happened to great effect in the early days of Facebook.

You can add a share menu to your application in Flash. I installed Adobe’s extension and found a new Share Menu component in Flash CS4.

However you choose to implement it, the Share Menu always includes a partner ID which identifies the application publisher and a Code ID which identifies the application. To get these you have to sign up for Adobe’s Distribution service.

You can also add an external Share Menu using a web page editor such as Dreamweaver. This creates a generic widget customised through script arguments.

Adobe’s advertising network

So far so good, but how do you kick-start the viral distribution of your app? This is where Adobe’s ad network comes in. There are several aspects to this:

– You can pay to have your application promoted through Adobe’s network. One mechanism for this is that when a user installs some other shared application, they are prompted to install yours as well.

– You can monetize your applications by hosting a shared install, the other side of the above.

– You can embed other advertising within your application and get paid for it

These processes are managed using Distribution Manager, an AIR application. You can use this both as an advertiser or as a publisher; indeed, you may well have both roles.

Making an application shareable is free, but if you want to promote it the cost is from $1 per install; if you host ads you can expect around $5.00 per thousand views (CPM).

The Distribution Manager also lets you track application install and usage.

More Flash Platform Services

There’s more to come; as Ryan Stewart explains. The Flash Collaboration Service is already in beta, and provides everything for sharing and communication including voice over IP, webcam, file sharing, chat, data exchange and more. There’s also a social piece which will integrate with social networks like Facebook and MySpace – given the link with Gigya, maybe a variant of the Gigya Socialize API, which “aggregates authentication and social APIs from Facebook Connect, MySpace ID, Twitter, Google, Yahoo, and AOL”?

Finally, a brief comment. I think Adobe is serious about this as one way of expanding its business model beyond tools, which I believe it has to do. It strikes me as an interesting platform, even though personally I am averse to widget proliferation and wary of the privacy implications of highly tracked applications. Serge Jespers remarks about his MAX widget:

The service also allows you to monetize your application and also track just about everything a user does with the app

perhaps not realising what a red light that is to some of us. Note however that all apps in Adobe’s distribution service are subject to approval.

Overall it’s an interesting platform to watch. In a nutshell: applications that install themselves (almost) and with built-in cross-promotion – but not quite (we hope) actual viruses.

.

The desktop versus web application debate

I posted a piece entitled Desktop applications are dead which attracted the following comment:

Web apps have plenty of cons too. You seem to only be looking to the Pros.

There’s something in it; though the article is a little more nuanced than its title. There’s also another debate to be had around the question of what a web application really is. If thousands of lines of JavaScript are executing on the client, is it a web app? If it is running in Flash or Silverlight is it a web app? If it is running out of browser (Adobe AIR, Silverlight, JavaFX) has it crossed the border to become a desktop app? This last case is particularly interesting, since although something like AIR should probably be categorised as desktop, its programming model is normally that of a web application with an offline cache.

The semantic discussion can distract from the real issues. The ascendancy of web applications has a lot to teach software developers. The enforced simplicity, even crudeness, in the user interface of early web applications brought some surprising benefits: users generally liked the minimalist approach and ease of navigation. The page model, intended for documents, turns out to work for applications as well.

Another big lesson: users value zero-install extremely highly. The routine of go to the web page – run the app is easy to understand. Some find it easier than finding an application shortcut in the Windows Start menu, and that is after the potentially painful business of running setup.

Still, I am slipping into reiterating the advantages of web apps. What about their cons? What about the pros of desktop applications?

I still use desktop applications a great deal: Microsoft Office, Live Writer, Foobar, Visual Studio, Eclipse, all the things I listed in 10 Mac alternatives to Windows utilities. Doesn’t that prove that desktop applications are still important?

It does; but there is an important qualification. None of these are line of business applications of the type which occupy so much of the time of corporate software developers and contractors.

The real point: if there is a discussion about whether a particular project should be implemented as a desktop or web application, it is not the web application advocates who need to make their case. Rather, it is the desktop advocates who need to show the particular reasons (which may be good ones) why only a traditional local install will do.

It is also important to follow the curve on the graph. The list of things that can only be done by desktop applications gets shorter with every upgrade to the web platform – whether you think of that as HTML/AJAX, Adobe Flash, Microsoft Silverlight, or [insert your favourite web technology].

Ten years ago, a web version of Photoshop seemed an unlikely prospect. Today, here it is. Office and email is going the same way, even if it is not quite ready for all of us; Microsoft will have to accept that or lose its business.

I don’t follow Rich Internet Applications with such interest because they are cool, but because they are the future of the client – and increasingly the present as well.

Amazon’s sneakernet for the cloud

I’m not writing as much about Amazon Web Services as I once did – not because they are less interesting, but because they are so successful and well covered. Still, one thing that did catch my eye recently is the new import/export feature, now in beta. The idea seems contrary at first: deliver or export data from your Amazon internet storage using the latest variant of sneakernet – copy stuff to a drive, and take it physically to the destination.

The thing is, copying data over the Internet is relatively slow and expensive. Once the volume of data gets beyond a certain point, it is cheaper to transport a hard drive. I remember Sun telling me the same thing in relation to its data centers: for large volumes of data, the most cost effective way to shift it is on a truck.

Amazon’s system is not normally on that scale, but it is the same principle: you send them a portable hard drive. There’s even a handy chart explaining how much data you need for this to be worth doing:

Available Internet Connection Theoretical Min. Number of Days to Transfer 1TB at 80% Network Utilization When to Consider AWS Import/Export?
T1 (1.544Mbps) 82 days 100GB or more
10Mbps 13 days 600GB or more
T3 (44.736Mbps) 3 days 2TB or more
100Mbps 1 to 2 days 5TB or more
1000Mbps Less than 1 day 60TB or more

The cost? $80 per storage device, plus $2.49 per data-loading hour.

Many home and small business users have ADSL with a maximum upload speed of 1Mb – slower than anything considered on the chart above. If you have a large database or media collection to put on S3, sneakernet soon makes sense.

O2 router attack shows danger of staying logged in

Concerned about web security? One thing that may prove more valuable than any amount of supposed security software (anti-virus and the like) is the simple good practice of logging out of web sites at the end of each session.

Here’s the reason. Let’s say you are logged into some site – could be Facebook, or Google, or the admin screen on your router, and you’ve left checked the option that says “keep me logged in”. Then you visit some other site. The vast majority of web pages today run JavaScript code in the background, and these scripts execute on your computer, not on the web server. What if one of those scripts sends a request to a site where you are logged in? The request comes from your computer, so it looks like you to the web site. If you are unlucky, the script will be able to perform any action you could perform, but without your awareness – such as changing your password, or reading confidential information.

For this hack to work, a couple of things need to have gone wrong:

1. You are running a malicious script. This implies that the site you are visiting has been hacked, or has a vulnerability such as forum software which allows users to post content that might trigger a script. Even a link to an image in a forum post might be sufficient.

2. The site where you are logged in doesn’t make any additional checks on the source of the script. Although it is running on your computer, the HTTP request generally includes referrer data, revealing the URL of the page from which the script came. By checking this value, the site can figure out that there is something wrong. Another idea is to have unpredictable URLs for sensitive data.

Still, you’ll notice that neither of these things are under your control, whereas generally the option to log out of a site is under your control. Even that might not always be true – a developer could code a site without an option to log out – but that is unusual.

The O2 attack referenced above exploits this flaw to get into your router admin, if you are running an O2-supplied broadband router. It is a huge vulnerability, since if the router is re-configured a wide range of further attacks are possible. One example is DNS poisoning, where familiar URLs might take you to malicious destinations. It could also disable firewall protection and redirect external requests to one of your home or small business PCs – very nasty.

Here’s a couple of things that will improve security:

1. Don’t use the broadband supplier’s equipment, if it is not entirely under your control. Use your own; turn off universal pnp, change the admin password, don’t stay logged into the admin.

2. Don’t stay logged into any site which matters. Even sites which don’t appear to matter can be a security risk, if they expose passwords or security questions that you use elsewhere, for example. Personally I always log out of Facebook, Google and Twitter, for example, even though sites like these should be aware of the risks and be coded appropriately – they mostly are, but mistakes happen.

Unfortunately many sites encourage you to stay logged in, because it reduces the friction of using the site. Still, there are compromises which work. I notice with Amazon for example, that it uses cookies to give you personalized information even when not logged in, but displays password prompts with boring regularity for actions that spend money – though Amazon also advises you to log out completely if using a public or shared computer.

Adobe to announce Flash, Creative Suite roadmaps at MAX 2009

It looks like Adobe has some significant announcements planned for its MAX 2009 [warning: auto-play video] conference on October 4-7. The sessions that intrigue me most are the roadmaps: these include:

  • Roadmap: Flash Platform Runtimes
  • Roadmap: Flash Platform Servers and Services
  • Roadmap: Flash Platform Tooling and Framework – this session is to be given by Greg DeMichillie, now director of product management for Developer Tools. DeMichillie is ex-Microsoft and used to work on Visual Studio in the early days of C# and Visual J++, though he left in 2001.
  • Roadmap: Web Professional Tools and Services in Creative Suite
  • What’s ahead for Flash Catalyst
  • What’s coming in Adobe AIR 2

Looks like a lot to take in; it will be fascinating to see more detail about where Adobe is taking its platform.

BBC trying out HTML 5, video element

The BBC has an HTML 5 demonstration using the video element. The video itself is encoded in both Ogg and H.264. In the screenshot below I have just clicked on a navigation image to jump to a specific place in the video. The demonstration is meant to work in Firefox, Safari and Chrome, though for me it only ran in Firefox (3.5).

There is a detailed comment from the BBC’s Sam Dutton on why the proof of concept was put together here. There is an interesting remark on why the BBC is interested in this approach, which does not require a plugin like Adobe Flash or Microsoft Silverlight:

Flash and other Rich Internet Applications (RIAs) provide something like this already via timeline scripting, but RIAs are ‘black boxes’, using compilers and obfuscators to hide code and data: great if you want to protect intellectual property, whereas we needed to provide a mechanism whereby data and the code acting on it were open and accessible. HTML 5 and the jQuery JavaScript framework gave us the tools we needed without requiring extra plugins or proprietary software.

From a technical perspective, Dutton remarks that the HTML 5 solution is more efficient if you want to synchronize other elements with the playing video:

The HTML 5 audio and video elements remove the need for player plugins, work like any other HTML element in terms of styling and positioning, and standardise the programming interface for playback control. Less well known is that these elements emit a timeupdate event (at a frequency adjusted to fit available processing and memory) which removes the need to poll a player for the current time position. This makes media scripting far more efficient, since there is no need to run a loop or use setTimeout. In tests run on several machines we found that timeupdate events are emitted regularly and frequently (particularly in Firefox), whereas polling a media player for current video time is unreliable.

Dutton adds:

… it’s early days for us on this and there are a number of serious challenges before this becomes anything near mainstream – if ever.

The BBC is an influential site and its experiments will attract keen interest from those watching the evolution of web video.

Google buys On2, plans to integrate video into web platform

Google is buying On2 Technologies, a video technology company. Although On2 is not a household name, it is well-known to Adobe Flash developers since its codec is used in Flash Player 8; it is also in JavaFX. Flash has since moved to H.264 for high definition though the older codec is still supported.

Why does Google want a video compression company? This is from the press release:

Today video is an essential part of the web experience, and we believe high-quality video compression technology should be a part of the web platform," said Sundar Pichai, Vice President, Product Management, Google.

That could mean any number of things; but it does imply that Google does not intend to rely on Flash for its video content. The acquisition will re-open the debate about the video element in HTML 5, which has been left without a codec because of lack of consensus about what might be suitable and affordable. See Ian Hickson’s post from June 2009:

After an inordinate amount of discussions, both in public and privately, on the situation regarding codecs for <video> and <audio> in HTML5, I have reluctantly come to the conclusion that there is no suitable codec that all vendors are willing to implement and ship.

Could Google now establish its own codec as the standard in HTML 5?

I’m guessing Google is also keen to integrate On2 technology with its communication products.

Technorati Tags: ,,,,

Morgan Stanley: why we didn’t use Silverlight for Matrix

I attended an online briefing about Morgan Stanley’s Matrix [warning: lots of Flash with sound effects], a tool for financial trading which has been written in Adobe Flex.  Adobe’s Andrew Shorten has more information here, and notes:

Matrix was developed by Morgan Stanley with user experience consultation from Adobe Professional Services and technical delivery by Lab 49 in partnership with Adobe Professional Services and others.

Unfortunately I missed the first part of the briefing thanks to streaming issues (I wasn’t alone), but things settled down after 15 minutes or so. Hishaam Mufti-Bey, Matrix founder and global director at Morgan Stanley, spoke about the application and the technology it uses. He emphasized the value of zero-install:

The technology is out of the way, no-one has a problem with running the application. It’s now about how tight our prices are, how good our content is, which is always what we wanted to have happen … we want to deliver our franchise to the client without taxing their systems, or having to get past firewall issues, or install software and IT security will get in the way and it takes months to deploy.

I couldn’t agree more. The app itself looks great, though details of how it works were sketchy, I guess for commercial reasons. We were also told little about the server side of the application. Performance is said to be good, despite what is apparently 600,000 lines of code (I’m not 100% clear if this is all Flex code running on the client):

We’ve seen up to 40 currency players running on the screen and getting up to about 400 updates a second

claimed Mufti-Bey, though he added later than lack of multi-threading support is an issue. Next, he took a pop at Microsoft’s Silverlight:

Going out to clients and not installing software, that is a major show-stopper for Silverlight. If Silverlight turned around and offered that one day, that I didn’t need to install stuff on the client’s PC, then it would be a head-to-head. Flash is on 97.7% of the world’s browsers. That was a major consideration for us.

It’s an interesting point, though I’d have thought his comments need some qualification. Flash and Silverlight are both browser plug-ins, so the install issue is similar: if the plug-in is already installed, the app will just run in the browser, but if it is not installed in the right version, the user will need to install the plug-in first. According to riastats.com Flash is up to about 74.5% for version 10 and 20.5% for version 9; I’m not sure if Matrix requires version 10, but if it does then Mufti-Bey is exaggerating a little. Matrix currently uses Flash 9 (see comments). Silverlight by contrast is on 30% for version 2 and 1% for the just-released version 3.

Installing a browser plug-in is easy for most of us, but in a locked-down corporate environment may be problematic, and there is always some percentage of installs that will be troublesome. I’ve found installing Silverlight a smooth and quick process; but undoubtedly Flash is a de-facto standard whereas Silverlight is not. Microsoft can only address this by persuading more of us to develop Silverlight apps, and using it more in its own sites and products – like the forthcoming Office 2010 web applications, for example.

Still, the need to install the Silverlight plug-in where necessary is far less burdensome than either a classic Windows setup, or a requirement for the full .Net Framework; and Microsoft has also removed the requirement to run Windows itself by supporting Intel Mac. It sounds as if Microsoft is going in the right direction, even if catching Flash is a tough challenge.

That might not be enough, according to Mufti-Bey. Asked about the importance of designer-developer workflow, he remarked:

You have to look at the people that use that technology. The design community. That’s the biggest problem that Microsoft has. The designers all carry around Apple laptops, they all use the Photosuite [sic] set of software tools. It’s like asking structural engineers to stop using CAD applications. That’s the tool that they use, and if you can’t convince them to switch away from your software suite you are going to get a limited number of designers that will use Microsoft’s toolset … if you can’t get the designers to switch, to learn a new language, then how can you possibly ever get some traction?

Well, it wasn’t the answer to the question posed, but an interesting point nevertheless. Let’s presume that he is right, and nobody will switch from Photoshop. Is it so hard for Mac-wielding designers to work with .NET developers? There must be something in it, bearing in mind the effort Microsoft has made to improve Photoshop import in Expression Blend 3.0.

Overall I would like to have heard more about the process and challenges of developing a large Flex application, and less about why not to use Silverlight, interesting topic though it is.

Silverlight 3 is out

Microsoft has released Silverlight 3, though some pieces of the platform are still not done – it seems there is always something to wait for.

There are links to the tools developers and designers need to install here:

http://silverlight.net/GetStarted/

Note that Expression Blend and Sketchflow are still at Release Candidate stage.

The .NET RIA services, a server-side piece that simplifies authentication and database operations, is available in a new July 2009 preview:

http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=76bb3a07-3846-4564-b0c3-27972bcaabce&displaylang=en#filelist

See this excellent post by Nikhil Kothari for more on RIA Services – it’s from March but does a good job of explaining what they are about.

Using Silverlight 3, or plan to? I’d love to hear from you, along with your views on what is best and what is worst about Microsoft’s RIA efforts.