Category Archives: microsoft

Fixing Vista: Microsoft’s third-party problem

Ed Bott has a post on how he fixed a Sony Vaio running Vista, when the user had dismissed it as an unusable brick. Bott reasoned that it was all to do with drivers, configuration, and unnecessary pre-installed applications. He proved his point, making the machine usable. The owner made a video about what he thought of the reconfigured machine. Key points:

1. He thought it was much improved

2. He’s sticking with the Mac as his primary machine

The problem wasn’t only that Sony originally stuffed the machine with unwanted trialware. Bott’s new install also benefited from Service Pack 1 and a bunch of updated drivers.

Still, it’s a good demonstration of how big manufacturers like Sony have neglected the user experience for the sake of a few pennies of royalty, or a quicker rush to market, and in doing so lost both sales and credibility. The public mood on this has changed, perhaps because both Apple and the Linux folk are offering better alternatives in this respect.

Incidentally, all my Vista installs have been clean installs, so I haven’t personally suffered from death by trialware, though I have seen it frequently on other machines. Consumer products are worse than those aimed at businesses, but both categories are affected.

Technorati tags: , , , ,

Microsoft: Live Mesh or Live Mess? Here’s what to read.

Here’s what I suggest you read to get to grips with Live Mesh:

Amit Mital’s introduction (he’s the General Manager)

Mike Zintel’s Live Mesh as a Platform (he’s Director of Service Infrastructure)

Mary Jo Foley’s Ten things to know and the helpful stack diagram.

I have a few initial comments. First, it’s the platform that matters, not the Live Desktop which is the first thing Microsoft is delivering and which you will find presented at mesh.com. Microsoft is finally showing us what it means by the “software plus services” thing it has been talking about for so long. It involves a new “Mesh Operating Runtime” which has both cloud pieces and client pieces, a MeshFX API, and an identity system which is Live ID (formerly Passport).

As far as I can tell, Microsoft is delivering an API which we will be able to use to build internet-based data, document and configuration into either desktop or web applications, with synchronization to local storage for offline use. Zintel adds:

… customers will ultimately license applications to their mesh, as opposed to an instantiation of Windows, Mac or a mobile account or a web site.  Such applications will be seamlessly installed and run from their mesh and application settings persisted across their mesh

It sounds good, though the obvious question is whether Microsoft is overstating the importance of the client in an attempt to preserve its core market. Do we need this special client piece? Here’s a paragraph from Zintel’s piece that caught my eye:

A key design goal of the Live Mesh data synchronization platform is to allow customers to retain the ownership of their data that is implicit with local storage while improving on the anywhere access appeal of the web. The evolution of the web as a combined experience and storage platform is increasingly forcing customers to choose between the advantages of local storage (privacy, price, performance and applications) and the browser’s implicit promise of data durability, anywhere access and in many cases, easy sharing.

Can Microsoft improve on the “anywhere access appeal of the web? Zintel says we need to combine it with the advantages of local storage, but the advantages Zintel identifies are not all that convincing. Let’s look at them:

Privacy: maybe, but local data is vulnerable to worms, trojans, viruses; well secured Internet data accessed over SSL is arguably more secure. Data not connected to the Internet is nice and secure, but can’t participate in the Mesh.

Price: I don’t see how Mesh helps here. Yes, local storage is cheap, but as soon as data enters the Mesh it is on the Internet and we are paying for data transfer as well as possibly Internet storage. I realise that Microsoft (among others) offers generous Internet storage for free, but that is just a way of buying market share.

Performance: Granted, some types of application work faster with local storage. Still, there are non-Mesh ways of getting this from web applications in a fairly seamless manner, such as Google Gears or Adobe’s AIR.

Applications: This is perhaps the big one. Many of us are reluctant to do without traditional local applications such as Office. Well, mainly Office. Still, web equivalents get better all the time. One day they will be good enough; and new technology like Silverlight is bringing that day closer. 

What about identity management and permissions? Zintel says:

A side effect of the competition to store customer data in the cloud and display it in a web browser is the fragmentation of that data and subsequent loss of ownership. Individual sites like Spaces, Flickr and Facebook make sharing easy, provided the people you are sharing with also use the same site. It is in fact very difficult to share across sites and equally difficult to work on the same data across the PC, mobile and web tiers.

True; but Mesh currently identifies users by their Live ID. Isn’t that the same as Spaces?

If Microsoft delivers a bunch of useful web services, that’s great. If it tries to somehow replace the web with its Mesh, it will fail.

Mary Jo Foley also asks the question: to what extent is Microsoft extending, and to what extent is it replacing, existing Live services such as Office Live or the excellent Skydrive? Making sense of all this is a challenge.

Now let’s mash all this up with Yahoo! (maybe). Ouch.

RIA means … not much

Ryan Stewart has a go at nailing what the term Rich Internet Application means.

I think he’s coming at this from the wrong end. It’s better to look at the history.

As far as I’m aware – and based partly on my own recollection, and partly on what Adobe’s Kevin Lynch told the press at last year’s MAX Europe – the story begins around 2001, when WebVertising Inc created an online booking application for the Broadmoor Hotel in Colorado Springs. It was an HTML application redone in Flash. A PDF describing what was done is still online, and discusses some of the differences between the HTML and Flash approach, though bear in mind this is Flash evangelism.

They created iHotelier, a fully interactive, data-driven reservation application that reduces the entire reservation process down to a single screen. Users looking for information on available rooms for specific dates highlight their preferred dates in a calendar. With one click of the mouse, the Flash application displays the available (and unavailable) rooms, and their cost. (Figure 10) As a result, users do not feel like they’ve wasted a lot of time and effort if their first room choice is not available.

This case study seemed to trigger a new awareness at Macromedia concerning the potential of Flash for complete applications. I don’t mean that it had never been thought of before; after all, it was Macromedia that put powerful scripting capabilities into Flash, and I’m sure there were Flash projects before this that were applications. Nevertheless, it was a landmark example; and it was around then that I started hearing the term Rich Internet Application from Macromedia. Wikipedia claims that this paper [PDF] is the first use; it’s by Jeremy Allaire and dated March 2002. I’m sure Allaire himself could provide more background.

The problem with the term, as you can see from Allaire’s paper, is that Macromedia (now Adobe) tends to define it pretty much as whatever their latest Flash technology happens to be. This shifts around; so if you are at an AIR event, it’s AIR; if you are at a Flash event, it’s Flash; if you are at a Live Cycle event, it’s apps that use Live Cycle.

Microsoft muddied the waters a little. Realising that RIAs were attracting attention, it started using the term to describe its own technology too, though in the spirit of “embrace and extend” it changed it to mean “rich interactive application”. As I recall, Microsoft used it mainly to describe internet-connected desktop client applications such as those built with Windows Forms. Something like iTunes is a great example (even though it is from Apple), since it runs on the client but gets much of its data from the Internet, especially when you are in the iTunes store.

Now it remains a buzzword but honestly has little meaning, other than “something a bit richer than plain HTML”. If you were doing the Broadmoor Hotel app today, you could do it with AJAX and get similar results.

Technorati tags: , , ,

Windows Server 2008 is better than Vista, but why?

Mark Wilson asks:

It seems that, wherever you look, Windows Server 2008 is almost universally acclaimed. And rightly so – I believe that it is a fantastic operating system release (let’s face it, Windows Server 2003 and R2 were very good too) and is packed full of features that have the potential to add significant value to solutions.

So, tell me, why are the same journalists who think Windows Server 2008 is great, still berating Windows Vista – the client version of the same operating system codebase?

The short answer is that Server 2008 delivers new features that customers wanted, whereas Vista delivers new features that Microsoft thought its customers should want. However, it seems there may be more to it than that. Maybe Server 2008 really does perform better than Vista.

According to this post, Server 2008 performs 11-17% faster than Vista SP1, running a couple of benchmarks which test typical client applications. Christian Mohn concurs:

Windows Server 2008 performs better, even with the Aero features enabled, than Vista ever did on the same hardware. To me, this a bit strange, even if a lot of services are still disabled, as the codebase is pretty much the same as Vista.

though Mohn’s example is less scientific: he never ran Vista SP1, and also moved from 32-bit to 64-bit.

Server 2008 has a “Desktop Experience” feature, which installs things like Windows Media Player, Aero GUI effects, and other fluff that doesn’t belong on a server. My assumption had been that once you installed this, Server 2008 would perform in a similar manner to Vista. Apparently this is not the case.

It seems to me there are a few possibilities. One is that Microsoft isn’t being straight with us about this “same codebase” stuff. It would be interesting to analyze the core DLLs and work out which are the same, and which are different.

The second possibility is that there’s stuff in Vista which is not part of the core, nor part of the Desktop Experience, but which slugs performance. If so, it would be great to identify it and turn it off.

The third explanation is that the testers are wrong, and that performance is actually similar. For example, maybe Vista was running a background update or backup during tests. Background processes make it hard to conduct truly rigorous performance comparisons.

I’d like to see Mark Russinovich get his teeth into this. I’m also tempted to try the Server 2008 desktop experiment myself.

Visual C++ Feature Pack includes major MFC update

The Visual C++ 2008 Feature Pack is now available for download. It includes an update to MFC (Microsoft Foundation Classes), with classes for an Office Ribbon style interface (if you can live with the legal aspect) and other new GUI controls. There is also an implementation of  the TR1 (Technical Report 1) standard (PDF), an important update to the ISO 2003 C++ standard library.

Microsoft’s live maps upgrade is a downgrade in the UK – developers are fuming

Microsoft’s latest upgrade to Live Maps has some interesting new features, including more detailed 3D city views, labels in bird’s eye view, GeoRSS feeds, and more:

As always the changes visible in the user interface only scratch the surface of the dozens of improvements across the application tiers including Geocoding enhancements, browser compatibility (Safari and IE8), parsing improvements, reverse geocoding, printing improvements and tons more. We are also releasing an upgrade of our Map Control to version 6.1 for developers.

Unfortunately for UK developers, there’s another change. In December 2007 Microsoft acquired Multimap, and the latest update now redirects maps.live.com to Multimap, if your region settings are UK (or, possibly, elsewhere in Europe). You can see the difference if you force the region to US with an url argument: http://maps.live.com/?mkt=en-us.

The Multimap maps have fewer features and include advertising. For example, there is no 3D view in Multimap:

Here’s the real Live Maps version (note the extra features):

It looks like the photography is the same; but developers are not happy. Check out the comments to the announcement, for example:

I loved Live maps, but i’m off to Google maps if multimap doesn’t get removed and we go back to the nice clean good interface and all the features we’ve come to love.

Multimap is awful.

or

I never thought I’d have to say this, but for UK users Live Maps is now complete TRASH. Why on Earth did you replace Live Maps with Multimap??? Multimap uses technology that hasn’t changed for years, the maps are awful, the page is full of clutter, and it doesn’t even use smooth zooming – it just reloads the page every time you zoom in because it’s all static image based.

Add to that the fact that the road maps all use images scanned straight out of the PAPER atlas, not the sleek, computer-friendly road map style that Live Maps uses.

It’s a shame, as I’d been meaning to blog about how impressive Live maps and Virtual Earth looked in some of the demos as Mix08. That said, Microsoft can fix this easily by removing the redirect.

This is an integration issue. If Microsoft-Yahoo becomes a reality, I wonder what other such issues will cause developers to fret?

Thanks to Ian Blackburn for the link.

UPDATE: Live Maps is back. As of yesterday, Multimap is no longer being used even in the UK. Looks like Microsoft listened; I’m impressed.

Microsoft discusses next-gen MSDN … on Facebook

According to this blog post, Microsoft is setting up a buzz group on Facebook to discuss the next generation of its online documentation for developers, the MSDN (Microsoft Developer Network) Library:

We have put a facebook group together to aggregate together the folks who want to work with us to provide feedback, usability and ideas for the next generation of the MSDN Library. We call this project Library 3.0 and we will be organizing events and presentations from this group to bring us together on the project. My goal is build quorum of members over the next months with kickoff’s in late May for the first events.

It’s an interesting place to hold the discussion. Yes, Microsoft has a small stake in Facebook; but it also runs a vast network of technical communities and is doing great business with its Sharepoint collaboration platform. So why use Facebook?

Of course, two key areas that need improving in MSDN are collaboration and search, so you could argue that choosing a third-party platform for collaborating on MSDN itself is significant.

Then again, it’s probably more to do with internal red tape. What’s easier: getting corporate agreement on some new developer relations initiative and setting up the infrastructure, or just sticking a new group on Facebook?

If you are interested, the group is here. Currently it has no content or discussion whatsoever. Not a good start; but there’s time…

Technorati tags: , ,

JBuilder 2008 and Vista’s Program Compatibility Assistant

One of Vista’s annoyances is this dialog, which you may see shortly after installing an application:

As you can see, I got this after installing CodeGear’s new JBuilder. The reason it annoys me is that it doesn’t tell you what “compatibility settings” it has applied. In this case, even if you go to JBuilder.exe in Explorer and view its properties, you will find all the compatibility options unchecked. So what has it done?

Of course I clicked “What settings are applied”. Here’s what it says:

As you can see, this still does not tell you what settings are applied. By the way, Group Policy enables you to disable the Program Compatibility Assistant completely, but does not show the settings for individual applications.

I ran the registry editor, and found this entry:

It looks like the Persisted key tells Vista which applications have already had settings applied, while the Layers key tells Vista what settings to apply. ELEVATECREATEPROCESS lets the application create child processes which require admin rights, though they still raise a UAC prompt.

I also found this Microsoft article which does a good job of explaining how the Compatibility Assistant works. It appears that JBuilder 2008 tries to run something which requires administrator permissions, but does not use the  correct Vista technique for doing so. I soon found out what it is:

It’s running regedit, and exporting some keys that appear to relate to Mozilla’s Gecko Runtime project, for embedding a browser in an application. Unfortunately it does this (twice) every time it runs, which is unlikely to be necessary. You would have thought there would be a better way to use these registry entries, than exporting a temporary file.

Conclusions? None really; I just wanted to know what this annoying wizard does. A couple of observations though. First, it’s careless of CodeGear to let JBuilder 2008 out like this. It just looks bad, to have your app identified as an old one that needs compatibility help.

Second, if you read Microsoft’s article you’ll notice that among other things Vista “instruments” the CreateProcess API call in order to make this work. There must be a performance impact. I guess Microsoft will say it is a small one; but I guess it also makes its little contribution to Vista’s overall performance issues.

Microsoft: OOXML has won approval as an ISO/IEC standard

According to Microsoft’s press release, and a document in unofficial circulation, Microsoft’s Open Office XML, an XML format for Microsoft Office, has been approved as an ISO standard.

It’s been an ugly process. That said, I suspect the spec has been significantly improved by all the attention it has received. The spat has exposed the money and politics behind standardization processes. This seems to be a theme of late: see also Blu-Ray vs HD-DVD, and even the Java Community Process.

I welcome standardization, but dislike the way both sides have put their standards wars ahead of the convenience of users.

Technorati tags: , , ,

Help! We’re running a VB3 app and we’ve lost the code

I write a programming column for Personal Computer World. A reader contacted me with a problem. He had an application which he knew was written in Visual Basic 3, but for which he did not have the source code. He now wanted to adapt it to run on Windows Mobile.

VB 3.0 came out in 1993, a mere 15 years ago but an eternity in Internet time. It was hugely popular, partly because it included the JET database engine, the same one as used by Microsoft Access. Both professionals and keen amateurs used it to create little (and not so little) business apps. VB 3.0 is 16-bit, and although these apps may still run OK on Windows XP or Vista 32-bit, though perhaps with a few cosmetic glitches, they will not run on 64-bit Windows, which has no 16-bit emulation layer.

Not many organizations are moving to 64-bit desktops just yet, though they may well do so in a couple of years, but there is still a problem if you need to adapt or port the code.

I thought this would make a fun case study so I wrote it up in the May 2008 column. I tracked down the VB3 decompiler put out some years back by Hans-Peter Diettrich, also known as Dodi. He gave me a demo version to distribute to readers. The app in question turned out to be very simple, and decompiled easily. I then imported the project into VB 6 (because later versions won’t look at VB3 apps), and finally pulled the VB6 conversion into Visual Studio 2008. Once I’d fixed up the Windows version, I created a new Compact Framework solution into which I copied code from the desktop project. Much of the code made it all the way from the VB3 original to the Compact Framework, and ran fine on my IPAQ Pocket PC.

Working with decompiled code is a bit like solving a crossword puzzle. Variable names are mangled so you have to work out what they are for. It won’t be a quick and easy process except in the simplest of cases.

The incident makes me wonder: how many business-critical apps with lost source are out there? Someone posted a cartoon recently which I can’t now track down, but it was a graveside scene. One mourner says to another, “I’m sorry to ask at a time like this, but did he say anything about source code?”