Category Archives: microsoft

10 steps to a well-behaved Windows application

I wrote a short summary of Microsoft’s latest (I think) guidelines for well-behaved Windows applications.

It is a significant topic. A large part of the thinking behind Vista’s contentious User Account Control (which is being continued in Windows 7) is to push app developers into writing applications that conform more closely to the guidelines, especially in respect of where they write data. If all applications conformed, there would be little need to log on as local administrator, and Windows would be more secure.

Web app with Silverlight and Virtual Earth

I’m writing on mapping applications right now and came across this impressive example from Port Metro Vancouver. It uses Microsoft’s Silverlight and Virtual Earth. The bit you want is the interactive map on the home page. Wait for it to load, then click the uncaptioned button (to the right of Webcams Wall) for full screen mode, and try some of the menu options.

There is more about the app in this blog entry on the Virtual Earth for Public Sector blog.

Windows 7 beta image gallery

The Guardian has posted a gallery of screenshots I took from the Windows 7 beta.

It includes an actual Device Stage, for the Sansa Clip. I did actually use this to update the firmware, which is not something you can do from the generic device connection dialog. It wasn’t truly seamless though, involving a download and a separate setup application.

I also illustrated the Library feature with three screenshots. The third of these illustrates a wee snag with this feature – documents with the same name, but in different folders, can appear identical in some views.

You can get a similar effect in Vista. If you look in \users\public with hidden items showing, you’ll find a folder called Public Desktop. Items in this folder show on your desktop merged with items in your user desktop. Put an item here with the same name as one in your user desktop, and both appear without any indication that they are different. This is also the reason why desktop.ini appears twice on the desktop if you show hidden files.

I guess it’s something users won’t run into very often (it’s pretty hard to do by accident in Vista); but it would be good if Windows could detect this situation and indicate it in some way. Bad outcomes would be if you deleted one of them thinking it was a duplicate, and lost some data; or sent someone a draft thinking it was the final version.

Technorati tags: , ,

Another useless Microsoft search experience

I do not make posts like this just to needle Microsoft. I’d like to see it compete better with Google, not because I have anything against Google, but because competition is good. So I’m explaining why I can’t use Microsoft’s search product as currently implemented, in the hope that it will help to improve it.

I am aware that the Windows 7 beta SDK is now available, and wanted to download it. I tried the search on Microsoft’s site:

Top hit is from November 2007 and is a forum discussion of dxtrans.h. Correct result nowhere to be seen.

So I tried Live Search:

I get ads for double-glazing and a top hit for the QuickTime 7.3 SDK from Apple. Correct result nowhere to be seen.

So I tried Google:

Top hit is relevant but wrong. Second hit is a blog post which has the URL I’m looking for, not bad. Fourth hit is the exact URL. By the way, the Windows 7 SDK beta is here.

It is no use Microsoft doing search bundling deals with Dell. If it cannot fix the product, users will run back to Google.

Incidentally, I believe US searchers get better results from Live Search than I do, because of faulty regionalisation. Live Search seems to have a heavier bias than Google towards what it thinks are (in my case) UK results. That doesn’t explain why it gives an Apple QuickTime site as its top hit for “Windows 7 SDK”.

Windows 7 beta 1 performance observations

There are various reasons why someone might be impressed with the performance of the Windows 7 beta. One is that the beta is a clean, plain Microsoft install – no anti-virus, no cruft and clutter, no OEM foistware. The only fair comparison is with an equally clean install of Windows XP or Vista on the same hardware.

That can be arduous to arrange, but I was given an opportunity perforce. I installed Windows 7 beta 1 on a laptop using an old hard drive, from which I upgraded last year. I have a second hard drive bay in this laptop, making it particularly suitable for multi-boot. However, in order to install Windows 7 I wanted to boot from CD, which means removing the hard drive bay, so I took out the main internal drive temporarily and replaced it with a spare drive for Windows 7.

Everything went fine until I replaced the old drive. I’m still not sure exactly what went wrong; suspects include the storage controller BIOS possibly detecting the drive as RAID rather than JBOD, or vice versa, or a resume failure. The outcome though was a thoroughly scrambled Vista installation – file corruption and then refusal to boot – that “missing winload.exe” message.

This was going nowhere so I reformatted the drive and did a clean Vista install (with SP1). It struck me that this gave me a good opportunity to run PassMark on the two relatively clean systems (just Office 2007 is installed, on both). Note that you are not meant to publish benchmarks for beta versions of Windows, so treat this as for anecdotal interest only. I am not going to give the exact figures.

The test was not quite fair, since the newer hard drive is faster than the old one, and the graphics driver is a different version. The drive difference probably accounts for why overall Windows 7 result was slightly below that for Vista – the “disk mark” was over 40% worse. Windows 7 was also slightly worse for 2D and 3D graphics, by 5-10%. The result was not all bad for the beta though. The CPU score was around 4.5% better, and the memory score was over 9% better. On the memory allocation tests Windows 7 came out nearly 25% faster.

One final observation: performance is not just about raw speed in tests. I believe some of the most annoying Windows slow-downs are to do with synchronous API calls that time-out before they return, or inefficient Windows utilities. I hate seeing the progress bar that Explorer shows sometimes, when trying to enumerate files in the current directory. If Microsoft simply manages to speed up Explorer and reduce the number of mysterious Windows pauses, users might perceive Windows 7 as faster even if benchmark tests showed otherwise. Some of the changes in Vista since its first release have improved performance by addressing specific defects. Zip extraction and file copying are examples.

Talking of file copying, I can’t resist posting this Vista dialog which I saw when copying a CD image to my new laptop install (note the time remaining). Fortunately for me, it was pessimistic, and the copy completed a few minutes later.

File copy shows 10627 days and 22 hours remaining

Technorati tags: , , ,

I’m looking for comments on Windows 7 beta vs XP or Vista

Tried Windows 7 beta 1? I’m looking for comments to quote in an article. I’m interested to know what you think of it so fare in comparison to either XP, or Vista, or both; and whether you expect to upgrade as soon as you can, or will put off the upgrade, or not bother with it at all. With reasons of course.

By all means comment anyway, but in order to be quoted I’d need (along with your presumed consent if you comment here or by email):

1. You have actually tried the Windows 7 beta

2. You do not work in PR or for Microsoft or for a PC vendor (or have other obvious reason for non-objectivity)

3. You give your full real name, company and job

Comment here or by email to tim(at)itwriting.com.

Technorati tags: , , ,

OpenID embedded into Windows 7?

While reviewing Windows 7 I noticed an interesting new option when sharing files or folders in a homegroup – the ad-hoc network intended for home users, equivalent to the old peer-to-peer workgroup. In this scenario there is no central user directory, so it is difficult to set fine-grained permissions, such as when you want Sally to have read-write access to a document, but Joe read-only access. The messy workaround is to create user accounts for each user on each computer.

At least, that’s how it used to be. In Windows 7 there is a new option, though it is not fully enabled in Beta 1 (what was that about feature complete?). Users in a homegroup can be identified by an “online ID” instead of a Windows username. In effect, this makes the internet-based ID provider into the central directory for your homegroup, and enables sharing with “specific people” rather than entire homegroups:

The further advantage is that this identity persists across different networks, as the documentation makes clear:

If you have an online account, such as an e‑mail account, you can link that account with your Windows user account. Linking these accounts lets other people share files with you on a homegroup using your online account name (or ID) instead of your Windows user name. This makes it easier for people to share files with you, because they can use the online ID they are familiar with instead of adding your Windows user account to their computer. For example, if you have an e‑mail account that your friends and family use to communicate with you, such as molly_clark@example.com, they can use that online ID to share files with you on a network. You can also use that online ID to access your information on other computers on a network, such as accessing files on a home computer from your work computer.

Linking your account is a two-part process. First, you need to add your online ID provider, and then you need to link your online ID with your Windows user account.

So what is this online ID provider? My immediate assumption was that it meant a Live ID. You have always been able to link a Windows account with a Live ID (formerly Passport), which gives you instant sign-in to Windows Live properties. However, the language here is different, suggesting a variety of ID providers rather than just Microsoft.

Here is another snippet of documentation:

To add an online ID provider

1. Click to open User Accounts.

2. Click Link online ID.

3. Click Add an online ID provider.

4. Select your online ID provider from the list and follow the instructions.

To link your online ID with your Windows user account

1. Click to open User Accounts.

2. Click Link online IDs.

3. Next to the online ID that you want to link your user account with, click Add linked ID.

4. Type your user name and password for the online ID and then click OK.

 

Unfortunately if you attempt to do this in the beta the list of providers redirects to the Windows home page. I was intrigued though – what technology is this, and who can be an online ID provider for Windows 7?

I asked Microsoft and got this answer:

Any service can choose to be an OpenID provider or a relying party. Customers of web sites that support OpenID can sign in with any OpenID provider.

Note that I did not ask about OpenID, only about online ID providers for Windows 7. Is Microsoft really hooking Windows 7 user identities to OpenID?

I was sceptical so I asked again. Here’s what I was told:

Regarding your Windows 7 question around Online ID in the beta, the online providers are an ISV opportunity and are not currently enabled in the beta. With regard to Windows Live, please find the link here <http://dev.live.com/blogs/devlive/archive/2008/10/27/421.aspx> that discusses Windows Live becoming an OpenID provider with its recent release.

Something less than a clear-cut answer; but again directing me to OpenID and to last year’s announcement that Windows Live will be an OpenID provider.

Still a few unanswered questions then; but I like the idea of linking local network sharing and online directories, which makes a lot of sense for home users that have no Active Directory. Actually it makes sense beyond that as well. I also like the idea of being able to select an OpenID provider as my preferred online identity provider, rather than having to choose Windows Live. It opens up the possibility of smooth integration across the local network and across a number of internet properties.

Do note though the lack of clarity in the answers I received, and that all the documentation is headed:

This content is preliminary and subject to change.

SharePoint – the good, the bad and the ugly

I’ve been messing around with SharePoint. When it works, it is a beautiful product. It is a smart file system with versioning, check-in and check-out, point-and-click workflow (eg document approval), offline support via Outlook, direct open and save from Office 2007, and more. It is an instant intranet with blogs, wikis, discussion forums, surveys, presence information, easy page authoring, and more. It is an application platform with all the features of ASP.NET combined with those of SharePoint. It is a content management system capable of supporting a public web site as well as an intranet. It is a search server capable of crawling the network, with a good-looking and sophisticated web UI. And in the high-end Enterprise version you get a server-side Excel engine and all sorts of Business Intelligence features. Fantastic.

Even better, the base product – Windows SharePoint Services 3.0 – comes free with Windows server. Search Server Express is also free and delivers all the search capability a small organization is likely to need.

What’s wrong with this picture? Here’s a few things:

  • Gets very expensive once you move to MOSS (Microsoft Office SharePoint Server) rather than the free WSS.
  • Deeply confusing. Working out the difference between WSS and MOSS is just the start. If you want to deploy it, you had better learn about site collections, applications, operations, farm topologies, web parts, workspaces, and the rest.
  • Complex to deploy. Make sure you read Planning and Architecture for Office SharePoint 2007 Part 1 (616pp); the good news is that part 2 is only 52pp. SharePoint is all that is bad about Microsoft deployments: a massive product with many dependencies, including IIS, ASP.NET and the .NET Framework, SQL Server in particular configurations, and of course hooks with Office 2007, Exchange and Active Directory.
  • Generates horrible source code. Try opening a page in SharePoint designer and viewing the source. Ugh.
  • Challenging to back up and restore, thanks to being spread across IIS and SQL Server.

I am out of sorts with SharePoint right now, after a difficult time with Search Server Express (SSX). I have a working WSS 3.0 installation, and I tried to install SSX on the same server. My setup is just slightly unusual, since I have both SharePoint and a default web site on port 80, using the host headers feature in IIS to direct traffic. The SSX install seemed to proceed reasonably well, expect for two things.

First, I puzzled for some time over what account to use as the default account for services. Setup asks you to specify this; and the documentation is a classic case of unhelpful help:

In the Default Account For Services section, type the user name and password for the default services account.

In the Search Center Account section, type the user name and password for the account for the application pool identity of the default Search Center site

Well, thanks, but I could have figured out that I have to type a user name where it says “User name”. But I would like help on how to create or select a suitable account. What permissions does it need? What are the security implications? The temptation is to use an administrator account just because it will most likely work.

Then there was the problem of creating the search site application manually. I had a go at this, helped by these notes from Ian Morrish. I set up a crawl rule and successfully indexed some content. Then I made a search, to be greeted by this error:

Your license for Microsoft Search Server has expired.

Well hang on, this is Search Server Express and meant to be free! A quick Google turns up this depressing recommendation from Microsoft:

To solve your immediate problem, however, it is suggested you uninstall WSS, MSS Express, repave your machine with a clean OS, and reinstall only MSS Express (WSS is installed with it).

Thanks but no thanks. See this thread for a more informative analysis. The user yanniemx reckons, after 10 reinstalls, that he has worked it out:

I realized it was due to using the Express version of Search and then not using the SQL install that is included in the install.  From what I can tell if you use another SQL instance it thinks you are using multiple servers and that is not allowed for the Express version.

I think I’ll just uninstall. I did another install of the full MOSS on its own server, and that one works fine. Running on a virtual machine is another good idea.

I hate the way certain Microsoft server products like to be installed on their own dedicated server. That makes sense in an Enterprise, but what about small organizations? I don’t see any inherent reason why something like SSX shouldn’t install neatly and in a reasonably isolated manner alongside other products and web applications. Equally, I am sure it can be done, just as I used the host headers trick to get WSS installed alongside another web site on port 80; but working out how to do it can be a considerable effort.

Performance: Windows 7 fast than Vista, Vista faster than XP

The second part of that statement interests me as much as the first. ZDNet’s Adrian Kingsley-Hughes ran some informal tests on XP vs Vista vs Windows 7 beta 1 (as leaked, I presume), ranking them in order for a number of tasks. The results show that in general XP is slower than either Vista or XP on an AMD Phenom system with 4GB. Even on a Pentium dual core with just 1GB, which should favour XP, Vista was neck-and-neck with XP for speed (score of 57 vs 56, where less is better). Windows 7 came top in most of the tests.

I’ve done enough of these kinds of tests myself to know some of the pitfalls. Kingsley doesn’t mention whether UAC was on or off in Vista, or whether Aero is enabled, or how many background processes were running on each machine, or how many times the tests were repeated and whether there was much variation. It would also be interesting to know timings, rather than simple ranking. Finally, Kingsley’s tests seem overly weighted towards file I/O.

I’d also be intrigued to see a comparison of Vista as on first release vs a fully patched system.

Still, this does suggest (as I’ve argued before) that Vista is better than its reputation; and it is wrong to assume that XP will generally out-perform it.

That said, let’s not forget the dire performance of those early Vista laptops with 1GB RAM, a full helping of third-party foistware, and Outlook 2007. Even today, Outlook 2007 can kill the performance of a high-end system, as this recent comment shows:

Technorati tags: , ,