Archive for the ‘development’ Category

Microsoft: The open source company

May 10th, 2019
Microsoft: The open source company

Enlarge

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.

Read 5 remaining paragraphs | Comments

Posted in development, GPL, linux, microsoft, Open Source, Tech, Windows | Comments (0)

Ex-YouTube engineer reveals how video site worked to kill off Internet Explorer 6

May 2nd, 2019
Ex-YouTube engineer reveals how video site worked to kill off Internet Explorer 6

(credit: Aurich Lawson)

The year is 2009. YouTube, four years old, has become the Web's leading video site. Though Internet Explorer 6 was far from current—it had been superseded by versions 7 and 8—it nonetheless made up some 18 percent of YouTube's traffic. These were, after all, the dark days of Windows XP; corporations had overwhelmingly stuck with Windows XP in spite of the release of Windows Vista, and Windows 7 was still some months from release. Many organizations still running XP appeared to be wishing for a kind of computational stasis: they wanted to be able to run Windows XP and Internet Explorer 6 forever, unchanging, which would greatly simplify their maintenance and support costs.

But Internet Explorer 6 was nearly eight years old and seriously showing its age. On its release, the browser had a legitimate claim to be the best, fastest, most standards compliant, and most stable mainstream browser around. But those days were long gone. Compared to the alternatives—Firefox 3.5, Internet Explorer 8, and Google's Chrome—it was slow, unstable, and riddled with proprietary, non-standard behaviors. This was causing the team developing YouTube considerable pain, with weeks of extra work each development cycle to ensure that the site still worked correctly in the old browser.

According to former YouTube developer Chris Zacharias, this pain prompted the YouTube team to take renegade action to drive users away from Internet Explorer 6 and onto something newer and better. Though YouTube had been under Google's ownership for about three years, YouTube's engineers were suspicious and wary of being integrated into Google's corporate machine. They had their own special set of permissions named "OldTuber," and anyone with OldTuber permissions could freely modify the YouTube site without going through Google's usual change management process of code reviews, testing, adherence to coding standards, and so on. It was cowboy territory, where developers could do as they liked. Only the risk of breaking things—and hence losing OldTuber permissions, if not their job—kept them on the straight and narrow.

Read 6 remaining paragraphs | Comments

Posted in browsers, chrome, development, google, Internet Explorer, Internet Explorer 6, microsoft, standards, Tech, YouTube | Comments (0)

Developers love Python and TypeScript, get paid for Clojure, and aren’t using blockchain

April 10th, 2019

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.

To the surprise of nobody, Web technology remains top of the usage chart: some 67.8 percent of developers use JavaScript, giving it the number one position; and 63.5 percent use HTML and CSS in second place. SQL once again takes the third slot, at 54.4 percent. The first change relative to last year's survey comes at the fourth spot, with Python pushing Java into fifth place and Bash/shell scripting into sixth. C#, PHP, and C++ retain their same relative ordering at the seventh, eighth, and ninth slots.

Read 6 remaining paragraphs | Comments

Posted in Blockchain, Clojure, developers, development, Programming, Python, software, stack overflow, Tech, typescript | Comments (0)

Hands-on: First public previews of Chromium-based Edge are now out

April 8th, 2019
There's really no difference between how the Ars front page looks in Edge and Chrome.

Enlarge / There's really no difference between how the Ars front page looks in Edge and Chrome.

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.

Chromium is the open source browser project run by Google. It includes the Blink rendering engine (Google's fork of Apple's WebKit), V8 JavaScript engine, Google's software-based sandboxing, and the browser user interface. Google builds on Chromium for its Chrome browser, and a number of third-party browsers, including Opera, Vivaldi, and Brave, also use Chromium.

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/74.1.96.14"; 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.

Read 5 remaining paragraphs | Comments

Posted in browsers, Chromium, development, EDGE, microsoft, Open Source, Tech, the web, Windows | Comments (0)

Visual Studio 2019 goes live with C++, Python shared editing

April 2nd, 2019
OK, so Visual Studio's always gonna look like Visual Studio. But the eagle-eyed will spot a few differences. There's the menus-in-title bar at the top. There's the message "No issues found" in the status bar, showing that background code analysis has found no problems with my code. Bottom left, to the left of the "Ready" text, is the new background task status indicator that provides more information about things like scanning code to build IntelliSense information. There's a (not visible) GitHub tab in the Solution Explorer panel that's used for the new Pull Request integration. And, of course, there's the Live Share button top right.

Enlarge / OK, so Visual Studio's always gonna look like Visual Studio. But the eagle-eyed will spot a few differences. There's the menus-in-title bar at the top. There's the message "No issues found" in the status bar, showing that background code analysis has found no problems with my code. Bottom left, to the left of the "Ready" text, is the new background task status indicator that provides more information about things like scanning code to build IntelliSense information. There's a (not visible) GitHub tab in the Solution Explorer panel that's used for the new Pull Request integration. And, of course, there's the Live Share button top right.

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.

Read 11 remaining paragraphs | Comments

Posted in C#, development, JavaScript, Mac, microsoft, Open Source, Python, Tech, typescript, visual studio | Comments (0)

Windows 10 version 1903 heads for the finish line

March 20th, 2019
Who doesn't love some new Windows?

Enlarge / Who doesn't love some new Windows? (credit: Peter Bright / Flickr)

It's clear that Microsoft is in the very final stages of development of Windows 10 version 1903, the April 2019 Update. The fast distribution ring has seen two builds arrive this week after two last week, bringing with them no new features but a slowly whittled-down bug list following the development pattern we've seen in previous updates. In the past, the company has tried to release Windows 10 feature upgrades on Patch Tuesday, the second Tuesday of each month, meaning there's just under three weeks left to go.

A little alarmingly, a couple of long-standing issues with the release still appear to be unresolved. A green-screen-of-death error caused when games with BattlEye anti-cheat software are used has been a feature of the 1903 previews for many months, and Microsoft is still listing it as unresolved. The scope and impact of this bug was so significant that the slow distribution ring didn't receive a preview of 1903 for much of its development process; Microsoft felt that it was too likely to affect too many people to be usable. This is eminently plausible, as BattlEye is used by PUBG and Fortnite, among other games. The company finally relented in February, pushing out a new build on the slow ring but blacklisting any systems with the offending third-party software.

The bug was first listed as a known issue with build 18298, released on December 10 last year. Microsoft says it's working with BattlEye to resolve the problem, but there has been no visible progress so far. BattlEye boasts of using a kernel-mode component as part of its anti-cheat software. Running in the kernel means that it's harder for cheat software to hide from or otherwise interfere with what BattlEye does, but with this comes the temptation to mess with operating system data structures and functions that aren't documented, which then leads to system crashes when the operating system is updated.

Read 3 remaining paragraphs | Comments

Posted in development, insider program, microsoft, Tech, Windows | Comments (0)

Any Steam game can now use Valve’s low-latency, DoS-proofed networking

March 15th, 2019
Any Steam game can now use Valve’s low-latency, DoS-proofed networking

Enlarge (credit: massmatt)

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.

Read 5 remaining paragraphs | Comments

Posted in APIs, development, Gaming & Culture, networking, Open Source, PC gaming, Tech, Valve | Comments (0)

The real reason that Microsoft is already testing a 2020 Windows release? Azure

February 28th, 2019
Stylized image of glass skyscrapers under construction.

Enlarge / Windows is now perpetually under construction. (credit: David Holt / Flickr)

The release earlier this month of a preview Windows 10 build that isn't due until 2020 was a little strange. At the time, Microsoft said vaguely that it was because of features that "require a longer lead time," with no indication of what those features are.

The well-connected Mary Jo Foley tells a different story: the release is actually a consequence of parts of Windows' development moving to the Azure group.

The core parts of Windows—the kernel, file system, networking stack, hypervisor, security subsystem, and so on—underpin a wide range of Windows variants, including Windows 10, Windows Server 2019, HoloLens, Xbox One, and Azure. According to Foley, Microsoft makes two releases of these core parts each year, in June and December. The various Windows variants build on these dual releases.

Read 3 remaining paragraphs | Comments

Posted in azure, development, microsoft, Tech, Windows | Comments (0)

Google turbo-charging the back button with Chrome’s new “back/forward cache”

February 28th, 2019
Now that's some shiny chrome.

Enlarge / Now that's some shiny chrome. (credit: Marc Ellis / Flickr)

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.

Chrome already caches the files that make up a page, so revisiting a page in most circumstances shouldn't force the browser to retrieve the images, JavaScripts, and CSS that are used to build the page. But currently, the browser has to re-parse the HTML and re-build the page's programmatic representation, uncompress the images, re-execute all the JavaScript, reapply all the stylesheets, and so on. It's just the networking step that gets skipped.

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.

Read 4 remaining paragraphs | Comments

Posted in browsers, chrome, Chromium, development, google, Tech | Comments (0)

Google partially backtracks on Chrome changes that would break ad blockers

February 18th, 2019

Google has said that it will revise the proposed changes to Chrome's extension API that would have broken or reduced the functionality of a wide range of ad-blocking extensions, to ensure that the current variety of content-blocking extensions is preserved. The initial plans generated a wide backlash from both the developers and users of those extensions, but Google maintains that "It is not, nor has it ever been, our goal to prevent or break content blocking" [emphasis Google's] and says that it will work to update its proposal to address the capability gaps and pain points.

The advertising company is planning an overhaul of its extension interface to, among other things, increase user privacy, make it harder for extensions to perform malicious actions, and make the browser's performance more consistent. Together, this work is documented as Manifest V3.

One of these changes in particular had grave consequences for ad blockers. Currently, ad blockers make extensive use of an API named webRequest. This API allows extensions to examine every single network request made by a page and either modify it (to, for example, redirect it to a different address or add or remove cookies), block it altogether, or allow it to continue unhindered. This has both a substantial privacy impact (an extension can see and steal your cookies and hence masquerade as you) and, Google said, some performance impact, as every single network request (of which there may be dozens in a single page) has to wait for the extension to perform its analysis.

Read 7 remaining paragraphs | Comments

Posted in ad blockers, chrome, Chromium, development, google, Open Source, Tech, Web | Comments (0)