Sunday, November 22, 2009

The Network and Sharing Center: A new approach to networking hell

The networking stack in Windows Vista underwent a near total rewrite (for the better I'd say because we wouldn't be enjoying all the cool advanced networking features of Windows 7 without the foundation being laid). However, one of the most disgusting user interface overhauls which accompanied it is the Network and Sharing Center. You see, Microsoft wanted the whole focus of networking to be on sharing and they really wanted to promote that in a big way so users would set up home networks. To achieve this goal, Microsoft made radical changes to the networking UI to the extent that the very locations where we set up network settings and make configuration changes before we enable sharing got buried deep inside several clicks and UAC prompts to top them, venting severe user frustation and criticism.

Instead of letting users configure how to group connection icons, all types of connection icons are now grouped under a single icon in the notification area. Wired (ethernet), wireless, dial up, PPPoE, incoming and outgoing VPN connections, connections through UPnP internet gateways - everything is represented by that single Network icon without the choice being available to the user as to what connection icons he wishes to show so he can check their status,  and which ones he does not wish to be displayed. Ethernet connections especially, are poorly represented or should I say, not given any direct way to interact with at all!

Windows XP gives 2 click access to an ethernet connection's settings (Properties) should any IP addresses be required to be changed, as well as 1 click access to an ethernet connection's status, firewall settings, the Repair  action and disabling/enabling its adapter. The Status dialog is important as it shows several important details such as duration of the connection, bytes/packets sent and received, IP addresses of the client, the gateway, DHCP and DNS servers as well as the MAC address. Neither Windows Vista nor Windows 7 offer quick access to this information although Windows 7 improves slightly upon Windows Vista by treating wireless, dial-up, PPPoE and VPN connections in a manner similar to Windows XP. It still takes 3 clicks to access their properties, status or connect/disconnect them. Windows XP also introduced a nifty single click Repair  action which merely automates a series of steps that reset the network connection (which can also be performed using the command line -> ipconfig /renew, /release and disabling/enabling the adapter). Most of the times, this was handy but unfortunately Windows Vista replaces it with new Network Diagnostics and Troubleshooting capabilities which although far more sophisticated, are not necessary most of the time.

Windows XP also showed an icon in the notification area and in Network Connections for connections set up through UPnP Internet Gateway Devices (IGDs), as long as the IGD Discovery and Control client was installed. Double clicking the icon in Network Connections initiated a connection to the Internet via the gateway device (such as a home router or an ICS enabled computer) eliminating the need to manually connect (should be need arise) through the router's HTML-based administration interface. The notification area icon showed status information similar to an Ethernet connection icon but additionally offered a Settings button to set up or view NAT port mappings established by the gateway device using UPnP or manually. This is true eXPerience of UPnP NAT traversal. Thankfully, the NAT port mappings can still be set up, although, from the gateway device's Properties -> Settings in Network Explorer, a dialog hard to discover.

The Network and Sharing Center  introduced in Windows Vista tries to confuse the networking-shy average user by mixing up similar sounding links:
1. Connect to a network - which brings up a separate window dialog box usually with scroll bars which omits Ethernet connections and requires clicking a non-sensical Close button every time. Windows 7 improves upon this UI by replacing the weird dialog box with a Popup pane directly above the notification area Network icon.
2. Manage wireless connections - which brings up the wireless connections box window but most annoyingly in a new Explorer window. Windows 7 opens this in the same window.
3. Set up a connection - which brings up the usual New connection wizard, with some stages of the wizard requiring clicking on an action and then clicking Next while other parts featuring command links.
4. Manage network connections - which opens the familiar Network Connections folder again in a new window. Windows 7 opens this in the same window.

The hyperlink style buttons links to "View status" and "Disconnect" have such a narrow area to click that positioning the pointer accurately over these and clicking quickly becomes immensely frustrating. Below them lie several collapsible pains panes to configure Sharing, which again can only be expanded  by clicking on a tiny round button. (Windows 7 improves upon this by narrowing the number of collapsible panes to just two - by network type: Public or Private and allowing them to be expanded by clicking anywhere horizontally on their header line). Windows 7 however, annoyingly again changes the nomenclature of the above 4 links. And really, how many features all prefixed "Network ..." do we need? Network Connections, Network and Sharing Center, Network Explorer (weirdly called so in the documentation but called simply Network in the UI) and their constant changing nomenclatures in every release?

The Network Map feature is genuinely useful and the Windows Vista Network and Sharing Center does have a useful area at the very bottom which shows all the files and folders users at sharing at any instant. Sadly, this feature is relegated back to Fsmgmt.msc in Windows 7. The Network Explorer (formerly Network Neighborhood and then My Network Places) displays a unified list of all computers on the network, no longer housed under an organized tree view of workgroups or domains. This also slows down the process of populating computers which we may need to access right away.

The Start menu appears to be deliberately crippled to not allow expanding "Connect To" as a menu (like Windows XP) but instead bringing it up as the weird window dialog box which requires clicking Cancel or Close (in Windows Vista); or making the user move the pointer to the other end of the screen to actually connect (in Windows 7). The once familiar Network Connections folder which contains adapter settings and dial-up/remote access connections most annoyingly lacks the wizard to set up a new connection (it has as mentioned above been moved to the Network and Sharing Center). The Set Network Location window which is an intuitive feature for the Windows Firewall to set different security policies depending on the location: Public or Private, fails to mention to the average user that a gateway must be manually or automatically assigned in the first place for the connection to be "Identified".

Windows 7 comes with its own set of evils such as removing the useful network activity animation in the notification area. It also attempts to revolutionize sharing with the introduction of HomeGroup - now that is a different story that HomeGroup is broken by design and has a huge security/privacy flaw because it shares the entire user folder using SMB sharing on downlevel operating systems and doesn't get its permissions right. Plus without real downlevel operating system support in spite of countless users requests, HomeGroup is not exactly getting the love it deserved.

As much as we would like networks to be always operable and stable, they aren't. Networks connections are fragile which is why the administrator needs quick access to advanced settings. The above UI redesigns make setting up and repeatedly reconfiguring networks so annoying that users and administrators alike are left cursing the UI for slowing down their workflow.

Saturday, November 21, 2009

The shell team's OCD with sorting and arranging

The annoyance I am writing about in this article is one of the most horrific experiences provided courtesy of the shell team in Windows Vista and Windows 7. Essentially, they have an OCD concerning sorting and arrange files and folders in Windows Explorer. They feel automatically and immediately sorting/refreshing all items in Windows Explorer folders all the time will make life easy for users; they see no reason to give the user a choice even after several users have been complaining about this since the release of Windows Vista.

It was all fine and sensible up to Windows XP where newly created files (files pasted, downloaded or extracted from an archive) and newly created folders appeared at the end of the list of icons in any view, be it list view, details view or icon view. It was only after refreshing the view that they got logically sorted by the user-chosen sort criteria in Windows Explorer. The same behavior was in effect when renaming items. It is also why we have a Refresh button on the toolbar and in the View menu in Windows Explorer. But in Windows Vista and Windows 7 Explorer, all items are continuously sorted whether we would like it or not; we simply have no choice.

This creates several horrible issues when working with large numbers of files and folders, for example, in scenarios such as extracting/pasting several items into a folder already containing several items, it scatters them all over. This behavior also presents a problem when serially renaming items listed one after the other or simply if we wish to select multiple items after they have been pasted or created and we are not done working with them yet. In Windows 7, the "New folder" is sorted even before the user has given it a name and quite a number of times I have ended up with this error message:
This error finally made me throw up. I mean, what crap! Has this OS gone downhill! Alas if it had only stopped at this! The sort order has also been totally screwed up. Each sort criteria (name, size, type, date modified, date created etc) now has a different (depending on the criteria) sort order which may be Ascending or Descending (or anyone's guess). On the desktop for example, where usually if Auto Arrange is not enabled, before sorting, files may be lined up but sorted by date created, not sorted by any specific order but yet lined up as they were created or scattered across the desktop if "Align icons to grid" is also unchecked. If I do a "Sort by name" once and for the first time, on the desktop, it sorts in Descending order by name as well as by type so that all the folders appear at the end. It does not even exclude items like the Recycle Bin which also appear at the extreme end. Every time I have to sort twice by name to get items on the desktop sorted by name in Ascending order. Likewise, if I sort by "Date modified", it does so in Descending order as well as sorts (in Descending order) by type. What a disaster they have managed to create, of sorting!

As I said before, not many users are happy about this particular annoyance but instead of fixing it, what does Windows 7 do? It removes the Sort bar which debuted in Windows Vista except for Details view. The Sort bar allowed sorting items 1-click by any criteria merely by clicking on the header in any view. It was one of the few good enhancements made in Windows Vista (Windows 95 and all versions prior to Windows Vista have always had the Sort bar only in Details view) and now they managed to ruin that as well. Plus you can no longer freely arrange items by dragging, in any folder in Windows Explorer; you can only do so on the desktop. Items are now always aligned to grid and always auto arranged. To top it all, a catastrophic bug further wrecks this by de-selecting any selected item when sorting. Really Microsoft? Is this all the testing you could do when introducing a new view control?

Another mis-feature that I wish to highlight is from the Wikipedia article: "The Arrange By/Stack By options are only available for libraries and folders included in libraries. Plus, users can only stack by predefined categories depending on the library type. For example, users can only stack by Folder, Album, Artist, Song, Genre, and Rating for the Music library, whereas in Windows Vista, users could stack by any properties that exist for a file (common examples would be bit rate, year, composer, play count ..etc for audio files)." Clearly, limiting our choice seems to be their only goal. I doubt they even understand the difference between Auto Arrange and Align to Grid (the former aligns items to grid as well as sorts them by a specific order). What we have enjoyed for a decade now since Windows 95 is suddenly taken away from us for no reason? Microsoft simply refuses to give a choice about sorting and arranging. What is this if not an OCD?

The new Start menu also suffers from weird sorting behavior for which I have not been able to observe any specific pattern except one obvious annoyance - all the folders are dumped below and single items are put above. Yet again we get no choice.

This auto sorting in Explorer is an extremely serious usability flaw and the people on the Windows Shell team who do not understand it need to be fired for this issue which causes files to jump in a folder!! It makes Windows Vista/7/8 Explorer UNUSABLE.

I must say the Windows Shell team has failed to produce a usable shell after all the promises of Longhorn.

Friday, November 20, 2009

Why are removed features not explained, documented, accounted for, replaced or updated and reinstated?

Since the development of Windows Vista and the adoption of the Security Development Lifecycle, Microsoft has been touting a "responsible disclosure" attitude which means "don't say anything unless you're sure you can ship". While this in most cases is about reporting software vulnerabilities discovered by third parties to Microsoft (so MS can take their time to patch and test them), it also applies to any new feature announcements for a  future version of a product. What they lack is a analogous "responsible removal" approach. Features are removed without any explanation being given, nor are all of them documented on MSDN. There's no one accountable when the infuriated user asks about a particular removed feature; nor does Microsoft provide a quick hotfix to resolve the issue or suggest appropriate third party replacements in all cases.

Features get removed during the beta too if the whole experience is not robust enough to ship (which is absolutely normal) but even then they are not documented. Case in point: Windows SteadyState. Its main component, Windows Disk Protection was improved upon to require only a logoff instead of a reboot to undo all changes, renamed as Guest mode and was included in the Windows 7 beta, yet it silently disappeared in the RC. Poor users who used it daily on Windows XP and Windows Vista are left longing forever. They are asking for it in Microsoft's forums: here, here, here, here, here, here, here, here and here. Other features which shared the same fate include: Native Bluetooth audio support, Accelerators for Windows (the Accelerator platform made it in), RSS Desktop Slideshow (which also managed to get in and is documented and supported in the INI theme file supplied but without an end user GUI),  Removing beta features is perfectly normal though, in contrast to removing features shipping in an earlier Windows OS which is absolutely pathetic. In both cases, Microsoft does a poor job of documenting them and their reasons and an even poorer job of fixing them once users start complaining.

Setting a custom background for folders is not possible in Windows 7

Back in the IE4 days, if you installed the Windows Desktop Update for Windows 95 or happened to be using Windows 98, you could customize folders on your computer to your heart's content using a built-in folder customization wizard (IEShWiz.exe). It allowed users to assign a background image to the folder, add an InfoTip (tooltip) for that folder or apply an HTML based template, with an HTT (Hypertext template) extension. Windows 2000 went a step ahead in allowing the degree of customization. The HTT feature was abused by malware. The "Web View" which displayed the output of these customizations wasn't exactly performant either.

Therefore, the "Web view" and HTT customization features were dropped in Windows XP but their removal was justified. So Microsoft removed the wizard altogether and thankfully replaced it somewhat with a Customize tab in the folder's Properties which allows customizing the folder's view, icon and thumbnail view. Fortunately, the customization capabilities offered by desktop.ini since IE4 were left infact, which means you could create a hand edited desktop.ini to change the folder background or add an infotip among dozens of other customizations or copy over IEShWiz.exe from an older version of Windows to the folder you wanted to customize and run it.

The Customize tab doesn't have the background customization option but it is still supported. Because background customization does not have a GUI, few people know about it so its removal doesn't bother them.
Much to my annoyance, Windows Vista came along and removed that ability as well. You can't set a folder background any more as far as I know. Again, the community came to the rescue and several tools cropped up, one of which is Ave's Vista Folder Background. This is a shell extension which adds a nice Property Sheet to the folder's properties à la Windows XP's Customize tab. Windows 7 apparently comes with a new ListView control for Explorer which (I presume) breaks all such methods and so now the folder background customization feature is gone till someone writes a background customization shell extension specifically for Windows 7 (which anyone hardly does today, they are all up there twittering except a few) .

Desktop.ini now serves other annoying purposes such as appearing on the desktop when hidden and system files are set to show.