My initial frustration trying to configure our internal VoIP phones that were...
I remember when Microsoft made their initial internal roll-out of its VoIP phones. The VoIP phones were integrated with a desktop app which let you configure the phone, managed your telepresence, as...
View ArticleAlternate definitions for English words, as inferred from bug reports
Here are some terms that appear in bug reports. "Empty" means "There are a bunch of things here, but not the ones I wanted." "Blank" means "There are things, maybe." "The picture is wrong" can mean...
View ArticlePredator-prey reversal: Rock lobsters vs whelks on Malgas Island and Marcus...
Malgas Island is dominated by rock lobsters, who happily feast upon whelks. Just 4km away, Marcus Island is dominated by whelks, not a rock lobster to be found. Researcher Amos Barkai couldn't figure...
View ArticleHow do I destruct an object that keeps a reference to itself, because that...
Consider the case of an ordered work queue. Components can queue work to the worker thread, with the expectation that the work will run sequentially. class OrderedWorkQueue { public:...
View ArticleWhat order are pages in a memory-mapped file flushed out to disk?
Say you create a memory-mapped file mapping and write data to it. In which order will the pages be flushed out to disk? Is it in the order the pages were written? Or are pages closer to the beginning...
View ArticleEven if your assembly language code doesn’t call any Windows APIs, you still...
Writing in assembly language doesn't absolve you from adhering to the software conventions. Certainly you have more flexibility in assembly language, but that doesn't give you freedom to do anything...
View ArticlePrecision questioning: The cynical description
Precision questioning is a technique used by some senior executives at Microsoft. Although precision questioning positions itself as a toolkit for critical thinking and problem solving, its use in...
View ArticleAsking for clear written documentation that Require trusted path for...
A customer had turned on the Require trusted path for credential entry policy (under Computer Configuration, Administrative Templates, Windows Components, Credential User Interface). They demanded...
View ArticleWhy is there a limit of 15 shell icon overlays?
There is a limit of fifteen shell icon overlays. Why fifteen? The value 15 came from the corresponding limit for image lists. The ImageList_SetOverlayImage function supports up to 15 image list...
View ArticleA simple workaround for the fact that std::equal takes its predicate by value
The versions of the std::equal function that takes a binary predicate accepts the predicate by value, which means that if you are using a functor, it will be copied, which may be unnecessary or...
View ArticleWhat is WofCompressedData? Does WOF mean that Windows is a dog?
A customer doing performance analysis of their program discovered that there were reads from an alternate data stream called WofCompressedData. On the Internet, if you search for...
View ArticleHow do I write a function that accepts any type of standard container?
Suppose you want a function to accept any sort of standard container. You just want a bunch of, say, integers, and it could arrive in the form of a std::vector<int> or a std::list<int> or a...
View ArticleGetting a value from a std::variant that matches the type fetched from...
Suppose you have two std::variant objects of the same type and you want to perform some operation on corresponding pairs of types. using my_variant = std::variant<int, double, std::string>; bool...
View ArticleThe 2019 Microsoft Giving Campaign Run/Walk comes with some ground rules
Today is the Microsoft Giving Campaign 5K Run/Walk, which raises money in support of the Crohn’s & Colitis Foundation, KEXP radio, Boys & Girls Clubs of Bellevue, and (new this year) Plymouth...
View ArticleDetecting whether the -opt flag was passed to cppwinrt.exe: Using __has_include
I was upgrading the Window UWP Samples repo to take advantage of the new -opt flag introduced in C++/WinRT 2.0. This provides performance improvements for accessing static class members, and avoids...
View ArticleWhy was Windows for Workgroups pejoratively nicknamed Windows for Warehouses?
The first version of Windows with networking support built in was Windows for Workgroups 3.10. The intended audience for this was small businesses who wanted to network their computers together into...
View ArticleWhy does Windows list my SSD system drive as removable?
This has probably happened to you. You right-click the Safely remove hardware and eject media icon, and among the removable devices is your primary hard drive! Surely you can’t eject your primary hard...
View ArticleWhy does the GetVersion function report the major version in the low-order...
Laura Butler wonders whose idea it was to have the GetVersion function report the major version in the low-order byte, and the minor version in the high-order byte. This is completely messed up: You...
View Article2019 mid-year link clearance
The screenplay for Spider-Man: Into the Spider-Verse is online. Sony was kind enough to make our #Spiderverse script available online. Here it is if you’re interested. https://t.co/CO2EQCKdD3 —...
View ArticleA program to detect mojibake that results from a UTF-8-encoded file being...
It is not uncommon to see UTF-8-encoded data misinterpreted as code page 1252, due to file content lacking an explicit encoding declaration, such as you might encounter with the Resource Compiler. So...
View Article