One of the most important ways that Microsoft wants to make the new Chromium-based Edge different from the current EdgeHTML-based Edge is in its support for other platforms. The original Edge was, for no good reason, tied to Windows 10, meaning that Web developers on platforms such as Windows 7 or macOS had no way of testing how their pages looked, short of firing up a Windows 10 virtual machine.
The new browser is, in contrast, a cross-platform affair. The first preview builds were published for Windows 10, with versions for Windows 7, 8, and 8.1 promised soon; today, these are joined by builds for macOS./wp-content/uploads/2019/05/edge-macos-touchbar.mp4
The macOS version resembles the Windows 10 builds that we've seen so far, but it isn't identical. Microsoft wants to be a good citizen on macOS by producing not just an application that fits the platform's standards—using the right fonts, icons, spacing, and so on—but which also adapts to Apple's unique hardware. To that end, the company is working on support for the Touch Bar found on some of Apple's portable systems, using it for media control, tab switching, or access to bookmarks. Microsoft will also work to ensure that Edge's support as a Progressive Web App host properly adopts macOS behaviors with regard to interaction with the Dock, app switcher, and Spotlight.
Just under a year ago, there were signs that Google was modifying the firmware of its Pixelbook laptop to enable dual booting into Windows 10. The firmware was updated to give the Pixelbook the ability to boot into an "Alternative OS" ("AltOS" mode). The work included references to the Windows Hardware Certification Kit (WHCK) and the Windows Hardware Lab Kit (HLK), Microsoft's testing frameworks for Windows 8.1 and Windows 10 respectively.
The dual boot work was being done under the name Project Campfire. There appears to have been little development work on Project Campfire since last December. This suggests that Google actually decided not to bother with dual booting many months ago.
Search engines today are more than just the dumb keyword matchers they used to be. You can ask a question—say, "How tall is the tower in Paris?"—and they'll tell you that the Eiffel Tower is 324 meters (1,063 feet) tall, about the same as an 81-story building. They can do this even though the question never actually names the tower.
How do they do this? As with everything else these days, they use machine learning. Machine-learning algorithms are used to build vectors—essentially, long lists of numbers—that in some sense represent their input data, whether it be text on a webpage, images, sound, or videos. Bing captures billions of these vectors for all the different kinds of media that it indexes. To search the vectors, Microsoft uses an algorithm it calls SPTAG ("Space Partition Tree and Graph"). An input query is converted into a vector, and SPTAG is used to quickly find "approximate nearest neighbors" (ANN), which is to say, vectors that are similar to the input.
This (with some amount of hand-waving) is how the Eiffel Tower question can be answered: a search for "How tall is the tower in Paris?" will be "near" pages talking about towers, Paris, and how tall things are. Such pages are almost surely going to be about the Eiffel Tower.
The news from Microsoft's Build developer conference that surprised me most was that Microsoft will ship a genuine Linux kernel—GPLed, with all patches published—with Windows. That announcement was made with the announcement of Windows Terminal, a new front-end for command-line programs on Windows that will, among other things, support tabs.
Microsoft's increased involvement with open source software isn't new, as projects such as Visual Studio Code and the .NET runtime have operated as open source, community-driven projects. But this week's announcements felt a bit different.
The Linux kernel will be powering Microsoft's second generation Windows Subsystem for Linux (WSL). The first generation WSL contains a partial re-implementation of the Linux kernel API that uses the Windows NT kernel to perform its functionality. In choosing this approach, Microsoft avoided using any actual Linux code, and hence the company avoided the GPL license with its "viral" stipulations that would have arguably forced Microsoft to open source WSL and perhaps even parts of Windows itself.
Earlier today, we wrote that Microsoft was going to add some big new features to the Windows Subsystem for Linux, including native support for Docker containers. It turns out that that ain't the half of it.
The current Windows Subsystem for Linux uses a Microsoft-authored kernel component that provided the same kernel API as the Linux kernel but written from scratch by Microsoft. Essentially, it translated from Linux APIs to Windows NT kernel APIs. That worked pretty well, but the current subsystem had a few shortcomings: there was no ability to use Linux drivers, in particular file system drivers. Its file system performance, layered on top of Windows' own NTFS, was often 20 times slower than a real Linux kernel. It was also a relatively old version of the kernel; it offered approximately the set of APIs that Linux 4.4 did, and that was released in 2016. Some APIs aren't implemented at all, and others are only partially implemented to meet the needs of specific applications.
All is changing with Windows Subsystem for Linux 2. Instead of emulating the Linux kernel APIs on the NT kernel, WSL 2 is going to run a full Linux kernel in a lightweight virtual machine. This kernel will be trimmed down and tailored to this particular use case, with stripped-down hardware support (since it will defer to the host Windows OS for that) and faster booting.
Microsoft has outlined its plans for the next stage of development for the new Chromium-based Edge browser, and those plans include a trio of new features.
The first is a big nod to enterprise customers: a built-in Internet Explorer mode. Chrome has a number of extensions that accomplish much the same thing—they create a new tab in the browser and use the Internet Explorer 11 engine, rather than the Chrome engine, to draw that tab. For Edge, this capability will be built in.
Enterprises can already create a compatibility list, the Enterprise Mode Site List, which the current Edge browser uses to know which (internal, line-of-business) sites should be shown in Internet Explorer 11. The new Edge will use this same list to determine when to use Internet Explorer.
Stack Overflow's annual developer survey was published this week, giving an insight into the skills, experience, and opinions of a wide slice of the developer community. Since its launch in 2008, Stack Overflow has become an essential developer tool, offering copy/paste solutions to an ever-growing number of programming problems.
The Stack Overflow survey is particularly interesting, as Stack Overflow does not focus on any one kind of developer or development; is used by professionals, students, and hobbyists alike; and has substantial use across Europe, North America, and Asia, with respectable representation from South America, Africa, and Oceania. As such, it gives a view of the software development industry as a whole, across all fields and disciplines.
Microsoft's switch to using the Chromium engine to power its Edge browser was announced in December last year, and the first public preview build is out now. Canary builds, updated daily, and Dev builds, updated weekly, are available for Windows 10. Versions for other operating systems and a beta that's updated every six weeks are promised to be coming soon.
As a result, every Chromium browser offers more or less the same performance and Web compatibility. Indeed, this is a big part of why Microsoft made the switch: the company had grown tired of updating its own EdgeHTML engine to ensure it behaved identically to Chrome and is now offering Chrome-equivalent behavior in the most direct way possible. I've been using a version 74 build (which is a little out of date at this point) for the last week, and I have yet to see any difference between Edge and Chromium Dev when it comes to displaying Web pages. In principle, a page could treat Edge differently (it reports its identity as a rather ugly "Edg/18.104.22.168"; I'm presuming the misspelling is an attempt to ensure it isn't identified as a variation of the current Edge browser), but in general there's little reason to do so.
A new version of Microsoft's integrated development environment (IDE) goes live today with the release of Visual Studio 2019 and its cousin Visual Studio 2019 for Mac.
Visual Studio is in a bit of a strange position, and it would be fair for developers to ask why this branded release even exists. Visual Studio 2017 has received nine point releases and countless patch releases since its release two years ago. Each of these releases has brought a mix of new features and bug fixes, and for Visual Studio users, the experience feels comparable to that of, say, Google Chrome, where each new version brings a steady flow of incrementally improved features and fixes.
Indeed, this iterative, incremental model is the one that Microsoft is pushing (and using) for services such as Azure DevOps and is comparable to the continuous development we see for Office 365, which is updated monthly, and the free and open source Visual Studio Code, which also has monthly iterations. With this development process in place, one wonders why we'd bother with "Visual Studio 2019" at all; let's just have "Visual Studio" and keep on updating it forever.
The new build confirms much of what we've seen before: the browser is a minimally changed rebranded version of Chrome, replacing integration with Google's accounts with integration with Microsoft's accounts. This integration is still at an early stage; bookmarks can be synced between systems, but history, passwords, open tabs, autocomplete information, and open tabs don't yet sync.
Google has multiple release channels for Chrome; beyond the Stable channel, there's a Beta channel previewing the next release, the Dev channel previewing the release after that, and the Canary channel, which provides nightly builds. Microsoft's new extension for Edge Insider appears to offer easy switching between channels, announcements, known issues, and asking users for focused testing on particular areas.
Valve is opening up its latency-reducing, DoS-protecting network relay infrastructure to every developer using its Steamworks platform.
A few years ago, large-scale denial-of-service attacks against game servers were making the news and becoming a frustratingly frequent occurrence in online gaming and e-sports. To protect its own games, Valve has for a number of years been working on developing a networking infrastructure that makes the system more resilient against denial-of-service attacks and lower latency to boot, and the company is using this system for both Dota 2 and CS:GO.
At 30 different locations around the world, Valve has established relaying servers that route networking traffic between clients and servers. These relay points provide DoS-resilience in several ways. They're equipped with an aggregate of several terabits of bandwidth, so they can handle a certain amount of flooding in any case. Games can also switch from one relay to another without necessarily interrupting their connection. This switching can be to another relay in the same location or even to another point-of-presence entirely.
The forthcoming Windows 10 feature update will bring support for DTrace, the open source debugging and diagnostic tracing tool originally built for Solaris. The port was announced at the Ignite conference last year, and today the instructions, binaries, and source code are now available.
DTrace lets developers and administrators get a detailed look at what their system is doing: they can track kernel function calls, examine properties of running processes, and probe drivers. DTrace commands use the DTrace scripting language, with which users can specify which information is probed, and how to report that information.
After its initial Solaris release, DTrace spread to a wide range of other Unix-like operating systems. Today, it's available for Linux, FreeBSD, NetBSD, and macOS. The original Solaris code was released under Sun's Common Development and Distribution License. Microsoft has ported the CDDL portions of DTrace and built an additional driver for Windows that performs some of the system-monitoring roles. The latter driver will ship with Windows; the CDDL parts are all a separate download.
One of the greatest fears when Microsoft announced that it was ditching its EdgeHTML rendering engine and switching to Chromium—the open source engine that powers Google's Chrome, along with a range of others such as Vivaldi, Brave, and Opera—is that Web developers would increasingly take the easy way out and limit their support and testing to Chrome. That would leave Mozilla's Firefox, Apple's Safari, and any other browsers, present or future, out of the fun.
This is, after all, substantially what we saw during Internet Explorer's heyday. Microsoft's browser grew to about 95 percent of the market, and wide swathes of the Web proudly announced that they were "best viewed in Internet Explorer," often to the point of not working at all in any other browser. IE's hegemony presented an enormous challenge for the upstart Firefox browser, which was built to support Web standards rather than Microsoft's particular spin on those standards. Though Internet Explorer was eventually displaced—by Chrome—this arguably would have gone much quicker if developers had been less fixated on Microsoft's browser.
Last week, Microsoft made a major update to the Web version of its Skype client, bringing HD video calling, call recording, and other features already found on the other clients.
Microsoft's embrace and adoption of open source software has continued with the surprising decision to publish the code for Windows Calculator and release it on GitHub under the permissive MIT license.
The repository shows Calculator's surprisingly long history. Although it is in some regards one of the most modern Windows applications—it's an early adopter of Fluent Design and has been used to showcase a number of design elements—core parts of the codebase date all the way back to 1995.
The actual calculations are performed by this ancient code. Calculator's mathematics library is built using rational numbers (that is, numbers that can be expressed as the ratio of two integers). Where possible, it preserves the exact values of the numbers it is computing, falling back on Taylor series expansion when an approximation to an irrational number is required. Poking around the change history shows that the very earliest iterations of Windows Calculator, starting in 1989, didn't use the rational arithmetic library, instead using floating point arithmetic and the much greater loss of precision this implies.
Edge-on-Chromium's homepage. [credit: Neowin ]
Some early screenshots of Microsoft's Chromium-based Edge browser have leaked to Neowin. Unsurprisingly, Microsoft seems to be working on a development cycle that's similar to that of Chrome, with pictures of both a Canary channel, shipped daily, and a Dev channel, shipped weekly.
In many ways the browser is what one would expect of a Microsoft Chromium browser: in those places where Chrome would use a Google account for syncing or a Google store for extensions, Edge-on-Chromium uses a Microsoft account and a Microsoft store. Similarly, the homepage is similar to that of Edge, using Bing pictures and Microsoft News links. Perhaps the biggest change is the settings page, which adopts a similar look-and-feel to the Windows 10 settings app—section headings down the left, the actual settings on the right.
But the screenshots also show just what a challenge Microsoft has to win people over to its browser. If you're going to get an experience that's 99 percent Chrome, why not just use the real thing, with its even more extensive data syncing and extension store?
Google is developing a new cache for Chrome (via CNET)that should make some page loads extremely fast. The only catch? They'll have to be pages you've already seen and are revisiting after hitting the browser's back button.
The new bfcache (for "back/forward cache") changes that: it lets the browser capture the entire state of a running page—including scripts that are in the middle of execution, the rendered images, and even the scroll position—and reload that state later. With bfcache, rather than having to reload the page from scratch, the page will look as if it was paused when you click a link to a new page and subsequently resumed when you hit back.