Inadvertently designing a horrible time and date picker
Perhaps inspired by the tongue-in-cheek competition to design the worst volume control, an internal tool here at Microsoft managed to create the worst time and date picker: Prev January 2017 Next S M...
View ArticleMicrospeak: The triad, the ad-hoc acronyms that result, and the arithmetic...
At Microsoft, you'll often encounter three letters put together to form an acronym representing what appears to be a group of people of some sort. Document title: Monthly meeting with CMR CMR will...
View ArticleWhen MSDN says NULL, is it okay to use nullptr?
In various places, MSDN will talk about the behavior corresponding to the case where a handle type has the value NULL. A customer wanted to know whether it was safe to use nullptr in such cases, or...
View ArticleWhat’s the difference between CreateTimerQueueTimer and SetThreadpoolTimer?
A customer wanted to know what the difference is between CreateTimerQueueTimer and SetThreadpoolTimer, and what factors they should consider when choosing between them. (The customer explained that...
View ArticleWhy is the daylight saving time cutover time 1 millisecond too soon in some...
If you dig into the Windows time zone database, you'll see that some time zones list the moment when the time zone transitions into or out of daylight saving time as 23:59:59.999 instead of midnight....
View ArticleTorsken har ankommet
I can fake my way through a Norwegian newspaper, but this goes by too fast for me to follow at normal speed. I have to pause each subtitle to give me time to read it. Last year, to introduce the...
View ArticleStop cherry-picking, start merging, Part 1: The merge conflict
Cherry-picking is a common operation in git, and it's not a good idea. Sometimes it's a neutral idea, but I haven't yet found a case where it's actually good. This is the start of a series that will...
View ArticleStop cherry-picking, start merging, Part 2: The merge conflict that never...
Last time, we saw how editing the code affected by a cherry-pick creates a potential merge conflict that doesn't become realized until the original commit and its cherry-picked doppelgänger meet in a...
View ArticleStop cherry-picking, start merging, Part 3: Avoiding problems by creating a...
The first two parts of the series discussed the bad things that can happen if you cherry-pick a change that is subsequently modified. If you're lucky, you get a merge conflict. If you're not lucky,...
View ArticleStop cherry-picking, start merging, Part 4: Exploiting the recursive merge...
The last few days have looked at the dangers of cherry-picking, both in terms of latent merge conflicts and (even worse) missing merge conflicts, and last time, I proposed the alternative to...
View ArticleStop cherry-picking, start merging, Part 5: Exploiting the three-way merge
Last time, we answered some questions based on what we know about the recursive merge algorithm. Today, we'll answer questions based on what we know about the three-way merge algorithm. After choosing...
View ArticleStop cherry-picking, start merging, Part 6: Replacing the temporary fix with...
Continuing our exploration of using merges as a replacement for cherry-picking, here's another scenario you can now solve: How do I make a change in the master branch that will be automatically...
View ArticleStop cherry-picking, start merging, Part 7: Preventing a change from leaving...
Still continuing our exploration of using merges as a replacement for cherry-picking, here's another scenario you can now solve: How do I make a change in a branch that will not propagate when it...
View ArticleStop cherry-picking, start merging, Part 8: How to merge a partial cherry-pick
Continuing our exploration of using merges as a replacement for cherry-picking, here's another scenario you can now solve: What if I want to take only part of a commit into another branch? Well, if...
View ArticleStop cherry-picking, start merging, Part 9: Chasing the commit
Consider the following situation: apple M1 master apple ︎ A ︎ apple apple berry V1 ← ← ← V2 ← V3 victim ︎ ︎ F1 ← F2 ← ← ← F3 feature apple berry cherry From a...
View ArticleThe mystery of the stalker dental hygienist
Ony of my colleagues remarked that every time he visits the dentist, the hygienist seems to have stalker-level knowledge of his life. "How did your son do at the chess tournament?" "Have you decided...
View ArticleStop cherry-picking, start merging, Part 10: Web-based workflow for VSTS
If you uses Visual Studio Team Services (VSTS) as your repository hosting service, then a lot of the workflows described in this series can be performed completely from the Web interface. Find the...
View ArticleStop cherry-picking, start merging: Index
Here's an index to the "Stop cherry-picking, start merging" series that just completed, if that's the sort of thing you are into: Stop cherry-picking, start merging, Part 1: The merge conflict Stop...
View ArticleWhat are the odds that two pull requests get completed at the exact same time?
The so-called Fall Creators Update of Windows 10 encompassed four million commits in half a million pull requests. A project of this size exposes issues in infrastructure by stressing it to levels...
View ArticleA rare opportunity to fact-check the “celebrity net worth” sites
The late John Mahoney left an estate worth "north of $5 million" according to documents obtained by celebrity news site TMZ. This gave me a rare opportunity to fact-check various "celebrity net worth"...
View Article