Tag Archives: microsoft

Cosmos DB or SQL Server? Do you need Kubernetes? VM or App Service? A guide to Azure worth checking out

One of the best features of Microsoft Build, possibly the best, is the exhibition. Microsoft sets up stands for each of its product teams, and the staff there generally include the people who actually build that product, making this a great way to interact with them and get authoritative answers to questions.

I interviewed several executives at Build and asked a couple of times, how can your customers work out which Azure service is the best fit for what they need? It is not a trivial question, now that there are so many different services which overlapping functionality.

It is critically important. You can waste a large amount of money and cause unnecessary frustration by selecting the wrong services.

None of these executives mentioned that Microsoft has a rather good guide for exactly this question. It is called the Azure Architecture Center and I discovered it on the show floor.

image

The stand was called Azure Clinic and I told the guy his costume reminded me of Dr GUI. He was too young to remember this MSDN character of old but another guy on the stand overheard and said it brought back bad memories!

You can find the Azure Architecture Center here. It does not make any assumptions about the depth of knowledge you have, which seems right to me since it is aimed at developers who are not sure exactly what they need. There is a ton of useful material, like this decision tree for the compute services (click to enlarge):

image 

Recommended.

Hands On with Remote Assist, a compelling HoloLens application, at Microsoft Build

One of the announcements at Microsoft’s Build event in Seattle was Remote Assist, an application for the HoloLens augmented reality headset. Today I got an opportunity to try this out, and was impressed.

The company has set up a hotel room as a factory with some big machines that whir and hum and a scary power supply cabinet. I took the part of the engineer when a fault stops the machines and the factory grinds to a halt. Unfortunately I knew nothing about how to fix it.

The solution was to put on the HoloLens headset and make a call to someone better informed. The concept is pretty simple. The remote technician sees what you see, so can easily inspect the screens as well as the physical state of the machinery. Along with the video call, HoloLens and Remote Assist lets the remote technician add annotations to the real world, pinpointing the exact button, cable or belt that needs attention. They can also stick images or documents next to the machinery to show you what to do.

image

The fake factory floor was a little contrived, but nevertheless effective in showing how this approach can make it easier to offer support. The alternative in this kind of case is a site visit, which with specialised equipment might well involve a flight and several days delay. The cost is not only the travel expenses, but also the possible extended downtime while machinery is idle.

If you have ever tried to guide someone at the other end of a telephone through fixing a physical problem, you will know how tricky it can be. Send me a photo. No, that’s not quite the right spot. Send me another photo. What happens if you change that setting? No, not that setting! Sorry, now you have two things to fix …

Remote Assist makes this much easier and I can see the potential. HoloLens may seem expensive for a casual purchase, but could soon pay for itself in this context.

There is no date yet for availability, but the technology will enter limited preview soon.

More info here and in the video below.

I also tried Remote Layout, a HoloLens application for designing room layouts. This was less exciting. I was not clear how to achieve the precision you need for a real-world factory layout. Nevertheless, I get the point that overlaying life-size objects onto the real world can reveal issues that you might well miss with just a drawing.

Finally, I tried a super-secret demo that I am not allowed to tell you about. Yet.

Microsoft Build: Azure-powered Drones, another go with Kinect, and other key announcements

Microsoft Build is kicking off today in Seattle, and the company has made a ton of announcements.

See here for some background on Build and what is happening with Microsoft’s platform.

The most eye-catching announcement is a partnership with drone manufacturer DJI which says it will make Azure its preferred cloud provider. Microsoft has announced an SDK. There is much obvious value in drones from a business perspective, for example examining pipes for damage. Sectors such as construction, agriculture and public safety are obvious candidates.

image 

Microsoft’s Kinect sensor was originally launched as a gaming accessory for Xbox 360 and then Xbox One. It has been a flop in gaming, but the technology has plenty of potential. Coming in 2019 is Project Kinect for Azure, a new device with upgraded sensors for connecting “AI to the edge”, in Microsoft’s words. More here.

image

The Azure IoT Edge runtime is going open source. More cognitive services will now run directly on the runtime, in other words without depending on internet connectivity, including Custom Vision for image recognition (handy for drones, perhaps). A partnership with Qualcomm will support camera-powered cognitive services.

AI for Accessibility is a new initiative to use AI to empower people via assistive technology, building on previous work such as the use of Cognitive Services to help a visually impaired person “see” the world around them.

Project Brainwave is a new project to accelerate AI by running calculations on an FPGA (Field Programmable Gate Array) in partnership with Intel.

On the Windows front, a new application called Microsoft Layout uses Mixed Reality to let customers design spaces in context, using 3D models.

Windows Timeline, new in the April 2018 Windows 10 update, is coming to iOS and Android. On Android it is a separate application, while on iOS it is incorporated into the Edge browser.

Amazon Alexa and Microsoft Cortana are getting integration (in limited preview) such that you can call up Cortana using an Amazon Echo, or summon Alexa within Cortana on Windows.

image

There is more to come, including AI updates to Visual Studio (not IntelliSense but IntelliCode), Visual Studio Live Share collaboration in preview, and a partnership with GitHub to integrate with App Center (DevOps for apps for mobile devices).

And big .NET news at Build: .NET Core 3.0 in 2019 will run Windows desktop applications, via frameworks including Windows Forms, Windows Presentation Framework (WPF), and UWP XAML.

As Microsoft Build 2018 begins, what is happening to Microsoft’s developer platform?

Microsoft’s Build developer conference starts today in Seattle.

image

Ahead of Build though, it is worth noting that this Build is different in feel than previous events. The first Build was in 2011 and it was focused on Windows 8, released there in preview.Historically it has always been a Windows-focused event, though of course with some sessions on Microsoft’s wider platform.

Microsoft is changing, and the key document for those interested in the company’s direction is this one from 29th March 2018 – the most significant strategic move since the June 2015 “aligning engineering to strategy” announcement that dismantled the investment in Windows Phone.

In the March announcement CEO Satya Nadella explains that the Windows and Devices Group (WDG) has become the Experiences and Devices Group – no longer just Windows. Former WDG chief Terry Myerson is leaving Microsoft, while Rajesh Jha steps up to run the new team.

I regard this new announcement as a logical next step following the departure of Steven Sinofsky in November 2012 (the beginning of the end for Windows 8) and the end of Windows Phone announced in June 2015. Sinofsky’s vision was for Windows to be reinvented for a new era of computing devices based on touch and mobile. This strategy failed, for numerous reasons which this is not the place to re-iterate. Windows 10, by contrast, is about keeping the operating system up to date as a business workhorse and desktop operating system, a market that will slowly decline as other devices take over things that we used to do with PCs, but which will also remain important for the foreseeable future.

Windows, let me emphasise, is neither dead nor dying. We still need PCs to do our work. The always-enthusiastic Joe Belfiore is now in charge of Windows and we will continue to see a stream of new features added to the operating system, though increasingly they will work in tandem with new software for iOS and Android. However, Windows can no longer be an engine of growth at Microsoft.

Microsoft has positioned itself to succeed despite the decline of the PC, primarily through cloud services. It has made huge investments in cloud infrastructure – that is, datacenters and connectivity – as well as in the software to make that infrastructure useful, from low-level server and network virtualisation to a large range of high level services (which is where the biggest profits can be made).

The company’s biggest cloud success is not Azure as such, but rather Office 365, now running a substantial proportion of the world’s business email, and building on that base with a growing range of collaboration and storage services. It is a perfect upsell opportunity, which is why the company is now talking up “Microsoft 365”, composed of Office 365, Windows 10, and Enterprise Mobility + Security (EMS).

Nadella’s new mantra is “the intelligent cloud and the intelligent edge”, where the intelligent cloud is all things Office 365 and Azure, and the intelligent edge is all the computing devices that connect to it, whether as small as a Raspberry Pi running Azure IoT Edge (a small cross-platform runtime that connects to Azure services), or as large as Azure Stack (an on-premises cloud in a box that uses the Azure computing model).

We need an “intelligent edge” because it makes no sense at all to pump all of the vast and increasing amounts of data that we collect, from sensors and other inputs, directly into the cloud. That is madly inefficient. Instead, you process it locally and send to the cloud only what is interesting. Getting the right balance between cloud and edge is challenging and something which the industry is still working out. Nothing new there, you might think, as the trade-off between centralised and distributed computing has been a topic of endless debate for as long as I can remember.

Coming back to Build, what does the above mean for developers? From Microsoft’s perspective, it is more strategic to have developers building for its cloud platform than for Windows itself; and if that means coding for Linux, iOS or Android, it matters little.

At the same time, Belfiore and his team are keen to keep Windows competitive against the competition (Mac, Linux, Chromebook). Even more important from the company’s point of view is to get users off Windows 7 and onto Windows 10, which is more strategic in every way.

Just because Microsoft wants you to do something does not make it in your best interests. That said, if you accept that a cloud-centric approach is right for most businesses, Windows 10 does make sense in lots of ways. It is more secure and, increasingly, easier to manage. Small businesses can log in directly with Azure Active Directory, and larger organisations get benefits like autopilot, now beginning to roll out as the PC OEMs ready the hardware.

The future of UWP (Universal Windows Platform) is less clear. Microsoft has invested heavily in UWP and made it an integral part of new Windows features like HoloLens and Mixed Reality. Developers on the other hand still largely prefer to work with older frameworks like Windows Presentation Foundation (WPF), and the value of UWP has been undermined by the death of Windows Phone. In addition, you can now get Store access and the install/uninstall benefits of UWP via another route, the Desktop Bridge – which is why key consumer applications like Spotify and Apple iTunes have turned up in the Store.

Finally, Build did not sell out this year; however I have heard that it has doubled in size, so these things are relative. Nevertheless, this is perhaps an indication that Microsoft still has work to do with its repositioning in the developer community. The challenge for the company is to keep its traditional Windows-focused developers on board, while also attracting new developers more familiar with non-Microsoft technologies. Anecdotally, I would say there are more signs of the former than the latter.

Notes from the field: “cannot open the Outlook window” in Windows 10. OneDrive the culprit?

A friend was having problems with Outlook on a new Windows 10 laptop. It had been set up with a POP3/SMTP email account. Everything worked fine at first, but then Outlook refused to open, displaying a message “Cannot open the Outlook window”. The version of Outlook was the latest Outlook 2016, purchased via personal subscription.

Presuming database corruption, I created a new profile and entered the email settings. It worked at first and then exactly the same error occurred, after Outlook had been closed and reopened a couple of times.

I looked more closely and noticed something odd. Outlook was saving the .pst database for this account to OneDrive. This is not something you would notice, since the location of this database is normally invisible to the user. However you can see it if you go into Account Settings and then Data Files.

Note: this screenshot comes not from my friend’s PC but from my own test install of Windows 10, which uses the defaults. I simply set up Outlook with a POP3 email account.

image

Why was this happening? It is because Windows 10 sets OneDrive as the default location for documents if you set it up with a personal Microsoft account, which is the default for non-business users.

image

Outlook creates .pst files in a sub-folder of the special Documents location, called Outlook Files.

Note: Outlook does not do this for .ost files used for Exchange, Office 365 or Outlook.com. It is only something you will see if you use an old-style POP3 email account, or possibly IMAP (I have not tested this).

Saving active .pst files in OneDrive is not a good idea. Even if it works, it brings no benefit, since you cannot get multiple versions of Outlook on different PCs to use the same synced .pst.

Worse, it is known to cause corruption. Check out this ancient post on the subject from the experts at Slipstick systems:

The answer: It won’t work in most services and is not recommended in any service. Outlook puts a lock on the pst file when the pst file is open. OneDrive (and other cloud solutions) continually syncs the local folder. It won’t be able to sync the pst because Outlook has a lock on it and as a result, the pst file could become corrupted and data loss occur.

Unfortunately it is not that easy to persuade Outlook to save the .pst elsewhere. The method I used was:

1. Open the Mail applet in Control Panel (always the first port of call if Outlook will not open).

2. Select a profile, even one that doesn’t work, and choose Properties.  Click Data Files tab and then Add. This lets you create a new, empty .pst in the location of your choice. Close this dialog.

3. When setting up the email account, choose Manual settings, and then select the option to deliver mail to an existing .pst. Browse to select the one you created.

image

All of this is well buried and typical users will not find these settings.

The other solution is to reconfigure the location of the Documents folder to be on the local hard drive and not in the special OneDrive folder. Of course this will affect all your documents and not just Outlook. Saving everyday documents to OneDrive is not such a bad idea, since it gives you resilience in the case where your hard drive or SSD fails.

Note: There are multiple reasons for the “Cannot open the Outlook window” error so the above is not necessarily the fix you need, if you have come here in search of an answer. It only applies if you have this particular configuration and use POP3 email.

Microsoft financials: Azure revenue grows 93% year on year

Microsoft delivered excellent figures in its latest financial results, for the period Jan-March 2018. Total revenue of $26,819 million was up 16% year on year, within which Azure revenue grew 93%.

The overall story is that cloud services and subscription income is working well for the company. Azure is not the whole of Microsoft’s cloud; in fact I would argue that Office 365 (built around hosted Exchange) is equally important, since it drives uptake for other products and services including desktop Office and Dynamics. Office 365 commercial revenue grew 42% and Office consumer grew 12%.

Perhaps more surprising is that this was also a good quarter for Windows and Xbox. Windows OEM revenue up 4%, Surface up 32%, Xbox up 24%. Why is Windows growing? One reason is that businesses really are upgrading to Windows 10, where perhaps they sat out Windows 8 as best they could. This is necessary for security reasons if nothing else. The uptake for Windows 10 has had spin-off benefits for things like Surface sales, as CFO Amy Hood explained in the financial webcast.

Even LinkedIn is doing well, with revenue growth of 37%, driven by job advertising and sponsored content.

In the webcast, CEO Satya Nadella talked up “the intelligent cloud and the intelligent edge” and the role of AI in securing the cloud.

GDPR is also seen as an opportunity. It is less costly to host applications in our GDPR-complaint cloud than to achieve this on-premises, said Microsoft.

So everything is fine for Microsoft? Perhaps, perhaps not. The company has transitioned not only to cloud, but to enterprise, and is becoming less and less visible to consumers. The home PC is not the ubiquitous thing it once was, and in mobile there is no longer any Windows, aside from the occasional Windows 10 tablet. Xbox and gaming PCs are the only bright spots in consumer.

This means the company has changed its character. It has also missed out on things like mobile payments, home assistants and home automation. You can see how Google, Amazon and to some extent Apple are jostling for position as a kind of portal to everything for the consumer, with great strategic advantage as powerful intermediaries to consumer purchases. Microsoft is absent.

Every business person is also a consumer and retreating from this market could prove costly long-term.

For now though, the company is delivering nicely on Nadella’s cloud strategy.

Here is the breakdown by segment, such as it is:   

Quarter ending March 31st 2018 vs quarter ending March 31st 2017, $millions

Segment Revenue Change Operating income Change
Productivity and Business Processes 9006 +1299 3115 +575
Intelligent Cloud 7896 +1166 2654 +506
More Personal Computing 9917 +1142 2523 +488

The segments break down as:

Productivity and Business Processes: Office, Office 365, Dynamics 365 and on-premises Dynamics, LinkedIn

Intelligent Cloud: Server products, Azure cloud services

More Personal Computing: Consumer including Windows, Xbox; Bing search; Surface hardware

What is Azure Sphere?

Microsoft has announced Azure Sphere, and in a manner which I’m guessing many will find confusing.

It is obviously something to do with IoT (Internet of Things) and intended to make your IoT solutions more secure. It is obviously something to do with Azure, Microsoft’s cloud platform. But what is a “crossover class of MCU”? What is an “HLOS small enough for MCUs”? Where does the “Azure Sphere OS”, which is Microsoft’s new Linux, actually run?

image

Let’s start with MCU (Microcontroller Unit). The most informative description of what Azure Sphere is all about is this research paper [PDF]. The target of Azure Sphere is devices powered by microcontrollers – in other words, IoT devices that are more than just sensors and have their own processors, though with less capability than a full SoC (System on a Chip). It is obvious that such devices, if compromised, have considerable risks. A fire in your oven? A radiotherapy machine that kills rather than heals? Toys that spy on children? Not good.

Microsoft’s solution is to have those devices run on a new processor designed in partnership with MediaTek (a large Taiwanese system-on-chip manufacturer) and running the tiny Azure Sphere OS. Built-in features include hardware-based security (private keys in a hardware-protected vault), hardware-enforced compartmentalization, certificate-based authentication and failure reporting. The new processor is called Sopris in Microsoft’s paper.

image
The Sopris Microprocessor

These Azure Sphere devices communicate with Microsoft’s Azure Sphere service to receive both OS and application updates, and to process failure reports.

Azure Sphere does not determine how the production data from your IoT device is handled. You can deal with this as you like, using Azure, another cloud provider, or on-premises infrastructure.

A point of interest is that the Azure Sphere OS runs Microsoft’s own customised version of Linux. Why Linux? Microsoft must have concluded that there was insufficient advantage, and more friction, in using a version of Windows (though Windows IoT Core exists). Use of Linux in Microsoft can only increase; and remember, Linux is now built into Windows.

Why Subsystem for Linux in Windows 10 and Windows Server? And what are the implications?

Microsoft is busy improving Windows Subsystem for Linux (WSL), the compatibility layer that lets you run Linux on Windows. WSL is not an emulator. It accesses the same file system and you can launch Windows applications from WSL, and vice versa. It also runs actual Linux binaries.

The latest announcements cover copy/paste between Linux and Windows, and a tabbed console. Both enhancements are in the skip-ahead insider version of Windows 10, which means they are unlikely to be in the one about to be released, currently known as Spring Creators Update (but rumoured to be getting a name change). In other words, you may have to wait around six months for this to be generally available.

image 

These are not huge changes, but overall WSL is a big deal. Why is Microsoft doing it? One Betanews commenter says:

I still can’t figure out who this whole "Linux-on-Windows" thing is meant for. Developers who work on both platforms maybe? I guess it would be handy for people who just want to try out Linux before migrating to it, but that’s the last thing Microsoft would want to promote.

Microsoft has in fact stated the primary purpose of WSL:

This is primarily a tool for developers — especially web developers and those who work on or with open source projects. This allows those who want/need to use Bash, common Linux tools (sed, awk, etc.) and many Linux-first tools (Ruby, Python, etc.) to use their toolchain on Windows.

There is a bit more to it. Developers are small in number relative to general users, but disproportionately influential, since they make the applications the rest of us run, and if the applications are not there or are inferior, the ecosystem starts to fail and the operating system declines.

I am not sure when it was that developers started to prefer Macs, but I noticed this trend many years ago, perhaps from the time that OS X moved to x86 (2006). This was not just about preferring the Mac user interface. In 2008 Apple opened up iOS, its mobile OS, to third-party applications, and a Mac was required for iOS development (this is still the case). It has long been relatively easy to run a Windows emulator on a Mac, but not vice versa, so for developers who want to support multiple target platforms from one computer, the Mac makes sense.

OS X / macOS is a Unix-like operating system, based on BSD (Berkeley Software Distribution). This means that moving between Linux and Mac is relatively smooth, from a developer perspective. The same tools are generally available. The internet runs mostly on Linux so the Mac has an advantage there as well.

In some cases this is more than just inconvenience. Windows has a long-standing issue with path lengths. MAX_PATH is defined as 260 characters. This limitation can be mostly removed if you have Windows 10 build 1607 or higher. Nevertheless, path issues have made Windows awkward for developing with Java, Node.js, and other languages or frameworks which typically use deeply nested directories. Open source developers perhaps did not care as much about these issues because they were mostly using Mac or Linux.

Microsoft has responded by improving Windows as a platform on which to develop applications. Visual Studio now targets Mac, iOS and Android as well as Windows. MAX_PATH has been alleviated as far as possible. WSL however goes much further. You can install and run Linux development tools and utilities such as gcc, perl, sed, awk, grep, wget, openssl, perl and more. There is no MAX_PATH issue. You can run the Linux build of Apache, PHP, MySQL and more. I used WSL to debug a PHP application and explained how here.

WSL is not perfect. Not everything is implemented. You can check the current issues here. Still, it is genuinely useful and mitigates the advantages of Mac or Linux for developers.

Microsoft has also added WSL to Windows Server. Why? The main focus here seems to be on administrators. There are times when it is handy to run a Linux command or script on Windows Server. It is not intended for production use as a server, though there is now support for background tasks; however it is still per-session so you would need to keep a user logged on in order to run, for example, a web server. More important, Microsoft has not designed WSL for production use as a server platform so it might not be as optimized or reliable as you require.

Implications of WSL

Where is this going? This is where it gets speculative. I will argue though that WSL is in part an admission of defeat. Windows remains an important development platform, but is now greatly outweighed by Unix-like platforms:

  • Web/Internet applications
  • iOS applications
  • Android applications

Where Windows support is needed, developers have many cross-platform options to choose from, a popular choice today being Electron, based on Chromium (the open source foundation of Google Chrome) and Node.js.

Today there seems little chance of Windows winning back market share as a mobile operating system, and the importance of desktop applications looks destined for long slow decline.

Windows Server remains a significant application platform, but Microsoft is focused more on driving developers to Azure cloud services than on Windows Server itself. SQL Server now runs on Linux, ASP.NET Core is cross-platform, and Azure has excellent support for Linux.

All of this leads me to think that WSL will continue to improve, perhaps to the point where production loads are supported on Windows Server, for example. Further, the ability to run Windows applications on Linux (which is more or less what happens in SQL Server for Linux) may become equally as important as the reverse.

Should you go to Microsoft Build?

image

In the beginning there was the Professional Developers Conference (PDC) – the first was in 1992. They were fantastic events, with deep dives into the innards of Windows and how to develop applications on Microsoft’s platform. Much of the technology presented was in early preview and often did not work quite right; some things that were presented never made it to production, famous examples including “Hailstorm” also known as .NET My Services, and the WinFS file system originally slated for Windows Vista.

These events seemed to be a critical part of Microsoft’s development cycle. Internally teams would ready their latest stuff for a PDC session, which was then adapted and re-presented at other events around the world.

Then PDC kind-of morphed into Microsoft Build, the first of which took place in September 2011. Unlike PDC, Build was specifically focused on Windows, and was originally associated with Windows 8 and its new app platform, WinRT. Part of the vision behind Windows 8 was that it would have a strong app ecosystem and Build was about enthusing and informing developers about the possibilities.

As it turned out, the Windows 8 app ecosystem was a bit of a disaster for various reasons. Microsoft had another go with UWP (Universal Windows Platform) in Windows 10. Build in April 2015 was an amazing event, where the company appeared to be going all-out to make UWP on both desktop and mobile a success. Not only was the platform itself being enhanced, but we also got Project Centennial (deliver desktop applications via the Store), Project Astoria (compile Android apps to UWP) and Project Islandwood (compile iOS code for UWP).

Just a few months later the company made a huge about-turn. CEO Satya Nadella’s Aligning Engineering to Strategy memo signalled the beginning of the end for Windows Phone, and the departure of Stephen Elop and the dismantling of the Nokia devices acquisition. That was the end of the universal part of UWP.

Project Astoria was scrapped. The Windows Bridge for iOS (Project Islandwood) still just about exists, but its core rationale (get iOS apps to Windows Phone) is now irrelevant.

Nadella steered the company instead towards “the intelligent cloud” and to date that strategy has been successful, with impressive growth for Office 365 and Microsoft Azure.

Microsoft has announced Build 2018, in early May, I find it intriguing, given the history of Build, that Windows is not currently mentioned on the event’s home page. In the page description metadata it says:

Microsoft Build 2018, Seattle, WA May 7-9, 2018. Microsoft’s ultimate developer conference focused on cloud, artificial intelligence, mixed reality, and more.

In the main text of the page, about the only specific topics mentioned are these:

Take in keynotes by Microsoft CEO Satya Nadella and other visionaries behind the Intelligent Cloud and Intelligent Edge

That sounds like a focus on Azure and AI/ML/IoT/Big Data cloud services, and on mobile and IoT devices. It is a long way removed from the original concept of Build as all about Windows and its application platform.

Windows remains important to Microsoft, and to all of us who use it day to day. Still, if you think about cutting-edge software development today, Windows desktop applications are probably not the first thing to come to mind, nor UWP for that matter.

This being the case, it does make sense for the company to focus on its cloud services at Build, and on diverse mobile platforms through what is now an amazing range of cross-platform tools in Visual Studio.

Of course there will in fact also be Windows stuff at Build, including Windows and HoloLens Mixed Reality, Cortana skills and UWP improvements.

Still, if you can only get to one big Microsoft event in the year, Ignite in September is now a bigger deal and closer to the heart of the new (or current) Microsoft.

Let me add that these Microsoft events, whether Build or PDC, have on occasion seen some stunning announcements. Examples include the unveiling of C# and the .NET Framework, the 2003 Longhorn reveal (yes it all turned to dust), Windows 7 in 2008, and Windows 8 in 2011.

I would like to think that the company still has the capacity to surprise and amaze us; but it must be admitted that the current Build pitch is rather unexciting. Google I/O, incidentally, is on at the same time.

Microsoft introduces new feedback system for technical documentation, will delete existing comments

Microsoft is introducing a new feedback system for https://docs.microsoft.com, used for its technical documentation.

The new system, which you can already see for certain topics such as the Visual Studio IDE, is based on GitHub issues. When you leave a comment, you can specify whether it concerns documentation or product functionality.

image

So far so good, but the downside is that all existing comments will be deleted:

image

The statement “Old comments will not be carried over. If content within a comment thread is important to you, please save a copy.” is unhelpful. Nobody knows what comments will be useful to them in future.

Few things sap enthusiasm for community participation more than having all the past contributions into which you have put effort suddenly zapped. Nor is this the first time, as user guibirow notes:

As much I like the new system idea, I hate the fact that this is happening over and over.
It used to be a Disqus comment system, then moved to LiveFyre, then moved now to this new system, what will be the next?
The worst part of this all is that MS does not care about past content lost on these discussions, so many times I found issues described in the docs that are gone now.
Please, pay attention to your previous mistakes, don’t let the information be lost again, at lest import them as closed issue in the new system.

Sometimes progress has a cost and that is understood. However it is not impossible to migrate content from one system to another. It just takes effort.

Update: Microsoft’s Rob Eisenberg has responded with an explanation and mitigation plan regarding existing comments. He says that a straight migration of the comments is impossible:

    • There is a lot of garbage, spam and even dangerous content within existing LiveFyre comments which would violate GitHub terms of usage and our open source code of conduct, as well as cause security problems.
    • There isn’t a good way to map LiveFyre users to GitHub users and using a bot account to anonymously add comments is questionable with respect to OSS practices and GitHub terms of use.
    • For legal and privacy reasons, we cannot move user-associated data from one system to another without consent from users (GDPR).
    • LiveFyre conversations are threaded, while GitHub issues are not.
    • Placing the old comments into the GitHub Issues system would derail the entire GitHub Issues workflow for both customers and employees and muddle the data.
    • It isn’t clear whether there is a way to invoke GitHub APIs for a migration of this scale such that it wouldn’t violate GitHub API terms of use.

He also has an archiving proposal:

We would take the comments from an article on docs.microsoft.com and then convert them into a Markdown file. During this process, we would strip all user info (remember GDPR). The Markdown file would then be committed to a GitHub repo. Finally, at the bottom of the feedback section, next to the link that says "View on GitHub" we would add a second link that said something like "View Comment Archive". This link would connect you directly to the Markdown comment file for that page.

This sounds positive. At the same time, it is a mess that illustrates some of the disadvantages of a “best of breed” approach to solving technical problems. If Microsoft could use its own technology to host a documentation and commenting system, and a source code management and issue tracking system for that matter, this issue would not occur, and users would not need multiple accounts, causing the legal issues mentioned above.

Microsoft in fact used to use its own platform for all the above but decided to shift to using third-party solutions because they worked better. That seemed to be a good thing, improving user experience and productivity, but becomes a problem when what seems to be the best third-party option changes.