• The Old New Thing

    The Washington 2008 unclaimed property auction

    • 8 Comments

    After five years, the contents of abandoned safe deposit boxes are turned over to the state, which attempts to contact the owners, but if the owners cannot be located after three years, they are put up for auction. Things like this antique watch with a Swedish dedication: "Till min kära syster Nanny fr. Elin — Mors klocka" = "To my dear sister Nanny, from Elin — Mom's watch". It's sad that something with such obvious sentimental value is being sold off.

    Or, if you are more of the nerdy type, you could bid on Star Trek comic books graphic novels or a Michael Jordan rookie trading card.

  • The Old New Thing

    How does PostQuitMessage know which thread to post the quit message to?

    • 8 Comments

    Commenter bav016 asks how functions like PostQuitMessage and SetTimer(NULL) know which thread the messages should go to. Unlike some functions such as InvalidateRect which have a window handle parameter that lets you say which window you want to operate on, PostQuitMessage and SetTimer(NULL) don't say which thread the WM_QUIT or WM_TIMER message should go to. How do they decide?

    The messages go to the current thread; that is, they are delivered to the thread that called the function in the first place.

    There are many functions which operate on an implicit message queue, and those cases, they operate on the message queue associated with the thread making the call. If you call GetKeyState you retrieve the calling thread's keyboard state. If you call GetMessage you retrieve messages from the calling thread's message queue. If you call InSendMessage, you are told about the calling thread's message processing state. If you call GetQueueStatus you retrieve information about the calling thread's msesage queue. You get the idea.

    If you want these functions to operate on a thread different from the one that is executing, you'll have to ask that thread to make the call for you.

  • The Old New Thing

    Every crash is a potential security vulnerability

    • 8 Comments

    Whenever I post about a programming error that can lead to crashes, the security team gets all excited and starts looking for ways to exploit it. For example, when I wrote about the fundamentally flawed DONT_RESOLVE_DLL_REFERENCES flag, the security folks went scouring through the Windows source code looking for anybody who passed that flag, and then tried to come up with ways they could trick the code into loading an unintended DLL and causing trouble.

    I wouldn't have known about this exercise at all if one of the team members hadn't forwarded me some email discussing their preliminary investigations as if to say, "See what you started?"

  • The Old New Thing

    Isn't every dinner at a technology conference a geek dinner?

    • 8 Comments

    I'm always amused when somebody announces that they're having a geek dinner at a technology conference. I mean, at a conference like that, every dinner is a geek dinner. The geek density is so high, +4 enchanted vorpal swords quiver in fear.

    [Update 8am: Fixed broken permalink. Yay, they broke a permalink...]

  • The Old New Thing

    Start with a $50,000 grant, hold a fundraiser, lose $47,000

    • 8 Comments

    Phase three: Not profit.

    Coolidge High School received a $50,000 grant from AOL Time Warner to help keep the school computer systems running. Add a bizarre and disastrous fundraiser run by a confessed fraudster, and the next thing you know, nearly all of the money vanished before the year was out.

  • The Old New Thing

    Searching for Evil: Spot the scam

    • 8 Comments

    Security researcher Ross Anderson gives a talk on how a search engine can be used to shed light on the various evils that lurk on the Web. It starts off slow, but picks up when he gets to the "Can you spot the scam?" game that he plays with each Web site. (If you're in a hurry, skip ahead to a little past the 20 minute mark.)

  • The Old New Thing

    Why do messages posted by PostThreadMessage disappear?

    • 8 Comments

    The only thread message you can meaningfully post to a thread displaying UI is WM_NULL, and even then, it's only because you want to wake up the message loop for some reason.

    A common problem I see is people who use PostThreadMessage to talk to a thread that is displaying UI and then wonder why the message never arrives.

    Oh, the message arrived all right. It arrived and then was thrown away.

    This is actually a repeat of an earlier entry with the title Thread messages are eaten by modal loops, but I'm repeating it with a better subject line to help search engines.

    But since I'm here, I may as well augment the existing article.

    Obvious places where you have modal loops on a UI thread are functions that are explicitly modal like DialogBox or MessageBox or TrackPopupMenuEx(TPM_RETURNCMD) or DoDragDrop. But there are less obvious modal loops, like the modal loop that runs when you click on the caption bar and hold the button or the modal loop that runs when COM is waiting for a cross-thread call to complete.

    And since you don't control those modal loops, when they call DispatchMessage, your thread message will simply be thrown away.

    If you need to communicate reliably with a thread that also displays UI, then create a hidden window and send or post messages to that window.

  • The Old New Thing

    Chilly Hilly 2010 kicked my butt

    • 8 Comments

    This year, I was woefully unprepared for the annual Chilly Hilly ride, not having gotten on my bicycle for the entire month of February. And I paid dearly for this lack of preparation, conking out and ending up walking up some of the last few hills.

    I rode with a few other people, but I quickly ended up lagging behind them. They would sometimes stop to let me catch up, but I told them not to bother and just go at their own pace. At one point, I ran over a nail and lost precious time to a flat tire. (I took the flat tire as an opportunity to take my midpoint break, since it occurred just a half mile or so from the cider stop.) After patching the flat, I caught up to the rest of the group at the cider stop, where they were nearly ready to resume the ride. We left the cider stop together, but I quickly fell behind.

    I rolled into the finish as the rest of the group finished up their chili (a traditional post-ride snack), so we all headed out directly to the ferry. (Basically, I used their break time as my opportunity to catch up.) We were just in time for the 1:10 run, but we were too far back in line and they stopped accepting riders just as we reached the front. I guess I had time to have some chili after all, but by this point I didn't want to lose my place in line.

    My record against Chilly Hilly is now even at 2 wins, 2 losses.

    Ferry trivia: Even though there was room for more bicycles on the ferry, they wouldn't accept any more. This wasn't because they were being mean. They were following safety rules: While the limiting factor in how many cars they will allow on the ferry is the amount of space on the ferry deck, the limiting factor in how many bicycles they will accept on the ferry is the number of life jackets they have.

    Nobody would know: Right near the start, a wine store advertised that it was offering wine tastings. Don't just lubricate your bicycle; lubricate yourself! One of my friends who was riding by himself noted "I saw that sign and thought to myself, you know, I could just go in there, drink wine for three hours, then tootle back to the ferry for the return trip, and nobody would know." I wonder if anybody actually did that.

    Chilly Hilly trivia: There were 6028 riders this year, a huge increase from the 3585 riders last year.

    Are you sick of all these little blurbs yet? Photos of the ferry ride from the Seattle P-I. The Kitsap Sun link above also has pictures of the ride itself.

  • The Old New Thing

    Christmas gift idea for your favorite Microsoft fanboy geek with no sense of fashion or taste

    • 8 Comments

    Then again, the "no sense of fashion or taste" may be redundant.

    Perhaps you are so enamored of the Microsoft-branded Snuggie you received at the Company Meeting that you can't keep your excitement to yourself and want to share the joy with a friend. No problem. You can now pick one up at the Microsoft Company Store in Redmond, right across the hall from the Visitor Center. (The Rapture Index ticks up another notch.)

    "You shouldn't have."

    Previously, in Christmas gift ideas.

  • The Old New Thing

    The new research citation format, if students got to design it

    • 8 Comments

    References

    ¹ The Internets.
    ² Ibid.
    ³ Ibid.

Page 374 of 436 (4,356 items) «372373374375376»