• The Old New Thing

    I think this person's monitor is broken: It doesn't know how to render text in capital letters


    Some time ago, somebody asked a question about why, when they do 1 and 2, they get extra thing 3.

    "The extra 3 is there because of the 456 feature. BUT DO NOT DISABLE THE 456 FEATURE JUST BECAUSE YOU DON'T LIKE 3. The 456 feature is important, because it ensures that 2 runs to completion. Otherwise, you risk data loss."

    The person wrote back, "I disabled the 456 feature, and that fixed it. Thanks!"

    It appears that that person's monitor is broken: It doesn't know how to render text in capital letters.

  • The Old New Thing

    Why do I have to hit an arrow key before a keyboard-initiated Move operation will follow the mouse?


    TehShrike wonders why you have to hit an arrow key before a keyboard-initiated Move operation will follow the mouse.

    I don't know, but I think it's just a bug. Mind you, it's a bug with extraordinary seniority (probably going as far back as Windows 1.0).

    The Move and Size commands from the system menu are operated by the same common function, and the keyboard-initiated Size command requires you to hit an arrow in order to specify which edge you are trying to resize. The Move command doesn't need to let you pick a side (since moving is independent of sides), but the common helper function waits for the arrow key regardless of the underlying operation.

  • The Old New Thing

    Operations jargon: Internet egress


    As I've noted before, the operations team has their own jargon which superficially resembles English. Some time ago, they sent out a message with the subject A New Internet Egress Path Is Coming.

    Translation: We're changing the way computers access the Internet.

    Bonus jargon: traffic on the edge. This does not refer to traffic that is on the verge of a nervous breakdown. It merely refers to traffic that crosses the boundary between intranet and Internet.

  • The Old New Thing

    Microspeak: Party, in various forms


    Remember, Microspeak includes words and phrases in general use, as long as they are employed at Microsoft at a higher rate than in the general population, or in specific situations that may not be obvious to the uninitiated. They are the words and phrases you need to use in order to fit in.

    Today's word is party, in various forms, and usually paired with the preposition on. In general, it means to use, change, or modify with few or no constraints. These aren't genteel tea parties; they're more like wild college parties, the kind that end with the police being called.

    LockBits returns a pointer to the pixel buffer, and the caller can party on the memory inside the rectangle until it calls UnlockBits.

    When used with permission verbs like can and may, the usage indicates that the component has permission to read from and write to the memory, subject to the given constraints.

    The code partied on our data structures because it used a pointer after freeing it.

    It is often used in a negative sense to indicate that the component wrote to memory that it should not have. Sort of an unauthorized party. (Compare fandango on core.)

    The Contoso notifier injects a DLL into Explorer so it can party on the internal data that keeps track of icons in the notification area and thereby disable the icons of its competitors.

    These sorts of unauthorized parties can be malicious and willful as well as merely accidental.

    The exp branch is a party branch. You can commit your changes there so we can test it before pulling it into the release branch.

    The word party can be used to describe an environment in which the normal rules and constraints are reduced or removed entirely. Here, the party branch is presumably a branch of the project in which the usual procedures for code changes don't apply, or at least apply less strictly than normal. You can put any experimental changes in the exp branch, and then when a new build comes out the next day, you can run your tests against it to see if they solve the problem. If so, then you can start filling out the necessary paperwork to pull the changes into the release branch.

    Many release branches have an experimental offshoot.¹ The idea is that people developing fixes to the product can commit their changes to the experimental branch to see how they work out. If the changes look good, they are pulled into the release branch. If the changes doesn't pass muster, they are rolled back. The developers who use the experimental branch are on their honor to keep the branch in good condition.

    Note that this sense of party is relative. The experimental branch is a big party compared to the staid and formal release branch, but it's still not a crazy free-for-all. You still need to be judicious about what you put into the party branch so you don't ruin the party for everybody else.

    The Q1 branch is locked down for the beta, but you can party your post-beta fixes into the Q2 branch.

    The above example further highlights the relative nature of the term party. Even though the Q2 branch is open to post-beta fixes, you still have to go through the usual test and review processes for fixing bugs. It's just that Q2 will accept any approved bug fix, whereas Q1 will accept only fixes for bugs marked beta-blocking.

    (That's a little extra Microspeak for you: blocking. In Microspeak, a beta blocker is not a pharmacological agent. Rather, it's something that prevents the beta from being released.)

    ¹ In Windows, the experimental branch associated with a release branch is typically called cbt. This officially stands for Central Build Team, but some people who live in my house like to joke that it stands for Can't Be Trusted.

  • The Old New Thing

    Racing email against a snail


    The Windows team double-dogfoods Windows Server and Exchange Server, and while this is good for both products, it can be quite frustrating when something goes wrong.

    I remember back in the early days of the Windows 95 project, the mail servers once got so messed up that some email messages were not delivered for several days. After a colleague told me that he had just received an email message that I had sent several days earlier, I went to the library to look up the typical speed of a garden snail. (This was back in the days when you had to use an actual library to look up facts, and cat videos were available only once a week. The Internet looked like this and a few years later, this.)

    Conclusion: A garden snail would have delivered the message faster than our email system.

    More recently, a wrinkle in the space-time continuum resulted in one of our automated systems sending out warning messages four months after the anomalous situation was detected. (The anomalous situation was repaired almost immediately, so the warning was not only late, it was spurious.)

    One of my colleagues remarked,

    I have a story I read to my grandkids where Frog writes Toad a letter and gives it to a passing snail, who delivers it to Toad's house four days later.

    Can we hire that snail?

    Today is Thank a Mailman Day.

  • The Old New Thing

    When the Web page says that a tool is not supported, it means that if you find a problem and contact technical support, they're just going to point you back to the Web page


    I file this under the category of People refuse to read what is right in front of them.

    There used to be a number of utilities available for download which all go by the name PowerToys. And they all contain text like this:

    Note: We take great care to ensure that PowerToys work as they should, but they are not part of XYZ and are not supported by Microsoft. For this reason, Microsoft Technical Support is unable to answer questions about PowerToys.

    This sentence isn't exactly in the fine print either. It's right there at the top of the page.

    This nevertheless does not stop a customer from contacting their support representative, who then turns around and sends email to the product team that goes something like this:

    I am working on a customer case, 602214129.

    The customer reports that the XYZ PowerToy does not work under conditions A, B, and C. My questions are

    1. Is a fix available for this?
    2. What are the support limitations around this tool?

    The tool was downloaded from ⟨http://www.microsoft.com/…⟩

    Somebody then has to point the customer liaison to the text right at the top of the Web page they linked to that quite clearly spells out the support limitations of the tool: It comes with no support. Apparently both the customer and the customer liaison failed to notice it.

  • The Old New Thing

    There are so many things that call themselves message queues


    There are a whole bunch of things in Windows that call themselves message queues, and none of them have anything to do with each other.

    There is the window manager message queue, which holds window messages.

    And there is the Microsoft Message Queue (MSMQ) which is a networking technology for allowing multiple computers to communicate with each other by sending and reading messages.

    The Windows Mobile folks didn't want to feel left out, so they created their own Message Queue Point-to-Point message queue system.

    These are all unrelated technologies. Trying to, say, read window messages from a MSMQ message queue will get you nowhere.

  • The Old New Thing

    We know your job is hard, you don't have to show us


    Some years ago, I attended a internal presentation where one group was teaching another group how to use their new feature. This particular feature was a "Just plug in the things you want, click the Apply button, and sit back and relax while we figure out how to do what you asked" type of feature.

    The presentation leader showed some examples of the feature in action, and gave some clear, concise guidance on how the feature should be used, guidance like "Use Pattern A when the user is faced with a choice between two clear options, but use Pattern B when the situation is more open-ended." So far so good.

    The next part of the presentation was given to the feature's lead designer. The lead designer called out some design principles that the feature adhered to. For example, "Notice that we always position the Widget above the Frob."

    But then the lead designer started getting into details that were basically a fifteen-minute way of saying, "Look how hard our job is." The designer called up the graphic design software, showing off the bazillion buttons and sliders and switches that the designers used to fine-tune the colors, gradients, and shading. The designer then went through the animation storyboard templates and showed how each of the carefully-plotted curves achieves the desired visual effect.

    Once we reached the "Look how hard our job is" portion, the presentation ground to a halt.

    The lead designer lost sight of the fact that all this information about how hard the feature was to design was not actionable. The attendees did not need this information in order to use the feature effectively. It was just showing off for the sake of showing off, and it basically wasted everybody's time.

  • The Old New Thing

    2013 year-end link clearance


    Another round of the semi-annual link clearance.

    And, as always, the obligatory plug for my column in TechNet Magazine:

    The retirement of TechNet Magazine also spells the end of the Windows Confidential column, so this is the last of the obligatory plugs, at least until I have some other obligatory thing to plug.

  • The Old New Thing

    Essays from the funniest man in Microsoft Research


    James Mickens has written a number of essays for ;login: magazine. The wall-of-text presentation is kind of scary, and the first time I encountered them, I skimmed the essays rather than reading them through. As a result, my reaction was, "I got tired." But if you follow the path and read the essays through, you realize that they are all brilliant.

    You can't just place a LISP book on top of an x86 chip and hope the hardware learns about lambda calculus by osmosis.

    and in the "so funny because it's true that it wraps around and isn't funny any more, but then wraps around a second time and is funny again, but with a tinge of sadness" category:

    ... because in those days, you could XOR anything with anything and get something useful.
    When researchers talk about mobile computers, they use visionary, exciting terms like "fast", "scalable", and "this solution will definitely work in practice."
    With careful optimization, only 14 gajillion messages are necessary.

    One of my colleagues found the stash of columns in the "Miscellaneous Excellence" section on Mickens' Web site and reacted with "This is better than getting free cookies."

    Here's an interview with "the funniest man in Microsoft Research".

    I would have done this for TechNet Magazine if I had known this was possible.

    Also if I had the talent.

    Mostly the talent part.

    Bonus Mickensian reading: What is art?

Page 3 of 93 (922 items) 12345»