Slicing and dicing Explorer

by Matt 9. December 2006 19:31

A little while ago, Long Zheng wrote a post about one of the nice little "experience" points of Windows Vista - a feature he christened "dynamic multi-dimensional scrolling", which is just a fancy way of saying that the tree view of the folders in Windows Explorer automatically scrolls so that the majority of the view isn't whitespace (go see his post for the picture/1000 words type thing).

I like it, and I agree with Long - it's not really a feature, but it does have a good, positive image on the end user's experience with Windows. I'd like to add another: the ubiquitous use of the "sorting/filtering/grouping/stacking drop down task pane from a header in Explorer's list view". (Might not be as fancy, but it's definitely a longer name than Long's.)

XP allowed you to sort items, by date, file type, whatever. You could even group on these attributes. But it was really awkward to set; a menu option buried in a sub menu on the right click. Vista's brought it front and centre, and it's a great way to slice and dice your file views.

One of the simplest yet most effective changes is to make this functionality far more discoverable by keeping the header bar visible at all times - in XP, it was only visible in details mode (which made sorting all the harder).

The feature set it exposes is terrific. It really augments the search functionality with filtering, sorting, grouping and stacking, but that's not my favourite bit. That would be finding it in places I wasn't expecting, the most surprising of which was the add/remove programs dialog. Once you've got more than a few applications installed, that list isn't the most friendly to work with. Being able to sort, group and filter (no stacking, but it's no big loss) all of my applications is brilliant. Looking for that application you just installed that's a pile of rubbish? Just filter the "installed on" date as today.

It just makes it so easy to get at your data.


Obsession With Detail | Vista

Following the shutdown menu

by Matt 4. December 2006 17:54

Just so I can be magnanimous, I can't have a go at Joel and then ignore the follow up posts. As I said before, because Joel said something about Vista's shutdown menu, it became an issue. He posted three follow ups to that one, and they covered some very interesting ground, namely Microsoft's engineering practices.

It started with one which linked to an ex-Microsoftie who worked on said menu (Moishe's post has moved here). The linked to article is a damning indictment of how badly Microsoft was handling Vista's development. There was an amusing Slashdot comment about Joel's agenda for this one.

There were many negative opinions expressed about this story, some dissing Microsoft's management issues, some dissing the source control. The post I really wanted to write was about the source control - I got caught up in Joel's arguments.

Interestingly, Moishe's article has been updated, with a bit of an apology and a softer tone. Sounds like it's mainly a grump about an isolated incident, rather than a serious indication of Vista's management. What I find myself wondering is where was the accountability? Either Moishe's team had plenty of other features to work on, or someone was letting them get away with delivering very little over a year.

Joel's next post was the story of the OSX equivalent menu, again, straight from the horses mouth. Joel's take on this story was that Apple had essentially validated his original post. It wasn't I read. (I don't think they've managed to get shutdown any simpler than Vista have, but let's not get sidetracked again.) The interesting quote in there was how Apple had huge problems with Copland due to managing a project with the size and complexity of an operating system.

And so we get to the final post, about source control. I had originally wanted to write a post defending Microsoft's multiple branched, gated source tree as one of the only sane ways to do development at this scale. I was even going to spell it out a little - imagine writing an website, a good complicated one. While the team are changing, and the .net team were changing the BCL and the C# compilers. And IIS was changing. As was the network stack. Not to mention the OS's memory management. Oh, and someone was re-writing your display driver too. Fancy working in the same source code repository as all of that lot?

Fortunately, I don't have to do that. Joel's evil twin was gone, and we had our Joel back. Even Slashdot is on my side, with a negative comment that nicely set things up for an explanation of Linux's way (very similar to Window's) and a comment from another Microsoft employee that provides a complimentary explanation to the story in Joel's post.

Out of interest, here's an Apple engineer's view on how they do development and source control on OSX. The scale of the two just don't compare. Read what you want into that one. Have Microsoft over complicated Windows and it's processes? Has Apple just got it sussed? Is Apple's limited hardware support matrix an advantage here? Who knows?



Joel and that shutdown menu

by Matt 29. November 2006 09:12

Joel Spolsky had a small rant about how to shutdown Vista. And since it was Joel, it's actually become an issue. Unfortunately, I think Joel should look up the meaning of the word "disingenuous".

The crux of the argument is that you have 15 options of what to do when you leave your computer. And that's too many. Certainly sounds too many when you say it like that. Shame it's not quite so clear cut.

The Start menu has two buttons, lock and power off. Firstly, these buttons will be the most pushed. My mom will use this buttons. She won't bother with the menu, which incidentally, contains 7 different actions. It's this menu that's most controversial. I'll come back to that. Other options are the four laptop fn key combinations. Really. How many people have read their laptop manual enough to know that you can turn off, sleep, hibernate and (I'm guessing) lock using the fn key? These buttons are a terrible idea, but how much would Microsoft get slated if they didn't support them? Closing the lid and using the power button are more physical, intuitive ways of shutting down your machine - they have to be supported.

The "advanced" menu is definitely a poor way of doing advanced UI, but put simply, each outcome is stilll required. And what actually is the alternative? Joel suggests combining lock with switch user. Go on - lock Vista now. Look at the screen. Is it just me, or does that button say Switch User? He also suggests merging sleep and hibernate. Great idea. Should we tell Microsoft? Getting rid of log out is probably not going to go down well with enterprises. Restart replaced with shutdown and then power on? This one might actually have legs. But that wouldn't work on a headless server box that I controlled via remote desktop and wanted to restart.

Personally, if it weren't for the video driver power issues I've got, I'd just be closing the lid and wandering off.

Oh, and the iPod does have an on/off button - hold the play button down. It turns off. When it's turned off, I have to press the select button to turn it back on - any other button doesn't work. And that's more opaque than Vista's lock/off buttons, closing the lid or pressing the power button. I get that Joel's point was that the iPod doesn't need an off button, and generally, it doesn't. But unfortunately for Joel's argument, Apple are giving the user more, advanced choices. (And was he really comparing an operating system with an mp3 player?)

Joel, really. Disingenuous. It's a great word.



First Vista UAC problem

by Matt 24. November 2006 04:25

I've been using Vista for a good few weeks now, and it's only today that I've hit my first UAC problem - you can't "unblock" a file that's been marked as downloaded if you don't have full permissions to it.

Internet Explorer has a feature called Persistent Zone Identifier. When you download a file from a site, the file saved to the hard disk is marked with the site's security zone (e.g. Internet Zone). When you try and run that program, the shell will notice the identifier and display a warning that you are trying to run a file from an untrusted source. It's a nice little security feature.

XP took it a step further. If you have a zip file with a persistent zone identifier, XP's built in zip tool would pass the identifier on to the files it extracted, so any executables you downloaded in a zip file were still subject to the same zone check. Defence in depth.

Vista appears to trump XP. It not only keeps the id for extracted files, but appears to apply it to any files created by a program that is marked with a zone id!

I downloaded a zip file containing a setup program. I extracted it with the built in zip tool (or maybe I just double clicked the setup program while inside the zip folder view, I forget which) and installed the program. It starts up as you log in, and suddenly I'm greeted by the warning dialog - I'm trying to run software downloaded from the internet.

To stop the dialogs, you can do one of two things; uncheck the tick box on the warning itself, or display the executable file's properties and click "unblock". Neither of which work if you're running with UAC and the files are installed to Program Files, and neither option prompts you for elevation. It silently fails. And you can't elevate explorer itself while browsing the folder, so you're kind of stuffed. And running the file elevated gets the warning prompt before the elevation prompt (it runs in explorer's context, so you've got no hope).

But where there's a will, there's a way. This rather useful runmenu tool allows you to run the following command from an elevated command prompt:

runmenu /verb:properties /wait:window file.exe

and you get the file properties dialog open and can successfully unblock the file. (The "wait" is very important)

Msdn has more details about the Persistent Zone Identifier, but it doesn't mention the little tidbit that the identifier is stored in an NTFS stream called "ZoneIdentifier".



Two steps forward, one step back

by Matt 21. November 2006 16:41

That's Vista RTM installed then. Yes, I've got new sounds, but my display problems have gotten worse. RC2 had problems with resuming from sleep and hibernate. An impressive reboot-free update made things better (and improved my Experience Index to boot!) so I had high hopes for RTM.

Unfortunately, that was not to be. I wasn't connected to the internet at install time, and got saddled with the standard VGA driver (Experience Index of 1.0. Booo!)

Windows Update got me an NVidia driver that supports glass, but has bigger problems with power. After sleep, I get well over a hundred balloon notifications that "Display driver nvlddmkm stopped responding and has successfully recovered." (I think this might be a notification from the event log, which is interesting). Not good.

On the plus side, the display driver restarting doesn't blue screen the machine. And reporting the problems to Microsoft shows off the massively improved Windows Error Reporting, resulting in the message that the "Error is being researched", but there's no fix yet. Looks like I'll just have to download the latest nvidia drivers off the net (I think Vista's got 97.17, and the nvidia site has 96.85).

And the new startup sound? Don't like it - it's one of those corporate identity jingle things that Intel's Pentium popularised. At least it's not as irritating as Philips two-tone jingle.



Vista video problems solved. Sort of.

by Matt 10. November 2006 03:59

So, my biggest problem with Vista was losing my display when I put the computer into sleep mode.

But that's ok - I got a new video driver the other day, and it's solved it. I close the lid on my laptop, and when I reopen it, I can still see what I was working on!

Shame about hibernation then. Hibernated the machine yesterday, booted up this morning, black screen. Quick spot of lateral thinking later - close the lid, reopen - and the display is back on again.

Nice workaround, but I think I'll be happier with the RTM bits.



Missing Vista feature #2 - reboots

by Matt 8. November 2006 18:31

I've just run a Windows Update on Vista and it found a new driver for my graphics card. I'm warned that I might need to reboot - no surprise there. Off it goes, downloading in the background. Several minutes later, the screen flickers, goes black and pops back to life. New driver, fully installed, no reboots. That's just plain showing off.

PS. If you're interested, #1 missing feature was the notification API.



Vista and the Desktop Search protocol handler

by Matt 1. November 2006 17:03

Of course, installing Vista does make developing a WDS protocol handler just a tad more awkward. You see, as I hinted at before, I'd rather build on WDS 2.6.x and Vista comes with 3.0.

The major difference between the two is that 2.x runs in the context of the logged on user, and 3.0 runs as a service. And the msfeed APIs get you the feeds for the currently logged on user. I'd rather solve the Vista-runs-as-a-service problem separately to solving the write-a-working-protocol-handler problem.

Good old virtualisation to the rescue. I'll have a Windows XP image up and running in no time.


Windows Desktop Search | Vista

Extended verbs in shell context menus

by Matt 27. October 2006 10:05

 A little while back, Tim Sneath posted a rather nice Vista tip.

Here's a trick that I don't think many people are aware of. Right-click on any folder on your Windows Vista machine while holding down the shift key. You'll see an extra context-sensitive menu item there: Open Command Prompt here. Just click on this menu and a command window will open with the current working directory set to the folder's actual location.

Now, this is a really nice thing. I've always installed the "command prompt here" power toy - now I don't have to. It's even better than the old version, too. It can automatically map a drive letter when you're browsing a UNC path, and it's available when right clicking on the background of a folder view, so you don't have to have the folder tree view visible.

And that's where you spot the bug. At least on my RC2 (5744) build, when you shift-right-click the folders in the folder tree view, it doesn't show up. This made me to wonder if it was a folder view thing. In other words, it wasn't a shell extension defined in the registry, but was a feature of the context menu in the folder view, something the tree view didn't have access to.

Fire up regedit (yes, UAC, I really meant to) and navigate to HKCR\Directory. There's a "cmd" key under both Background\shell and just shell. These both have a "command" key that specifies the cmd.exe command line to run. So, it's not a folder view thing, but a bug in the tree view. Fair enough.

The interesting part is in the "cmd" key. There's a value called "Extended". Knowing my shell extension terminology, there's a flag that gets passed through to a context menu extension called CMF_EXTENDEDVERBS. This tells the context menu to display an extended list of items - items that would normally be hidden. It's usually passed when you hold down shift. Looks like you can also specify it in the registry, too.

And this isn't just a Vista thing, either. It all works under XP, too. Handy thing to know.

Source: Tim Sneath : Windows Vista Secret #1: Open Command Prompt Here


Vista | Shell Extensions | Context Menu Handlers

Vista problems

by Matt 27. October 2006 02:35

I should have mentioned this in my last post, but I got all carried away about how nice it is.

It's not all a bed of roses. You can still tell at points that it's a beta product. Or at least, I hope that's why it's not working properly.

My biggest problem is power management. I can't let the computer go into sleep mode, because it never really recovers. The lights go and the disk flashes, but there's no screen. I guess I need newer display drivers (that I can't yet find on the interweb). Battery life doesn't seem brilliant, either - I guess the graphics keeps things busy.

The only other real problem has been trying to get Visual Studio Team Explorer installed with User Access Control. It just wouldn't do it. I had to disable UAC, reboot and try again. Unfortunately, when I was trying again, I ran a different setup program that worked first time, so I don't know if it was a compatibilty problem with the setup wrapper, or UAC (which is back on again - it's actually quite a nice security blanket).

If those are my only problems, I'm sorted.




Month List


Comment RSS