All posts by onlyconnect

Windows Vista designer pops up to explain and defend Windows 8

I wrote a first look for Windows 8 Release Preview for The Register which prompted, as you would expect, a barrage of comments from Reg users, most expressing distaste for Redmond’s latest. Buried on page three of the comments though is this one which is worth calling out, since it explains some of the thinking behind Aero Glass in Windows Vista and how that same thinking is expressed in the Metro design – though note that the user mdc (who is that?) says in a later comment that he has “moved into a different field entirely (photography)” so is not responsible for Metro or Windows 8.

image 

Anyway, mdc observes that Microsoft has been working for years on the idea of a “content-centric” user interface, one where the surrounding chrome disappears so that content is king. In this respect, Glass can be seen as a move towards the Metro immersive UI:

The initial premise for Glass (as it was called back then, the Aero UX sprung up around the Glass model) was not – as most people believe – to provide eye candy for the end user. Instead, it was an attempt to pull the window chrome away from the content and make it as unobtrusive as possible. The whole point of the glass effect itself was to allow the end user to make better use of their screen real-estate by allowing them to see content beneath the active window.

Glass was not radical though, and did not change the model of multiple overlapping windows. According to mdc though, something more revolutionary was considered for Vista:

Some of my other concepts promoted a VERY different approach to the user experience, much more in line with what is seen today in Windows 8. In fact, the premise for the shift in the desktop paradigm goes back as far as the early Blackcomb concepts first demoed by the MSN services division in 1999; it has ALWAYS been felt that the desktop itself is a rather clunky way of providing content to the end user, which is – after all – the purpose of computing devices, be they traditional desktops, laptops, phones, or even set-top boxes. Windowing systems were designed to allow users to work on multiple pieces of data in quick succession, and yet over the years usability studies have found that users rarely manipulate more than 2 documents simultaneously.

In the end the idea was rejected, partly because of the work involved, and partly because Microsoft’s Jim Allchin, among others, felt that the familiarity of the Windows user interface was an important selling point versus the competition.

Apparently we  are wrong to imagine that Windows 8 is based on the Windows Phone design:

While some have suggested that Windows 8’s interface is "touch-only" or "based on Windows Phone 7", that couldn’t be further from the truth. Windows Phone 7 was instead a pilot program – in a relatively low risk sector – for the designs originally suggested for Blackcomb, which have now found their way into Windows 8. At the time, touch interfaces hadn’t even been conceived of – remember, back then touch sensitive screens were Resistive nasties that required at best a stylus, or at worst jabbing at them hard with a finger or pen.

The fact is that Metro just happened to be easily accessible for touch devices, and that has been touted as one of its benefits; it is NOT, and never has been, the original aim of the design. The aim of the design is exactly the same as Aero was – to take the chrome away from the content, and allow the user to focus on what they’re doing rather than unnecessary clutter. A perfect example of this is internet Explorer on Metro; in its default state, all you see is a webpage; chrome CAN be pulled up if the user requires, but is otherwise absent. The majority of Metro applications are like this – in fact it’s part of the Metro UX specifications.

and he adds:

Personally, I see Metro as a good thing; it allows me to do my work without distraction, and I’m just disappointed that I wasn’t the one who did the design work for it this time around.

Windows 8 Metro is not just about touch then: it is a reshaping of the user interface to put content first.

Huge icons in Windows 8 Metro

This is the SkyDrive Metro-style app running on my 1280 x 1024 desktop, in its default view. Note that each icon is 185 x 211 px. The actual title of each document is in relatively small text though still readable.

image

On my slate I only get two rows per screen:

image

You can set it to Detail view which gives nine rows on the desktop display and six rows on the slate.

Touch-friendly, undoubtedly, but is this really best-practice design? What if you have lots of documents in a folder? I suppose it is just swipe-swipe-swipe, not helped by the fact that the SkyDrive app cannot be searched:

image

nor is there any way that I can see to sort the documents, say by last modified.

Of course you can do all these things in the touch-hostile desktop application.

Both the app and Windows 8 itself are pre-release so may improve, but I would like to see a smarter approach to browsing and selecting documents in Windows 8 Metro-style.

For more on Windows 8, see my review on The Register.

New Windows 8, new Visual Studio 2012

Microsoft has released the Release Candidate of Visual Studio 2012 (now the official name), which you can download here, to coincide with the release of Windows 8 Release Preview and Windows Server 2012 Release Preview.

Visual Studio also has a new logo, as you can see from the setup window below.

image

Microsoft’s Jason Zander has posted about the new release here. Some of the main areas of difference between the RC and the Beta are:

  • Better performance
  • User interface tweaks including the return of a little more colour to the product
  • Solution Explorer filtering
  • New Metro style app templates
  • Improved XAML and Blend designers
  • Updated ASP.NET 4.5 web forms to support the await keyword
  • Tweaks to LightSwitch, Team Foundation Server, Architectural Tools

There is also a more detailed post by Scott Hanselman on what’s new in web development here.

Windows 8 Release Preview now available, Adobe Flash included, finished version expected August 2012

Microsoft has made the Release Preview of Windows 8 available to download. So what’s new?

image

The press release:

  • Confirms that a “touch-friendly and power-optimized Adobe Flash Player” is integrated into Internet Explorer 10
  • Announces new Family Safety features
  • States that IE10 is “Do not track” by default
  • Announces new apps and improvements to existing ones

All of which will come as a disappointment to those hoping for any sort of change of direction following a mixed-to-negative reception for the Consumer Preview.

Windows chief Steven Sinofsky says:

If the feedback and telemetry on Windows 8 and Windows RT match our expectations, then we will enter the final phases of the RTM process in about 2 months.

My guess that feedback along the lines of “Bring back the Start menu” will not count as an obstacle.

Developers like coding in the dark

Many developers prefer to code against dark backgrounds, according to this post by Monty Hammontree, Director of User Experience in Microsoft’s developer tools division.

Many of you have expressed a preference for coding within a dark editor. For example, dark editor themes dominate the list of all-time favorites at web sites such as http://studiostyl.es/ which serve as a repository for different Visual Studio styles.

Chief among the reasons many of you have expressed for preferring dark backgrounds is the reduced strain placed on the eyes when staring at the screen for many hours. Many developers state that light text on a dark background is easier to read over longer periods of time than dark text on a light background.

image

Personally I am not in this group. A white-ish background works well for me, and if it is too bright, simply reducing the monitor brightness is an effective fix.

Interesting post though, if only for the snippets of information about the new Visual Studio. Apparently it has around 6000 icons used in 28,000 locations. Another little fact:

Visual Studio’s UI is a mix of WPF, Windows Forms, Win32, HTML, and other UI technologies which made scrollbar theming a challenging project.

If you will be using Visual Studio 2012, are you on the dark side?

The application that would not uninstall

I install a ton of pre-release and test software so it is not surprising that I sometimes run into Windows Installer issues. Here is an entertaining error though. It is unlikely, I guess, that you will hit this problem; but I present it as an illustration of what can go wrong, as we move into the era of locked-down operating systems and easy app installs. Though even these are not perfect. Notice how the operating system fights me all the way.

Years ago I installed Microsoft’s Office Labs Ribbon Hero, a tutorial add-on for Office. At the time I was running Windows Vista. Since then I have done an in-place upgrade to Windows 7. I tried to remove it today through Control Panel and got this message:

image

After presenting this information setup closed and the application was not uninstalled.

So … the application does not support Windows 7 and therefore you cannot remove it. Clever, and I found this a tricky problem to get around.

I took a look at the Windows installer files which you can find in %SYSTEMROOT%\Installer. All the msi files have random names. However, you can right-click the column heading area and choose More, then check Subject in the list. Click OK, and now the application to which each msi relates appears.

image

Now you can click the column heading to sort by subject and find the problem msi.

image

I copied the msi to my desktop.

For the next step you need the Orca tool from the Windows Installer SDK. If Orca is installed, you can right-click the MSI and choose Edit with Orca.

image

I then selected LaunchCondition and deleted the launch condition that required Windows XP.

INSTALLED OR VersionNT = 501 OR APPLYING_AUTOUPDATE

Hmm, something odd here as it should pass INSTALLED? Still, save, right-click the msi, choose Uninstall. You still hit the error. Why? Somehow, Windows works out that you are uninstalling a product for which an msi exists in the official location and uses that one instead. You have to copy your modified msi to the correct location. Open an administrator command prompt:

image

Now right-click the msi and choose Uninstall.

It worked. Phew.

Adobe Flash in Windows 8 Metro, but not technically a plug-in

Today’s Windows 8 rumour is that Adobe Flash will be baked into Internet Explorer 10 in Windows 8, not only in the desktop edition but also in Metro.

Until this is confirmed by Microsoft, it is only a rumour. However, it seems likely to me. The way this rumour mill works is:

  • Some journalists and book authors working closely with Microsoft already have information on Windows 8 that is under non-disclosure.
  • Some enthusiast sites obtain leaked builds of Windows 8 and poke around in them. Unlike new Mac OS X releases, Windows builds are near-impossible to keep secure because Microsoft needs to share them with hardware partners, and mysteriously copies turn up on on the Internet.
  • When an interesting fact is leaked, this allows those journalists and book authors who already have the information to write about it, since most non-disclosure agreements allow reporting on what is already known from other sources.

That is my understanding, anyway. So when you read on WinUnleaked.tk that Flash is in IE10 you may be sceptical; but when Paul Thurrott and Rafael Rivera report the same story in more detail, you can probably believe it.

Back to the main story: presuming this is accurate, Microsoft has received Flash source code from Adobe and integrated it into IE10, in a similar manner to what Google has done with Flash in Chrome. This means that Flash in IE10 is not quite a plug-in. However, on the Metro side the inclusion of Flash is apparently a compatibility feature:

So, Microsoft has extended the Internet Explorer Compatibility View list to include rules for popular Flash-based web sites that are known to meet certain criteria. That is, Flash is supported for only those popular but legacy web sites that need it. This feature is not broadly available for all sites.

say Thurrott and Rivera, though I presume this only applies to the Metro IE10 rather than the desktop version.

Does this make sense? Not altogether. Oddly, while I have heard plenty of criticism of Windows 8 Consumer Preview, I have not heard many objections to the lack of Flash in Metro IE. Since Apple does not support Flash on iOS, many sites already provide Flash-free content for tablet users. Further, on the x86 version of Windows 8 there is an easy route to Flash compatibility: just open the site in the desktop browser.

That said, there is still plenty of Flash content out there and being able to view it in Windows 8 is welcome, especially if you can make your own edits to the compatibility list to get Flash content on less well-known sites. My guess is that Microsoft wants to support Flash for the same reason Android devices embraced it: a tick-box feature versus Apple iOS.

One further thought: this is a sad moment for Silverlight, if Microsoft is supporting Flash but not Silverlight on the Metro side of Windows 8.

Making sense of Microsoft’s Windows 8 strategy

Here are two things we learn from Jensen Harris’s post of 18 May.

image

First, Microsoft cares more about WinRT and Metro, the new tablet-oriented user interface in Windows 8, than about the desktop. In the section entitled Goals of the Windows 8 user experience, Harris refers almost exclusively to WinRT apps. Further, he asks the question: what is the role of desktop in Windows 8?

It is pretty straightforward. The desktop is there to run the millions of existing, powerful, familiar Windows programs that are designed for mouse and keyboard. Office. Visual Studio. Adobe Photoshop. AutoCAD. Lightroom. This software is widely-used, feature-rich, and powers the bulk of the work people do on the PC today.

Does that mean the desktop is for legacy, like XP Mode in Windows 7? Harris denies it:

We do not view the desktop as a mode, legacy or otherwise—it is simply a paradigm for working that suits some people and specific apps.

He adds though that “We think in a short time everyone will mix and match” desktop and Metro apps – though he does not call them Metro apps, he calls them “new Windows 8 apps.”

Second, Microsoft considers that the poor reaction to the Consumer Preview can be fixed by tweaking the detail rather than by changing the substance of how Windows 8 is designed.

But fundamentally, we believe in people and their ability to adapt and move forward. Throughout the history of computing, people have again and again adapted to new paradigms and interaction methods—even just when switching between different websites and apps and phones. We will help people get off on the right foot, and we have confidence that people will quickly find the new paradigms to be second-nature.

In fact, this post is peppered with references to negative reactions for previous versions of Windows. Microsoft is presuming that this is normal and that history will repeat:

Although some people had critical reactions and demanded changes to the user interface, Windows 7 quickly became the most-used OS in the world.

This is revisionist, as I am sure Harris and his team are aware. The reaction to Windows 7 was mainly positive, from the earliest preview on. It was better than Windows Vista; it was better than Windows XP.

Windows Vista on the other hand had a troubled launch and was widely disliked. User Account Control and its constant approval prompts was part of the problem, but more serious was that OEMs released Vista machines with underpowered hardware further slowed down by foistware and in many cases it Vista worked badly out of the box. You could get Vista working nicely with sufficient effort, but many just stayed with Windows XP.

The failure of Vista was damaging to Microsoft, but mitigated in that most users simply skipped a version and waited for Windows 7. The situation now is more serious for Microsoft, both because of the continuing popularity of the Mac and the rise of tablets, especially Apple’s iPad.

It is precisely because of that threat that Microsoft is making such a big bet on Metro and WinRT. The reasoning is that while shipping a build of Windows that improves on 7 would please the Microsoft platform community, it would be ineffective in countering the iPad. It would also fail to address problems inherent in Windows: lack of isolation between applications, and between applications and the operating system; the complexity of application installs and the difficulty of troubleshooting them when they go wrong; and the unsuitability of Windows for touch control.

There is also a hint in this most recent post that classic Windows uses too much power:

Once we understood how important great battery life was, certain aspects of the new experience became clear. For instance, it became obvious early on in the planning process that to truly reimagine the Windows experience we would need to reimagine apps as well. Thus, WinRT and a new kind of app were born.

Another key point: Microsoft’s partnership with hardware manufacturers has become a problem, since they damage the user experience with trialware and low quality utilities. The Metro-style side of Windows 8 fixes that by offering a locked-down environment. This will be most fully realised in Windows RT, Windows on ARM, which only allows WinRT apps to be installed.

Microsoft decided that only a new generation of Windows, a “reimagining”, would be able to compete in the era of BYOD (Bring Your Own Device).

One thing is for sure: the Windows team under Steven Sinofsky does not lack courage. They have form too. Many of the key players worked on the Office 2007 Ribbon UI, which was also controversial at the time, since it removed the familiar drop-down menus that had been in every previous version of Office. They stuck by their decision, and refused to add an option to restore the menus, thereby forcing users to use the ribbon even if they disliked it. That strategy was mostly successful. Users got used to the ribbon, and there was no mass refusal to upgrade from Office 2003, nor a substantial migration to OpenOffice which still has drop-down menus.

I have an open mind about Windows 8. I see the reasoning behind it, and agree that it works better on a real tablet than on a traditional PC or laptop, or worst of all, a virtual machine. Harris says:

The full picture of the Windows 8 experience will only emerge when new hardware from our partners becomes available, and when the Store opens up for all developers to start submitting their new apps.

Agreed; but it also seems that Windows 8 will ship with a number of annoyances which at the moment Microsoft looks unlikely to fix. These are mainly in the integration, or lack of it, between the Metro-style UI and the desktop. I can live without the Start menu, but will miss the taskbar with its guide to running applications and its preview thumbnails; these remain in the desktop but do not include Metro apps. Having only full-screen apps can be irritation, and I wonder if the commitment to the single-app “immersive UI” has been taken too far. When working in Windows 8 I miss the little clock that sits in the notification area; you have to swipe to see the equivalent and the fast and fluid UI is making me work harder than before.

I believe Microsoft will listen to complaints like these, but probably not until Windows 9. I also believe that by the time Windows 9 comes around the computing landscape will look very different; and the reception won by Windows 8 will be a significant factor in how it is shaped.

Microsoft appeals to Windows 8 Metro developers not to stray from the official API

Microsoft’s John Hazen has posted on the official Building Windows 8 blog about the security and reliability principles in the Metro platform in Windows 8. Hazen explains how apps are installed from the Windows store, use contracts to interact with the operating system, and have to ask user consent for access to device capabilities such as the webcam or GPS, or to access user data such as documents and music.

The most intriguing part of the document comes when Hazen appeals to developers to stick to the API that is referenced in the official Windows 8 Metro SDK:

Resist the temptation to find ways to invoke APIs that are not included in the SDK. This ultimately undermines the expectations that customers have for your app. APIs that are outside the SDK are not guaranteed to work with Metro style apps either in this release or in future releases, so you may find that your app doesn’t function properly for all customers. These APIs may also not function properly in the async environment that is foundational to Metro style app design. Finally these APIs may undermine customer confidence by accessing resources or data that Metro style apps would not normally interact with. For all these reasons, we have provided checks in the Windows App Certification Kit to help you catch places where you might have inadvertently called interfaces not exposed by the SDK.

While it is possible to hide or obfuscate calls to APIs that are not included in the SDK, this is still a violation of customer expectations and Store policy. In the end, we have created this platform to help developers like you to build amazing apps that work well with the system and with other apps and devices to delight customers. Working with the Metro style SDK is fundamental to your realizing that goal.

The worrying aspect of this appeal to developers to play nice is Hazen’s admission that crafty developers may find ways to escape the Metro sandbox, undermining both the security and the privacy protection built into Metro. The main protection against this is such such an app should be blocked from the Windows Store, but can Microsoft check with 100% confidence that no hidden or obfuscated API calls exist? How effective is the Metro sandbox?

My guess is that the danger will be greater on the x86 version of Windows 8 than in Windows RT, which is locked down to prevent any third-party desktop applications from being installed. Nevertheless, a large part of the non-Metro Windows API must exist in Windows RT, to support the desktop, Explorer and Microsoft Office.

Programming NVIDIA GPUs and Intel MIC with directives: OpenACC vs OpenMP

Last month I was at Intel’s software conference learning about Many Integrated Core (MIC), the company’s forthcoming accelerator card for HPC (High Performance Computing). This month I am in San Jose for NVIDIA’s GPU Technology Conference learning about the latest development in NVIDIA’s platform for accelerated massively parallel computing using GPU cards and the CUDA architecture. The approaches taken by NVIDIA and Intel have much in common – focus on power efficiency, many cores, accelerator boards with independent memory space controlled by the CPU – but also major differences. Intel’s boards have familiar x86 processors, whereas NVIDIA’s have GPUs which require developer to learn CUDA C or an equivalent such as OpenCL.

In order to simplify this, NVIDIA and partners Cray, CAPS and PGI announced OpenACC last year, a set of directives which when added to C/C++ code instruct the compiler to run code parallelised on the GPU, or potentially on other accelerators such as Intel MIC. The OpenACC folk have stated from the outset their hope and intention that OpenACC will converge with OpenMP, an existing standard for directives enabling shared memory parallelisation. OpenMP is not suitable for accelerators since these have their own memory space.

One thing that puzzled me though: Intel clearly stated at last month’s event that it would support OpenMP (not OpenACC) on MIC, due to go into production at the end of this year or early next. How can this be?

I took the opportunity here at NVIDIA’s conference to ask Duncan Poole, who is NVIDIA’s Senior Manager for High Performance Computing and also the President of OpenACC, about what is happening with these two standards. How can Intel implement OpenMP on MIC, if it is not suitable for accelerators?

“I think OpenMP in the form that’s being discussed inside of the sub-committee is suitable. There’s some debate about some of the specific features that continues. Also, in the OpenMP committee they’re trying to address the concerns of TI and IBM so it’s a broader discussion than just the Intel architecture. So OpenMP will be useful on this class of processor. What we needed to do is not wait for it. That standard, if we’re lucky it will be draft at the end of this year, and maybe a year later will be ratified. We want to unify this developer base now,” Poole told me.

How similar will this adapted OpenMP be to what OpenACC is now?

“It’s got the potential to be quite close. The guy that drafted OpenACC is the head of that sub-committee. There’ll probably be changes in keywords, but there’s also some things being proposed now that were not conceived of. So there’s good debate going on, and I expect that we’ll benefit from it.

“Some of the features for example that are shared by Kepler and MIC with respect to nested parallelism are very useful. Nested parallelism did not exist at the time that we started this work. So there’ll be an evolution that will happen and probably a logical convergence over time.

If OpenMP is not set to support acclerators until two years hence, what can Intel be doing with it?

“It will be a vendor implementation of a pre-release standard. Something like that,” said Poole, emphasising that he cannot speak for Intel. “To be complementary to Intel, they have some good ideas and it’s a good debate right now.”

Incidentally, I also asked Intel about OpenACC last month, and was told that the company has no plans to implement it on its compilers. OpenMP is the standard it supports.

The topic is significant, in that if a standard set of directives is supported across both Intel and NVIDIA’s HPC platforms, developers can easily port code from one to the other. You can do this today with OpenCL, but converting an application to use OpenCL to enhance performance is a great deal more effort than adding directives.