In May 2021, CppCast recorded a podcast called ABI stability (CppCast #300). In this podcast, Marshall Clow and the hosts discussed rather old news — Visual Studio compilers support the AddressSantitzer tool. We have already integrated ASan into our testing system a long time ago. Now we want to tell you about a couple of interesting errors it found.
![](http://webcf.waybackmachine.org/web/20211006155946im_/https://habrastorage.org/getpro/habr/hub/0a8/734/20a/0a873420a5a05dad2d109eaebb9ab127.png)
Development for Windows *
Developing for Microsoft OSs
- New
- Top
- All
- ≥0
- ≥10
- ≥25
- ≥50
- ≥100
Controlling Brushless Motors from Windows
![](https://webcf.waybackmachine.org/web/20211006155946im_/https://habrastorage.org/getpro/habr/upload_files/d88/ed7/0fc/d88ed70fc73a68e43720cd5dd3bb5ac2.jpg)
In this video, we will look at how to connect brushless motors to a Windows computer via USB. We are going to connect a network of Servosila brushless motor controllers to the computer. The other option is CANbus interface, but we will look at CANbus in a dedicated video. A regular USB cable is used. Note that the USB cable is not used to power the controller and its motor.
The first brushless motor controller in network appears to Windows as a Virtual COM port. Once connected via USB, it can be found in a general list of devices in the Window's "Settings" window. Up to 16 controllers can be connected this way via a single USB cable to the same control computer or a PLC. If one of the interconnected brushless motor controllers is connected to a computer via USB, then that particular controller becomes a USB-to-CANbus gateway for the rest of the network.
If your computer happens to have more that one serial port, you may wish to check a COM port's number assigned by Windows to the controller. Then, you pick this COM port in a drop down menu in the Servoscope software, and click Connect. If the COM port is not listed in the drop-down menu, click the Refresh button. If everything is good, the controller appears in a list of devices. Double-click to open up a control and configuration window.
How WCF Shoots Itself in the Foot With TraceSource
![](https://webcf.waybackmachine.org/web/20211006155946im_/https://habrastorage.org/getpro/habr/upload_files/d3b/936/a4b/d3b936a4b94c905ad804fa77d2d42a63.png)
We don't often get the chance to write something on parallel programming issues. This time we "got lucky". The TraceEvent standard method has some implementation peculiarities. They resulted in an error with multiple threads blocking. So we'd like to warn users about this nuance and cover this interesting case from our users support practice. Why was our support involved? Keep reading to find out. Enjoy the reading!
[Tutorial] How to set up Atom IDE for python development
![](https://webcf.waybackmachine.org/web/20211006155946im_/https://habrastorage.org/getpro/habr/upload_files/a85/882/2b9/a858822b917a5ad7e76f2cea7b7a3e53.png)
Setting up Atom for working with python is quite a tricky task. I've spent a lot of time making it work. Autocompleting, autoformatting, type hints, and much more will be available to you after reading this tutorial.
What Is yield and How Does It Work in C#?
![](https://webcf.waybackmachine.org/web/20211006155946im_/https://habrastorage.org/getpro/habr/upload_files/f6a/285/280/f6a2852806c8ed301c2fcad7dc12abfa.png)
C# capabilities keep expanding from year to year. New features enrich software development. However, their advantages may not always be so obvious. For example, the good old yield. To some developers, especially beginners, it's like magic - inexplicable, but intriguing. This article shows how yield works and what this peculiar word hides. Have fun reading!
Intercepting Program Startup on Windows and Trying to Not Mess Things Up
![](https://webcf.waybackmachine.org/web/20211006155946im_/https://habrastorage.org/webt/tw/cm/do/twcmdoc7fmvepwh_a7v1x3gn4gc.png)
Have you ever heard of Image File Execution Options (IFEO)? It is a registry key under HKEY_LOCAL_MACHINE that controls things like Global Flags and Mitigation Policies on a per-process basis. One of its features that drew my attention is a mechanism designed to help developers debug multi-process applications. Imagine a scenario where some program creates a child process that crashes immediately. In case you cannot launch this child manually (that can happen for various reasons), you might have a hard time troubleshooting this problem. With IFEO, however, you can instruct the system to launch your favorite debugger right when it's about to start this troublesome process. Then you can single-step through the code and figure what goes wrong. Sounds incredibly useful, right?
I don't know about you, but I immediately saw this feature as a mechanism for executing arbitrary code when someone creates a new process. Even more importantly, it happens synchronously, i.e., the target won't start unless we allow it. Internally, the system swaps the path to the image file with the debugger's location, passing the former as a parameter. Therefore, it becomes the debugger's responsibility to start the application and then attach itself to it.
So, are there any limitations on what we can do if we register ourselves as a debugger? Let's push this opportunity to the limits and see what we can achieve.
NTFS Reparse Points
![](https://webcf.waybackmachine.org/web/20211006155946im_/https://habrastorage.org/webt/6a/gf/4b/6agf4bcaset4np-2znvb5r9taqi.jpeg)
Don't spoil Desktop Software Engineers with your Mobile First solutions, think about it
English translation of Philip Ranzim's post at his blog page here. (With author's permission)
Once upon a time, my girlfriend started using Instagram. She asked me to sign up for it and subscribe to it. I tried — I couldn't do it because you couldn't register at Instagram from a desktop computer. I then thought — how weird people are. Well, what kind of fool would make a software product that can't be used with a normal computer? They won't succeed, and this Instagram will be a marginal service for a bunch of strange women, who for some reason don't like desktops.
It has only been a few years, the market has put everything in place — and the biggest fool was me. And the geniuses at Instagram predicted how and where everything would develop. Today, most of the user applications are made primarily for mobile platforms. At best, they include a universal web client, which is still optimized for mobile phones. Because users love iPhones, not computers. Business people sat down, counted, and made a decision — let's make more money, let's have mobile First everywhere.
Powershell way to exclude folder from Defender list
Manly, now you can stop reading, go to the PowerShell and update excludes:)
But if you are want to see how to perform this in more detail — welcome under the habrcut.
UPD: Added a script to add selected folder to excluded Defender locations (at the end of the post)
Windows Native Applications and Acronis Active Restore
![image](https://webcf.waybackmachine.org/web/20211006155946im_/https://habrastorage.org/getpro/habr/post_images/6b2/d8c/b4d/6b2d8cb4d72a8d58d85fc2064634a0f7.png)
Service for Active Restore or the Story of an Industrial Project at Innopolis
![image](https://webcf.waybackmachine.org/web/20211006155946im_/https://habrastorage.org/getpro/habr/post_images/b9e/2e6/1c8/b9e2e61c86c5b53a43ed3ee998d7db0f.jpg)
Active Restore: Can we Recover Faster? Much Faster?
![image](https://webcf.waybackmachine.org/web/20211006155946im_/https://habrastorage.org/getpro/habr/post_images/a32/b72/01a/a32b7201ae854ecf9f8d8eabefb80da1.jpg)
The Little Scrollbar That Could Not
![](https://webcf.waybackmachine.org/web/20211006155946im_/https://habrastorage.org/webt/b6/xe/uj/b6xeuj-pps_cnuo5ky22sr0yl5o.png)
The new Windows Terminal version has been recently released. Everything would be fine, but performance of its scrollbar leaves a great deal to be desired. Time has come to poke it and have some mumbo jumbo dances with it.
Announcing Universal Print: a cloud-based print solution
![](https://webcf.waybackmachine.org/web/20211006155946im_/https://habrastorage.org/webt/5l/_k/nq/5l_knqy5b1rlsabp-ivqeqtkdqo.png)
PVS-Studio Is Now in Chocolatey: Checking Chocolatey under Azure DevOps
![Рисунок 1](https://webcf.waybackmachine.org/web/20211006155946im_/https://habrastorage.org/webt/ag/me/sd/agmesd-888bigj7hx1kuw3w_hn8.png)
We continue making the use of PVS-Studio more convenient. Our analyzer is now available in Chocolatey, the package manager for Windows. We believe this will make it easier to deploy PVS-Studio, particularly in cloud services. So right off the bat, we also checked the source code of the same Chocolatey. Azure DevOps took on the role of the CI system.
How to Make Any Process Work With Transactional NTFS: My First Step to Writing a Sandbox for Windows
One of the modules in the Windows kernel provides support for combining a set of file operations into an entity known as a transaction. Just like in databases, these entities are isolated and atomic. You can make some changes to the file system that won't be visible outside until you commit them. Or, as an alternative, you can always rollback everything. In any case, you act upon the group of operations as a whole. Precisely what needed to preserve consistency while installing software or updating our systems, right? If something goes wrong — the installer or even the whole system crashes — the transaction rolls back automatically.
From the very first time I saw an article about this incredible mechanism, I always wondered how the world would look like from the inside. And you know what? I just discovered a truly marvelous approach to force any process to operate within a predefined transaction, which this margin is too narrow to contain. Furthermore, most of the time, it does not even require administrative privileges.
Let's then talk about Windows internals, try out a new tool, and answer one question: what does it have to do with sandboxes?
Hyper-V for Developers on Windows 10
Microsoft Hyper-V, codenamed Viridian, is a native (type 1) hypervisor that directly runs on the hardware, compared to VMware Workstation, VirtualBox, and other type 2 or hosted hypervisors. It was first released in Windows Server 2008, and it allows you to run virtual machines on x86-64 systems.
As mentioned, with Windows 10, Microsoft optimized Hyper-V for developers. Hyper-V allows developers to quickly spin up development virtual machines on Windows 10 with excellent performance, but it is also used in a couple of other development features as a back-end technology, like the Android Emulator, the Windows Subsystem for Linux 2 or Docker Containers. In this article, we will have a quick look at what Hyper-V on Windows 10 can over for developers.
![](https://webcf.waybackmachine.org/web/20211006155946im_/https://habrastorage.org/webt/cv/--/vk/cv--vkfuxzyknb2pqctasnpabo8.jpeg)
SARIF SDK and Its Errors
Azure SDK for .NET: Story about a Difficult Error Search
When we decided to search for errors in the Azure SDK for .NET project, we were pleasantly surprised by its size. «Three and a half million lines of code,» we kept saying, studying the project's statistics. There might be so many findings. Alas and alack! The project turned out to be crafty. So what was the zest of the project and how it was checked — read in this article.
Windows Terminal Preview v0.7 Release
Windows Terminal Updates
Panes
You are now able to split your Terminal window into multiple panes! This allows you to have multiple command prompts open at the same time within the same tab.
Note: At the moment, you’re only able to open your default profile within a new pane. Opening a profile of your choice is an option we’re planning to include in a future release!
![](https://webcf.waybackmachine.org/web/20211006155946im_/https://habrastorage.org/getpro/habr/post_images/8fd/846/426/8fd8464262f2a92659d4f2acb085a840.gif)
Read more below.