Windows Archive

Compiler bug? Linker bug? Windows kernel bug.

Flaky failures are the worst. In this particular investigation, which spanned twenty months, we suspected hardware failure, compiler bugs, linker bugs, and other possibilities. Jumping too quickly to blaming hardware or build tools is a classic mistake, but in this case the mistake was that we weren’t thinking big enough. Yes, there was a linker bug, but we were also lucky enough to have hit a Windows kernel bug which is triggered by linkers!

Microsoft documents the limitations of Windows 10 on ARM

This week, however, Microsoft finally published a more complete list of the limitations of Windows 10 on ARM. And that word - limitations - is interesting. This isn't how Windows 10 on ARM differs from Windows 10 on x86-based systems. It's how it's more limited.

None of these things really sound all that surprising to me, but you can bet these limitations - which seem technical in nature, not political - will lead to outcries among some people who buy ARM-based Windows 10 machines.

Designing Windows 95’s user interface

Three years ago I came across an interesting paper written up by a Microsoft employee, Kent Sullivan, on the process and findings of designing the new user interface for Windows 95. The web page has since been taken down - one reason why I’m a bit of a digital hoarder.

It specified some of the common issues experienced from Windows 3.1's Program Manager shell and looked at the potential of developing a separate shell for 'beginners'. Admittedly my inclination was that this was possibly inspired by Apple's At Ease program that was reasonably popular during the System 7 days. I remember At Ease well during my primary school years, so kids couldn’t mess with the hard disk in Finder.

So here's what Kent had to say verbatim in his paper titled "The Windows 95 User Interface: A Case Study in Usability Engineering" so it’s not lost altogether.

However you feel about Windows 95, there's no denying that its user interface is probably one of the most iconic and well-known user interfaces ever designed and developed. Literally everyone knows it and has used it, and it singlehandedly defined what a personal computer's UI should work like. It's incredibly fascinating to read about the thought processes behind its development.

Windows 10 S becoming a mode, not a version

Windows 10 S, the Microsoft Store-only version of Windows, is going away, but not really.

Currently, Windows 10 S is a unique edition of Windows 10. It's based on Windows 10 Pro; Windows 10 Pro has various facilities that enable system administrators to restrict which software can be run, and Windows 10 S is essentially a preconfigured version of those facilities. In addition to locking out arbitrary downloaded programs, it also prevents the use of certain built-in Windows features such as the command-line, PowerShell, and Windows Subsystem for Linux.

For those who can't abide by the constraints that S imposes, you can upgrade 10 S to the full 10 Pro. This upgrade is a one-shot deal: there's no way of re-enabling the S limitations after upgrading to Pro. It's also a paid upgrade: while Microsoft offered it as a free upgrade for a limited time for its Surface Laptop, the regular price is $49.

Nothing much actually seems to be changing; it just turns Windows 10 S from a version into a mode. Pretty much a distinction without a difference. My biggest issue here is that you can't go from regular Windows 10 back to Windows 10 S if you ever had a reason to do so (e.g. if Windows were ever to be usable with just Metro apps in the future and you want the additional security Windows 10 S provides). Seems like an odd restriction.

Microsoft releases update to disable Intel’s Spectre mitigations

Microsoft has released an update that disables Intel's microcode Spectre mitigations.

Intel has reported issues with recently released microcode meant to address Spectre variant 2 (CVE 2017-5715 Branch Target Injection) - specifically Intel noted that this microcode can cause "higher than expected reboots and other unpredictable system behavior" and then noted that situations like this may result in "data loss or corruption". Our own experience is that system instability can in some circumstances cause data loss or corruption. On January 22, Intel recommended that customers stop deploying the current microcode version on affected processors while they perform additional testing on the updated solution. We understand that Intel is continuing to investigate the potential effect of the current microcode version, and we encourage customers to review their guidance on an ongoing basis to inform their decisions.

This whole thing is a mess.

Want to see all data Windows 10 sends Microsoft?

Following the publication last year of the data collected by Windows 10's built-in telemetry and diagnostic tracking, Microsoft today announced that the next major Windows 10 update, due around March or April, will support a new app, the Windows Diagnostic Data Viewer, that will allow Windows users to browse and inspect the data that the system has collected.

While I doubt this tool will alleviate any of the concerns some people have over Windows 10's data collection, it does at least give some insight into what's being sent to Microsoft - assuming, that is, you trust the reporting to be truthful and accurate.

Microsoft challenges Chromebooks with $189 Windows laptops

Microsoft is making a bigger push to keep students and teachers using Windows this week. At the annual Bett education show in London, Microsoft is revealing new Windows 10 and Windows 10 S devices that are priced from just $189. The software giant is also partnering with the BBC, LEGO, NASA, PBS, and Pearson to bring a variety of Mixed Reality and video curricula to schools.

Lenovo has created a $189 100e laptop. It’s based on Intel’s Celeron Apollo Lake chips, so it’s a low-cost netbook essentially, designed for schools. Lenovo is also introducing its 300e, a 2-in-1 laptop with pen support, priced at $279. The new Lenovo devices are joined by two from JP, with a Windows Hello laptop priced at $199 and a pen and touch device at $299. All four laptops will be targeted towards education, designed to convince schools not to switch to Chromebooks.

I'm not sure if these wil persuade schools away from Chromebooks, but assuming non-education customers can get them as well, they may be great little machines for running secondary operating systems on.

What really happened with Vista: an insider’s retrospective

I enjoyed reading Terry Crowley's thoughtful blog (What Really Happened with Vista). Terry worked in the Office organization and did a fantastic job covering the complex machinations that went into Windows Vista and the related but doomed Longhorn project - from an outsider's point of view.

He correctly identified many of the problems that dogged the project and I don't mean to rehash any of them here. I figured it was only fair to try to offer an insider's view of the same events. I can't hope to be as eloquent or thorough as Terry but hope to shed some light on what went wrong. Ten years have gone by since the original release date of Windows Vista but the lessons seem more relevant now than ever.

I really enjoy these stories from people involved with the Vista project. Even though we complained left and right about Vista itself, the release was still hugely important and many of Windows NT's core systems were rewritten from scratch, and we still profit from those reworks and rewrites today.

Doesn't retroactively make using Vista any less painful, though.

Performance impact of Spectre, Meltdown patches on Windows

From Microsoft's blog:

Last week the technology industry and many of our customers learned of new vulnerabilities in the hardware chips that power phones, PCs and servers. We (and others in the industry) had learned of this vulnerability under nondisclosure agreement several months ago and immediately began developing engineering mitigations and updating our cloud infrastructure. In this blog, I'll describe the discovered vulnerabilities as clearly as I can, discuss what customers can do to help keep themselves safe, and share what we've learned so far about performance impacts.

The basic gist here is this: the older your processor and the older your Windows version, the bigger the performance impact will be. Windows 10 users will experience a smaller performance impact than Windows 7 and 8 users, and anyone running Haswell or older processors will experience a bigger impact than users of newer processors.

Unix sockets come to Windows

Support for the unix socket has existed both in BSD and Linux for the longest time, but, not on Windows. On Windows, there were some alternatives for local IPC, such as named pipes. But, calling conventions are different between the named pipes and sockets, making writing low-maintenance cross-platform applications difficult. For example, one such place where these two constructs differ (other than the API) is terminating the connection. BSD Socket API provides a bidirectional close semantics using 'shutdown'. There is no direct equivalent of that in named pipes. Such differences make it difficult to port unix socket applications from Linux to Windows and vice versa; up until now!

Build 17063 brings native support for the unix socket to Windows. Starting this build, two Win32 processes can use the AF_UNIX address family over Winsock API (which is very similar to the BSD socket API) to communicate with each other. Currently, the support only exists for the stream (SOCK_STREAM) socket type, which is a connection-oriented protocol for one-to-one communication. Support for the datagram (SOCK_DGRAM) can be considered in future depending on the adoption, feedback and scenarios.

Another step to make Windows friendlier to UNIX/Linux users and developers.

Microsoft adds an OpenSSH client to Windows 10

Ask just about any *NIX admin using a Windows laptop and they will have come across Putty. For years, Apple MacBooks have been the go-to choice for many admins partly because getting to a ssh shell is so easy. The newly re-invigorated Microsoft is changing how easy it is to interface with Linux (and other *NIX flavors) significantly with features like Ubuntu on Windows. There is a new beta feature in Windows 10 that may just see the retirement of Putty from many users: an OpenSSH client and OpenSSH server application for Windows.

Windows Phone stymied by moving goalposts, just like Symbian

The problem with the tech world is, from an operating system provider's point of view, that the goalposts keep moving. These perambulating pieces of wood killed Symbian, killed Blackberry, have almost killed Windows Phone and Windows 10 Mobile, and, one day, may even kill iOS as we know it today. With hindsight, it's all too clear, but at the time OS coders were making sensible choices.

Operating systems come, and operating systems go.

HP, Asus announce first Windows 10 ARM PCs

HP and Asus have announced the first Windows 10 PCs running on ARM - Snapdragon 835 - and they're boasting about instant-on, 22 hour battery life, and gigabit LTE. These machines run full Windows 10 - so not some crippled Windows RT nonsense - and support 32bit x86 applications. Microsoft hasn't unveiled a whole lot just yet about their x86-on-ARM emulation, but Ars did compile some information:

The emulator runs in a just-in-time basis, converting blocks of x86 code to equivalent blocks of ARM code. This conversion is cached both in memory (so each given part of a program only has to be translated once per run) and on disk (so subsequent uses of the program should be faster, as they can skip the translation). Moreover, system libraries - the various DLLs that applications load to make use of operating system feature - are all native ARM code, including the libraries loaded by x86 programs. Calling them "Compiled Hybrid Portable Executables" (or "chippie" for short), these libraries are ARM native code, compiled in such a way as to let them respond to x86 function calls.

While processor-intensive applications are liable to suffer a significant performance hit from this emulation - Photoshop will work in the emulator, but it won't be very fast - applications that spend a substantial amount of time waiting around for the user - such as Word - should perform with adequate performance. As one might expect, this emulation isn't available in the kernel, so x86 device drivers won't work on these systems. It's also exclusively 32-bit; software that's available only in a 64-bit x86 version won't be compatible.

I'm very curious about the eventual performance figures for this emulation, since the idea of running my garbage Win32 translation management software on a fast, energy-efficient laptop and external monitor seem quite appealing to me.

The Surface beast

For me the Surface Book 2 was the MacBook Pro that we had all wanted/expected from Apple, it just wears a different logo. While other reviews will read off the spec sheets and talk about the 17 hour battery life and GX yadda yadda yadda processor, they sometimes forget that we (the creative professionals) use these as tools. What Microsoft has done with the Surface Book 2 is make a system void of gimmicks, because gimmicks don't hold up in the working world. Our jobs will not benefit from being able to tap an emoji on a scroll bar, they will benefit from the ability to get work done. As a photographer, it feels extremely odd to say this, but I sincerely feel that the Surface Book 2 is not only a strong contender for the laptop to own, but actually the clear cut choice of the computer to have on set.

There seems to be a lot of interest in Surface from people disappointed with the recent MacBook Pros.

Microsoft is bringing clever tabs to every Windows 10 app

One of the most popular feature requests (more than 20,000 votes) for Windows 10 is tabs in File Explorer. Microsoft has resisted adding tabs to File Explorer and apps in general for years, after originally introducing tabs in Internet Explorer 6 with a toolbar extension back in 2005. That resistance is about to change, in a big way. Microsoft is planning to add tabs to apps in Windows 10, allowing you to group together apps in a better way.

Windows 10 testers will first start testing what Microsoft calls “Sets” in the coming weeks, and the tab integration will be initially limited to Windows 10’s special Universal Windows Apps. Microsoft is planning to get as much feedback on the new feature as possible, before tweaking it and making it available to everyone. The software giant isn’t committing to a specific timeline for tabs.

This is an incredibly neat idea, and I can't wait to try and see if this feature makes any sense in my workflow.

“Desktop compositing latency is real and it annoys me”

I wiped off my Windows 10 installation today. It wasn't because of the intrusive telemetry or the ads in the start menu but desktop composition. It adds some slight but noticeable latency that makes typing feel uncomfortable. In Windows 7 you can turn it off.

If you're fine with unresponsive UI operations and graphical tearing, then, sure, go back to Windows 7 or earlier and turn off compositing to get a few ms back when typing.

Windows 10 Fall Creators Update: lots of small changes

Overall, the Fall Creators Update is a nice set of improvements to Windows. Windows 10 continues to get better with each update. Its grab-bag nature continues to underscore just how Windows development has changed. As the Fluent work makes clear, Windows today is in some sense never finished. That's not something to be scared of; any piece of actively maintained, supported, updated software is in a sense "not finished."

With the new approach to developing and delivering Windows, that "unfinished" nature is more overt than it used to be. I'm sure some of the semi-annual Windows updates will feel larger in scope than others, depending on how the development work is going; others will feel a bit smaller. Because so much of the ground work was laid in the Creators Update, albeit hidden from view, this feels like a smaller update.

It's a list of relatively small and disjointed features, but I still really like this update. Especially the Fluent Design changes to applications are very welcome, and make Metro applications feel less... Dead? Less cold? They have more warmth now, which is definitely something missing from pre-Fluent Metro and current iOS UI design (not so much from Material Design, which is rife with colour and depth). The very, very subtle blur effect, the 'highlight' when hovering over buttons and menus, and the odd animation here and there really address the concerns of people who feel Metro takes the "flat" design trend too far to the extreme.

As a sidenote, "flat" really is a terrible term, since none of these UI design styles are really flat. Fluent, Material Design, and whatever iOS has are actually anything but flat, and have far more Z-depth than anything that came before - but I digress.

The emoji picker is really nice, but it baffles me why it's emoji-only; as someone with a deep, deep hatred for special character input on Windows, it baffles me that it doesn't include special characters. The new GPU panel in Task Manager is also very nice, and it feels like Edge is less flakey, too.

All in all, a nice free update.

Microsoft shows off its Fluent Design changes to Windows 10

All of the new design changes to Windows 10 are demonstrated in a new video from Microsoft. It’s a good showcase of how subtle the changes are, but it doesn’t tease much for the future. Microsoft’s Fluent Design System is designed to be the true successor to Microsoft's Metro design, and will appear across apps and services on Windows, iOS, and Android. Microsoft is focusing on light, depth, motion, material, and scale for its Fluent Design, with animations that make the design feel like it's moving during interactions in Windows.

Like Metro applications before them, these Fluent applications look really nice, but it's all for naught. Microsoft showed off its redesigned Outlook application for Windows (and macOS), and guess what? It's a Win32 application.

If not even Microsoft itself is interested in making Metro/Fluent applications, why should anyone else?

Microsoft's approach to Metro/Fluent has been baffling from day one, and it doesn't seem like anything's changing any time soon. They made really great Metro Office applications, but then proceed to hide them from the Windows Store behind the "mobile" tag, and artificially cripple them by not allowing you to open more than one document per Office application.

Even when Microsoft does make great Metro/Fluent applications, they artificially cripple them.

I have no idea what Microsoft is doing, and I don't blame developers for giving them the finger. They are telling an unreliable, unfocused, unclear, and chaotic developer story, and any developer worth her salt wouldn't touch the Windows Store/Metro/Fluent with a ten-foot pole.

Microsoft breaches Dutch data protection law with Windows 10

Microsoft breaches the Dutch data protection law by processing personal data of people that use the Windows 10 operating system on their computers. This is the conclusion of the Dutch Data Protection Authority (DPA) after its investigation of Windows 10 Home and Pro. Microsoft does not clearly inform users about the type of data it uses, and for which purpose. Also, people cannot provide valid consent for the processing of their personal data, because of the approach used by Microsoft. The company does not clearly inform users that it continuously collects personal data about the usage of apps and web surfing behaviour through its web browser Edge, when the default settings are used. Microsoft has indicated that it wants to end all violations. If this is not the case, the Dutch DPA can decide to impose a sanction on Microsoft.

Kind of weird how Microsoft is found to be breaking the law, but they don't get punished for it; only if they refuse to stop breaking the law will they be fined. Interesting.