The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

The advantage of knowing your limits of discrimination
Jul 29, 2009
Post comments count 0
Post likes count 0

The advantage of knowing your limits of discrimination

Raymond Chen
Raymond Chen

A story a while back about ridiculously expensive speaker cables and James Randi's challenge to tell the difference between them and modestly-priced cables reminded me of a conversation I had with a wine-loving friend of mine. He went on a wine tasting tour and sampled wines of varying quality and price. His conclusion was that he could detect the correlation between price and quality up until about $75/bottle. Beyond that point, the wines all tasted roughly equally great. Conclusion: There's no point in my friend spending more than about $75 on a bottle of wine. Once you know the limit of your discriminatio...

How do I put a window at the edge of the screen without triggering the automatic positioning behavior?
Jul 29, 2009
Post comments count 0
Post likes count 0

How do I put a window at the edge of the screen without triggering the automatic positioning behavior?

Raymond Chen
Raymond Chen

Last time, we saw that Windows 7 lets you position windows to fill the left or right half of the screen by just dragging the window to the appropriate edge. (This also works for the top and bottom half of the screen.) But what if you just want a window near the edge without the automatic positioning? Just grab the window from the far edge. The auto-positioning behavior is triggered by the mouse position, not the window position. (This is hinted at in the animation that accompanies the docking: The ripple effect is centered on the mouse, not the window. Here are more details on Aero Snap design.) If you d...

Mr. Lee CatCam lets you see what a cat does all day
Jul 28, 2009
Post comments count 0
Post likes count 0

Mr. Lee CatCam lets you see what a cat does all day

Raymond Chen
Raymond Chen

Jürgen Perthold modified a lightweight camera and hung it around his cat's neck, snapping a picture every few minutes. Join Mr. Lee on a trip through the neighborhood. If those trips aren't enough, you can also see what Jacquie is up to.

How do I quickly position two windows side by side?
Jul 28, 2009
Post comments count 0
Post likes count 0

How do I quickly position two windows side by side?

Raymond Chen
Raymond Chen

Commenter n/a posted a laundry list of feature requests. I'm not going to address all of them here (though I inadvertently addressed one of them a while ago). But today I'm going to address request number two, "A simple switch to create two windows, one alongside the other, vertically split." That feature has been around since Windows 95, possibly even before that but I haven't bothered to check. In the taskbar, click the button for the first window you want to position, then hold the Ctrl key and right-click the button for the second window. Select Tile Vertically. Bingo, the two windows are positioned ...

Conway-Kochen Free Will Theorem: Lecture series
Jul 27, 2009
Post comments count 0
Post likes count 0

Conway-Kochen Free Will Theorem: Lecture series

Raymond Chen
Raymond Chen

Some time ago, there was a bit of excitement when researchers John H. Conway (best known to geeks as the inventor of The Game of Life, a Turing-complete cellular automaton) and Simon Kochen (best known to geeks as, um, okay, he's not known to geeks) concluded that if human beings have free will, then so too do elementary particles. In 2009, Conway gave a series of six one-hour lectures on this theorem. The lectures have been recorded and are available online. (I also found a nice summary of a public lecture by John Conway on the same subject, for those who are impatient and just want the one-page versi...

Polling by sleeping versus polling by waiting with a timeout
Jul 27, 2009
Post comments count 0
Post likes count 0

Polling by sleeping versus polling by waiting with a timeout

Raymond Chen
Raymond Chen

Commenter Francois Boucher asks it's better to write a background worker thread that polls with and a flag, or polls by waiting for an event with a timeout? "Which scenario is better? The first one uses only 1 handle for the thread. The second one will use 2. But is the first scenario wasting more thread time? Is it worth using the event (kernel object)?" Yeah, whatever. I don't quite understand why you want to pause every so often. Why not just do the work at low priority? When there are more important things to do, your background thread will stop doing whatever it's doing. When there is an available C...

The guerilla wedding
Jul 24, 2009
Post comments count 0
Post likes count 0

The guerilla wedding

Raymond Chen
Raymond Chen

When two of my friends were getting married (to each other), there was of course a lot of effort spent on finding the right wedding location. To relieve the tension, when we got together, we would amuse ourselves by coming up with guerilla wedding locations, which was our term for surreptitiously holding a wedding ceremony at a location without the site owner's knowledge. Everybody would converge on the designated location, wait for the secret signal, and then spontaneously assemble for a wedding ceremony, wrapping it all up before anybody else knew what happened. Here are some ideas in the Seattle area we came ...

If you wished a language supported the preprocessor, you know, you can fix that
Jul 24, 2009
Post comments count 0
Post likes count 0

If you wished a language supported the preprocessor, you know, you can fix that

Raymond Chen
Raymond Chen

A customer had the following question about the message compiler, something that I had noted almost nobody uses. Well how do you do, we found somebody who actually uses it. Anyway, the question went like this (paraphrased, as always): Can I use symbolic constants in my .mc file? For example, I have a message file that goes like this: I have symbols defined in a header file and that I, of course, have to keep in sync with the error messages. One way to do this is to change the messages: And in my function that prints error messages, I can insert these magic parameters: This is obviously a rather h...

Changes to the the 2009/2010 Seattle Symphony subscription season, part 2
Jul 23, 2009
Post comments count 0
Post likes count 0

Changes to the the 2009/2010 Seattle Symphony subscription season, part 2

Raymond Chen
Raymond Chen

The Seattle Symphony made a large number of changes to their 2009/2010 program line-up. I've updated the 2009/2010 Seattle Symphony subscription season at a glance accordingly. The Brahms Variations on a Theme by Hadyn, the Brahms/Schoenberg Piano Quartet in g minor, and the Shostakovich Symphony #15 moved to different dates, and a large number of substitutions or single-piece additions/subtractions were made. The concert for the week of October 30 was cancelled outright; ticket-holders will be issued tickets for the week of May 6 instead.