The Curious Engineer

The Old New Thing

2009–2012

1,397 posts

← 2006–2008 2013–2016 →

2012 307

December 2012

  1. 2012 year-end link clearance
  2. Why can't you rename deleted items in the Recycle Bin?
  3. What do HeapLock and HeapUnlock do, and when do I need to call them?
  4. What is so special about the instance handle 0x10000000?
  5. What celebration of Kwanzaa would be complete without Sandra Lee's infamous Kwanzaa cake?
  6. A question about endian-ness turns out to be the wrong question
  7. You too can use your psychic powers: Spaces in paths
  8. Miss Denmark, she is dressed as a mermaid because we couldn't secure the rights from LEGO
  9. What is the proper handling of WM_RENDERFORMAT and WM_RENDERALLFORMATS?
  10. Why do BackupRead and BackupWrite require synchronous file handles?
  11. Why do I sometimes get classic buttons and sometimes themed buttons depending on the host process?
  12. Why doesn't SHGetKnownFolderPath return the customized path?
  13. Why was Pinball removed from Windows Vista?
  14. 2012 års Gävlebock gick upp i brand. Igen.
  15. Like the cake, WS_EX_TRANSPARENT is a lie, or at least not the entire truth
  16. Why is it possible to create a toolbar with the wrong HINSTANCE? And what's the right HINSTANCE anyway?
  17. Why is it so hard to write a program that requires UI Access privilege?
  18. How am I supposed to free the information returned by the GetSecurityInfo function?
  19. Microspeak: v-team
  20. I'll tell you what I think of the new University of California logo once it finishes loading
  21. Why do some shortcuts not support editing the command line and other properties?
  22. It rather involved being on the other side of this airtight hatchway: Writing to the application directory
  23. Replaying input is not the same as reprocessing it
  24. Why do I get notified for changes to HKEY_CLASSES_ROOT when nobody is writing to HKEY_CLASSES_ROOT?
  25. The QuickCD PowerToy, a brief look back
  26. Have you found any TheDailyWTF-worthy code during the development of Windows 95?

November 2012

  1. The debugger lied to you because the CPU was still juggling data in the air
  2. Various ways of performing an operation asynchronously after a delay
  3. Why are there both FIND and FINDSTR programs, with unrelated feature sets?
  4. Security vulnerability reports as a way to establish your l33t kr3|)z
  5. Puzzling triple rainbow clearly identifies location of pot of gold
  6. How does the window manager decide where to place a newly-created window?
  7. The Hater's Guide to the Williams-Sonoma Catalog
  8. When studying performance, you need to watch out not only for performance degradation, but also unexpected performance improvement
  9. The resource compiler will helpfully add window styles for you, but if you're building a dialog template yourself, you don't get that help
  10. It rather involved being on the other side of this airtight hatchway: Silently enabling features
  11. How do I use group policy to improve security of USB thumb drives in my organization?
  12. Microspeak: touch base
  13. Raymond's podcast list (for 2011, at least)
  14. How do I forward an exported function to an ordinal in another DLL?
  15. If you're going to write your own allocator, you need to respect the MEMORY_ALLOCATION_ALIGNMENT
  16. Break it up, you two!: The zero width non-joiner
  17. Microsoft Money crashes during import of account transactions or when changing a payee of a downloaded transaction
  18. Frequentists vs Bayesians
  19. Why are taskbar live previews lost when you use Fast User Switching?
  20. Thread affinity of user interface objects: Addendum
  21. What does the COINIT_SPEED_OVER_MEMORY flag to CoInitializeEx do?
  22. Instead of trying to create a filter that includes everything, try just omitting the filter
  23. If you're asking somebody to help you, you want to make it easy for them, not harder
  24. How do I get the tabbed dialog effect on my own custom tabbed dialog?
  25. How do I parse a string into a FILETIME?
  26. When you synthesize input with SendInput, you are also synthesizing the timestamp

October 2012

  1. The TEMP directory is like a public hot tub whose water hasn’t been changed in over a year
  2. The wisdom of seve^H^H^H^Hsixth graders: Living without electronics for a week
  3. Keyboard shortcut for resizing all columns in a listview control to fit
  4. In the conversion to 64-bit Windows, why were some parameters not upgraded to SIZE_T?
  5. Whether the Unicode Bidi algorithm is intuitive depends on your definition of "intuitive"
  6. Keyboard layouts aren't like Beetlejuice – they won't appear just because you say their name
  7. You can't use the WM_USER message in a dialog box
  8. Diversion: Generating a random color from JavaScript
  9. How do you come up with new shortcut keys?
  10. Using WM_COPYDATA to marshal message parameters since the window manager otherwise doesn’t know how
  11. Why does ShellExecute return SE_ERR_ACCESSDENIED for nearly everything?
  12. If there's a problem with a wiki, then you can fix it; that's why it's a wiki
  13. Irony patrol: Recycling bins
  14. The cries of "Oh no!" emerge from each office as the realization slowly dawns
  15. What happens if you forget to pass an OVERLAPPED structure on an asynchronous handle?
  16. Combo boxes have supported incremental searching for quite some time now
  17. Why does Windows Compressed Folders (Zip folders) reject paths that begin with a slash?
  18. Usage guidance for a popcorn machine in the kitchenette
  19. How does Explorer deal with recent files that were renamed?
  20. How do I override the default icon selection algorithm?
  21. An unexpected application of negative numbers to gift-giving
  22. Why does RegOpenKey sometimes (but not always) fail if I use two backslashes instead of one?
  23. How do I suppress the default animation that occurs when I hide or show a window?
  24. Microspeak: Granular
  25. What's the difference between F5 and F8 at the boot screen?

September 2012

  1. 2012 Q3 link clearance: Microsoft research edition
  2. Data in crash dumps are not a matter of opinion
  3. The Ride to Rio: Bicycling from Los Angeles to Rio de Janeiro
  4. Why aren't environment variables being expanded in my RGS file?
  5. Sabotaging yourself: Closing a handle and then using it
  6. Why can't I set "Size all columns to fit" as the default?
  7. A classification of faces with eyes open and closed in Dr. Seuss's ABC based on the nature of the character
  8. I brought this process into the world, and I can take it out!
  9. In vollen Zügen genießen
  10. How can I implement SAFEARRAY.ToString() without going insane?
  11. How do I invoke a verb on an IShellItemArray?
  12. Does the CopyFile function verify that the data reached its final destination successfully?
  13. The day I stole Joe Belfiore's mouse
  14. How do you deal with an input stream that may or may not contain Unicode data?
  15. Raymond learns about some of the things people do to get banned on Xbox LIVE
  16. IShellFolder::BindToObject is a high-traffic method; don't do any heavy lifting
  17. WM_CTLCOLOR vs GetFileVersionInfoSize: Just because somebody else screwed up doesn't mean you're allowed to screw up too
  18. Rogue feature: Docking a folder at the edge of the screen
  19. One for the "They have to say that because of me": Ground rules at the Point Defiance Zoo
  20. Why can't I use Magnifier in Full Screen or Lens mode?
  21. When you transfer control across stack frames, all the frames in between need to be in on the joke
  22. The case of the asynchronous copy and delete
  23. You can't rule out a total breakdown of normal functioning, because a total breakdown of normal functioning could manifest itself as anything
  24. How did the X-Mouse setting come to be?
  25. Why don't the shortcuts I put in the CSIDL_COMMON_FAVORITES folder show up in the Favorites menu?
  26. Buzzword-filled subject line easily misinterpreted by unsuspecting manager

August 2012

  1. Adventures in undefined behavior: The premature downcast
  2. I'm not calling a virtual function from my constructor or destructor, but I'm still getting a __purecall error
  3. Psychic debugging: Why Chinese characters don't work
  4. Command line tool to manage Windows 7 Libraries, with source code
  5. Well at least nobody's parking there any more
  6. How does the taskbar decide whether to show Recent or Frequent documents on the jump list?
  7. Dumping a hash table with external chaining from the debugger
  8. Wait, you never said that I had to initialize the object before I used it!
  9. The shifting sands of "Run as different user"
  10. Sorry we got cut off, my phone just auto-rebooted
  11. How do I customize how my application windows are grouped in the Taskbar?
  12. My colleague picked a good day to go out and catch a baseball game
  13. What if my application is really two applications bundled into a single file, and I want them collected into two groups on the taskbar in Windows 7?
  14. Charles Petzold's Programming Windows Sixth Edition has reached Release Preview
  15. What happened to the Windows 2000 "Set default language setting for the system" button?
  16. What happened to the Windows 2000 "Language settings for the system" control panel?
  17. How long does it take for a notification icon to stop appearing in the Notification Area Icons control panel?
  18. Why am I in the Quake credits?
  19. How did real-mode Windows implement its LRU algorithm without hardware assistance?
  20. What is SysFader and why is it always crashing?
  21. Of what possible legitimate use are functions like CreateRemoteThread, WriteProcessMemory, and VirtualProtectEx?
  22. Microspeak: planful
  23. Why is the desktop treated so special in window ordering?
  24. Get your Contoso-branded merchandise while you can
  25. FORFILES, for your fancier batch file enumeration needs
  26. If you're going to throw a badminton match, you have to be less obvious about it
  27. Exiting a batch file without exiting the command shell -and- batch file subroutines
  28. You gotta fight for your right to parry
  29. How do I find the most recently created file in a directory from a batch file?

July 2012

  1. Reading the output of a command into a batch file variable
  2. Raymond's subjective, unfair, and completely wrong impressions of the opening ceremonies of a major athletic event which took place recently
  3. Why don't any commands work after I run my batch file? I'm told that they are not recognized as an internal or external command, operable program, or batch file.
  4. Psychic debugging: Why your IContextMenu::InvokeCommand never gets called
  5. A brief and also incomplete history of Windows localization
  6. One way to make sure you pass an array of the correct size
  7. Taking flexitarianism to another, perhaps unintended, level
  8. What's the story behind the WM_SYNCPAINT message?
  9. The format of icon resources
  10. Why do some font names begin with an at-sign?
  11. Why don't per-item custom icons work when I open a Zip file or some other virtual folder?
  12. Why doesn't the Low Disk Space warning balloon show up as soon as I run low on disk space
  13. How much gets localized in a localized version of Windows?
  14. Why doesn't RealGetWindowClass return the real window class for my superclass?
  15. What happens when you mark a section as DISCARDABLE?
  16. What does the HTOBJECT hit-test code do?
  17. Microspeak: radar
  18. Why hasn't the API hook mechanism for x64 been standardized like it was for x86?
  19. The physics of a falling Slinky
  20. What are the recommended locations for storing different types of files?
  21. How your taskbar auto-hide settings can keep getting overwritten
  22. The continuing battle between people who offer a service and others who want to hack into the service
  23. You already got your answer, why are you re-asking the question?
  24. Tracking shortcuts and the early history of multiple monitors

June 2012

  1. 2012 mid-year link clearance
  2. How did real-mode Windows patch up return addresses to discarded code segments?
  3. You still need the "safe" functions even if you check string lengths ahead of time
  4. How did my hard drive turn into a TARDIS?
  5. Thanks for reminding me what to do when the elevator is out of order
  6. How does Explorer determine the delay between clicking on an item and initiating an edit?
  7. How did real-mode Windows fix up jumps to functions that got discarded?
  8. When the default pushbutton is invoked, the invoke goes to the top-level dialog
  9. Counting down to the last day of school, as students do it
  10. When embedding a dialog inside another, make sure you don't accidentally create duplicate control IDs
  11. It's not a good idea to give multiple controls on a dialog box the same ID
  12. What is the history of the GetRandomRgn function?
  13. Globalization quiz: In honor of, well, that's part of the quiz
  14. Now that Windows makes it harder for your program to block shutdown, how do you block shutdown?
  15. Why don't all of my folder customizations roam with my profile?
  16. Microsoft Dynamics in a soda can, sort of
  17. Fabio coming to Redmond. Also: Whey Protein
  18. Why do you have to wait for Windows Error Reporting to check for solutions before it restarts the application?
  19. How can I determine the underlying cause of a EXCEPTION_IN_PAGE_ERROR exception?
  20. Eventually the window manager simply says that enough is enough
  21. Don't be helpless: What might be the reason for a "Path not found" error?
  22. Microspeak: Turds
  23. Why does PrintWindow hate CS_PARENTDC? Because EVERYBODY hates CS_PARENTDC!
  24. The time I watched a total lunar eclipse from the top of a mountain
  25. How do I prefetch data into my memory-mapped file?

May 2012

  1. What happens if I call KillTimer with a NULL hwnd?
  2. What does a STATUS_OBJECT_TYPE_MISMATCH exception in LeaveCriticalSection mean?
  3. Hazards of spelling autocorrection: defiance
  4. If my window hosts multiple windowless ActiveX controls, which one do I call IOleInPlaceActiveObject::TranslateAccelerator and IOleInPlaceObjectWindowless::OnWindowMessage on?
  5. The extern “C” specifier disables C++ mangling, but that doesn’t mean it disables mangling
  6. How do I prevent unchecked checkboxes in my listview control from disappearing?
  7. GUIDs are designed to be unique, not random
  8. Why is the Close button in the upper right corner?
  9. What was the registry like in 16-bit Windows?
  10. How to view the stack of threads that were terminated as part of process teardown from user mode
  11. Charles Petzold is back with another edition of Programming Windows
  12. How to view the stack of threads that were terminated as part of process teardown from the kernel debugger
  13. Sure, we do that: Context menu edition
  14. Microspeak: The parking lot
  15. What is the historical reason for MulDiv(1, -0x80000000, -0x80000000) returning 2?
  16. Warum deine Mutter Deutsch spricht
  17. When you crash on a mov ebx, eax instruction, there aren't too many obvious explanations, so just try what you can
  18. Cheap amusement: Searching for spelling errors in the registry
  19. How do I hide a window without blocking on it?
  20. Why can't I use the file sharing wizard if I exclude inheritable permissions from a folder's parent?
  21. Why are the Windows 7 system notification icons colorless?
  22. How does the MultiByteToWideChar function treat invalid characters?
  23. How does Explorer calculate the folder size information in the folder tooltip?
  24. Why is there sometimes a long delay between pressing a hotkey for a shortcut and opening the shortcut?
  25. What happened to the Summary information created on Windows 2000 and Windows XP?

April 2012

  1. When you don't speak a language, don't sound like you speak the language
  2. What were the tests that WinG did to evaluate video cards?
  3. A process shutdown puzzle, Episode 2
  4. Shortcut properties are in the shortcut, so if they can read the shortcut, they can read the properties
  5. How do I prevent users from opening TIF files?
  6. I thought I was so clever, salvaging an old floppy drive from a dead computer, but I didn't think *two* steps ahead…
  7. Why are programs allowed to use normal characters as hotkeys?
  8. What does INIT_ONCE_CTX_RESERVED_BITS mean?
  9. Why don't I get a Caps Lock warning balloon any more?
  10. Why doesn't the Version tab show up for very large files?
  11. There's the kernel, and there's kernel mode – confusing historical terminology
  12. Why do we need IsDialogMessage at all?
  13. You already know the answer since you do it yourself
  14. What is the real maximum length of a DNS name?
  15. I know that an overlapped file handle requires an lpOverlapped, but why does it (sometimes) work if I omit it?
  16. Microspeak: scoped to
  17. There's the interface contract, and there are the implementations of the interface contract
  18. Registration-free COM the old-fashioned way: The car mp3 player
  19. You can use an OVERLAPPED structure with synchronous I/O, too
  20. I totally presented to an executive the wrong way
  21. Introducing the unrolled-switch anti-pattern
  22. If posting here is frequently frustrating and irritating, why do I keep doing it?

March 2012

  1. How do I perform shell file operations while avoiding shell copy hooks?
  2. Why can't I delete a file immediately after terminating the process that has the file open?
  3. Converting to Unicode usually involves, you know, some sort of conversion
  4. Amusing message on a whiteboard in the hallway
  5. Why does a maximized window have the wrong window rectangle?
  6. Beverage Gas Division of Central Welding Supply
  7. Why is the Heap32Next function incredibly slow on Windows 7?
  8. Why does my window style change when I call SetWindowText?
  9. Isn't there a race condition in GetFileVersionInfoSize?
  10. In 1993, Microsoft stole my colleague's car
  11. The most exciting part of my morning is catching my bus, specifically, making the transfer
  12. Why does holding the Ctrl key when selecting New Task from Task Manager open a command prompt?
  13. Memory allocation functions can give you more memory than you ask for, and you are welcome to use the freebies too, but watch out for the free lunch
  14. Why does the VerQueryValue function give me the wrong file version number?
  15. How do I get mouse messages faster than WM_MOUSEMOVE?
  16. Microspeak: Friction
  17. If you have multiple versions of Windows installed, why do they all try to adjust the clock?
  18. To some people, time zones are just a fancy way of sounding important
  19. Alt text for images are important in email, too
  20. Why do program files go into the Program Files directory?
  21. Why does Explorer ignore seconds when sorting by Date Modified?
  22. Why doesn't the Maximize button maximize across all monitors?
  23. This isn't Highlights magazine: Sort keys and why they change
  24. How do I make it so that users can copy static text on a dialog box to the clipboard easily?

February 2012

  1. What was the nature of the feedback that resulted in the change to the highlighting model for Explorer navigation pane?
  2. How can I customize which notification icons are displayed by default on a new installation?
  3. Why was HDS_FILTERBAR added to the common controls if nobody uses it?
  4. Why does Windows keep showing the old indirect strings even after I update the binary?
  5. What does the minus sign in indirect localized string resources mean?
  6. Instead of creating something and then trying to hide it, simply don't create it in the first place
  7. Why don't music files show up in my Recent Items list?
  8. What's the difference between Text Document, Text Document – MS-DOS Format, and Unicode Text Document?
  9. How do I find out which process has a file open?
  10. Why does the DrawIcon function draw at the default icon size?
  11. When does an icon handler shell extension get unloaded?
  12. The awesome Valentine's Day gift disguised as an uncreative one
  13. Why did the Windows 95 Start button have a secret shortcut for closing it?
  14. Fancy use of exception handling in FormatMessage leads to repeated "discovery" of security flaw
  15. What is the effect of memory-mapped file access on GetLastError()?
  16. The path-searching algorithm is not a backtracking algorithm
  17. Microspeak: fit
  18. The story of the mysterious WINA20.386 file
  19. The compatibility constraints of error codes, episode 2
  20. When you are looking for more information, it helps to say what you need the information for
  21. Things I've written that have amused other people, Episode 9

January 2012

  1. The Freudian typo that will not die: Enchanced video quality
  2. Why does it take Task Manager longer to appear when you start it from the Ctrl+Alt+Del dialog?
  3. Does mapping the same shared memory two times in a process lead to double the address space usage?
  4. The 2012/2013 Seattle Symphony subscription season at a glance
  5. Why doesn't the Windows 7 Start menu have a pushpin for pinning items?
  6. How do I disable the fault-tolerant heap?
  7. A single-handed effort to keep the memory of $2 bills alive
  8. Can OANOCACHE be used for non-debug purposes?
  9. How do FILE_FLAG_SEQUENTIAL_SCAN and FILE_FLAG_RANDOM_ACCESS affect how the operating system treats my file?
  10. Why do Microsoft customer records use the abbreviation “cx” for customer?
  11. Don't try to allocate memory until there is only x% free
  12. Microspeak: Walls and ladders
  13. Cultural arbitrage: The food-related sucker bet
  14. Why was there a font just for drawing symbols on buttons?
  15. Keys duplicated from photo: Delayed reaction
  16. How do I print non-error messages during compilation?
  17. Puzzling out the upsell-o-meter
  18. Why does CreateEvent fail with ERROR_PATH_NOT_FOUND if I give it a name with a backslash?
  19. What a steal: A house for only ten dollars!
  20. How can I detect the language a run of text is written in?
  21. News flash: Work-at-home job offers are mostly just scams
  22. You can use backups for things other than restoring
  23. From the research journal Duh: To lose weight, eat less
  24. What were some of the abandoned features of Explorer back in its prototype days?
  25. It must totally suck to live near Abbey Road
  26. Why did HeapFree fail with ERROR_POSSIBLE_DEADLOCK?
  27. A joke for mathematicians: On the Weyl schism
  28. When DLL_PROCESS_DETACH tells you that the process is exiting, your best bet is just to return without doing anything
  29. Misleading advertisement: Passports or green cards?
  30. Creating context menus on menus
  31. The new business model: Intentional billing errors
  32. Why don't ZIP files have the FILE_ATTRIBUTE_COMPRESSED attribute?
  33. Exploiting the inattentive: The Xbox Kinect Premium Starter Kit
  34. Why wasn't the Windows 95 shell prototyped on Windows NT?

2011 310

December 2011

  1. 2011 year-end link clearance
  2. Using the MNS_DRAGDROP style: Menu rearrangement
  3. Using the MNS_DRAGDROP style: Dropping in
  4. Using the MNS_DRAGDROP style: Dragging out
  5. Introducing the for-if anti-pattern
  6. Celebrating the end of the gluttony season, but the effects linger
  7. Why is the file size reported incorrectly for files that are still being written to?
  8. How do I get the full path for the target of a shortcut file?
  9. How do I determine programmatically whether a particular language is LTR or RTL?
  10. Deftly solving compatibility problems by withholding information
  11. Microspeak: Offline (noun)
  12. Paint messages will come in as fast as you let them
  13. Programmatically controlling which handles are inherited by new processes in Win32
  14. Not even making it to the airtight hatchway: Execution even before you get there
  15. The peculiar cadence of executive mail messages
  16. Online gift ordering + enthusiastic kids at the keyboard + Unicode, wait… Unicode?
  17. What is the API for accessing content on SkyDrive?
  18. How can I tell whether a window is modal?
  19. Sure, I'm supposed to pass WT_EXECUTELONGFUNCTION if my function takes a long time, but how long is long?
  20. What does it mean when my program exits with the message "This application has requested the Runtime to terminate it in an unusual way"?
  21. GetParent, just as confusing as EnumClaw, but it's an actual function!
  22. A feature I didn't even know existed much less had a name: Color hot-track
  23. Why does my program still show up in the Programs and Features folder after my uninstaller exits?
  24. Don't let more than one process try to read from stdin at the same time
  25. Our code needs to run on multiple platforms with different rules, so we follow none of them!

November 2011

  1. If you protect a write with a critical section, you may also want to protect the read
  2. Things I've written that have amused other people, Episode 8
  3. Why is CLIPFORMAT defined to be a WORD rather than a UINT?
  4. How to insert a large number of items into a treeview efficiently
  5. How can I extend the deadline for responding to the PBT_APMSUSPEND message?
  6. It is not unreasonable to expect uninitialized garbage to change at any time, you don't need to ask for an explanation
  7. The Control Panel search results understand common misspellings, too
  8. Why not use animated GIFs as a lightweight alternative to AVIs in the animation common control?
  9. Why does Internet Explorer not call DLL_PROCESS_DETACH on my DLL when I call ExitProcess?
  10. Why can't I install this DLL via Regsvr32 /i?
  11. How can I tell whether a COM pointer to a remote object is still valid?
  12. Fontography term or pretentious blather?
  13. The challenges in changing the way Explorer hosts shell extensions
  14. Stupid Raymond talent: Screaming carrier
  15. How can I tell whether a DLL has been registered?
  16. Okay, everybody, it's time for rumors and gossip
  17. Microspeak: Level-set
  18. Percentages may not add up to 100%, but not for the reason you suggest
  19. The life story of the SwitchToThisWindow function
  20. How do I generate a unique 32-bit value for a time zone?
  21. We've traced the call and it's coming from inside the house: A function call that always fails
  22. Debugging why a user's taskbar disappeared
  23. The power of statistical photography

October 2011

  1. My least effective Hallowe'en costume
  2. Why isn't my transparent static control transparent?
  3. Why do the pinned items in the Jump List go on the top instead of the bottom?
  4. How can I get notified when some other window is destroyed?
  5. Raymond misreads restaurant names: Local 360
  6. No good deed goes unpunished: Helping to redirect a question
  7. Squeezing the last bit of enjoyment out of the lost half-inning of a baseball game
  8. If the shell is written in C++, why not just export its base classes?
  9. The video of Microsoft Store employees dressed in Windows colors, revealed by a falling curtain, gee that looks familiar, somehow
  10. The PSN_SETACTIVE notification is sent each time your wizard page is activated
  11. No, modifying the DLLs that come with Windows is not supported
  12. Why do some infotips repeat the name of the item as well as the infotip?
  13. Seeing the world through arbitrage-colored glasses
  14. Why is there a CSIDL_DESKTOP value if you need the desktop in order to get it anyway?
  15. When your vice president tells you to stop replying to a mail thread, you probably should stop replying to the mail thread
  16. The question mark lets you make up anything you like
  17. How do I set an accessible name on an unlabeled control?
  18. Is there a 2048 character limit for OFN_ALLOWMULTISELECT in MFC or isn't there?
  19. Microspeak: Bug jail
  20. Why does copying a file to my USB thumb drive say that the parameter is incorrect?
  21. How do I access a file without updating its last-access time?
  22. During process termination, slim reader/writer locks are now also electrified
  23. Why can't I move the Program Files directory via the unattend file?
  24. The unattend file lets you configure Windows while it's installing, and in some cases it's your only chance
  25. Beyoncé, the giant metal chicken has a Facebook page
  26. Adjusting your commute to avoid being at work quite so much
  27. Do not access the disk in your IContextMenu handler, no really, don't do it

September 2011

  1. 2011 Q3 link clearance: Microsoft blogger edition
  2. There's also a large object heap for unmanaged code, but it's inside the regular heap
  3. Appearing to succeed is a valid form of undefined behavior, but it's still undefined
  4. Does this operation work when impersonating? The default answer is NO
  5. Ah, the exciting world of cross-forest dogfood
  6. Sending a window a WM_DESTROY message is like prank calling somebody pretending to be the police
  7. Why does my asynchronous I/O complete synchronously?
  8. Why does my single-byte write take forever?
  9. Why do Windows functions all begin with a pointless MOV EDI, EDI instruction?
  10. Random notes from //build/ 2011
  11. Microspeak: The bug farm
  12. The clipboard viewer linked list is no longer the responsibility of applications to maintain, unless they want to
  13. Why can't I PostMessage the WM_COPYDATA message, but I can SendMessageTimeout it with a tiny timeout?
  14. Some preliminary notes from //build/ 2011
  15. What happens to a sent message when SendMessageTimeout reaches its timeout?
  16. A common control for associating extensions is well overdue
  17. Why are the building numbers on Microsoft main campus so erratic?
  18. Is this a really bug with CreateWindowEx or am I just confused?
  19. Throwing garbage on the sidewalk: The sad history of the rundll32 program
  20. Why waste your money on the car when it's the sound system you care about?
  21. Why doesn't the Disk Management snap-in incorporate S.M.A.R.T. data?
  22. Why is the registry a hierarchical database instead of a relational one?
  23. What happened to that suspicious-looking guy hanging around the entrance?
  24. Thanks for letting me know what my ideal career and company are
  25. What's the story with the parameters to the WM_INPUT_DEVICE_CHANGE message?
  26. Invoking commands on items in the Recycle Bin

August 2011

  1. Modernizing our simple program that retrieves information about the items in the Recycle Bin
  2. How can I get information about the items in the Recycle Bin?
  3. Why can't I use PSGUID_STORAGE like a GUID?
  4. Random musings on the introduction of long file names on FAT
  5. Stupid command-line trick: Counting the number of lines in stdin
  6. Magic dirt, the fate of former professional athletes, and other sports randomness
  7. What do SizeOfStackReserve and SizeOfStackCommit mean for a DLL?
  8. Why doesn't the Open Files list in the Shared Folders snap-in show all my open files?
  9. You don't make something easier to find by hiding it even more deeply
  10. Why are the alignment requirements for SLIST_ENTRY so different on 64-bit Windows?
  11. Ow, I'm too safe!
  12. Why does IFileOperation skip junctions even though I passed FOFX_NOSKIPJUNCTIONS?
  13. Starting up inside the box
  14. Why does creating a shortcut to a file change its last-modified time… sometimes?
  15. Why does the runas command require its command line to be quoted?
  16. ReadDirectoryChangesW reads directory changes, but what if the directory doesn’t change?
  17. The ways people mess up IUnknown::QueryInterface, episode 4
  18. Slim reader/writer locks don't remember who the owners are, so you'll have to find them some other way
  19. Why does the Shift+F10 menu differ from the right-click menu?
  20. What does the CreateProcess function do if there is no space between the program name and the arguments?
  21. Menu item states are not reliable until they are shown because they aren't needed until then
  22. Why doesn't b match word boundaries correctly?
  23. A shell extension is a guest in someone else's house; don't go changing the code page
  24. An even easier way to get Windows Media Player to single-step a video
  25. Microspeak: Dogfood
  26. Why can you set each monitor to a different color depth?

July 2011

  1. Hey, let's report errors only when nothing is at stake!
  2. Simulating input via WM_CHAR messages may fake out the recipient but it won't fake out the input system
  3. Luxurifying the camping experience in a different direction
  4. You don't need to ask me a question the compiler can answer more accurately
  5. No, we're not going to play Stairway to Heaven, and please tell everbody else in your area code to stop calling me
  6. How is it possible to run Wordpad by just typing its name even though it isn’t on the PATH?
  7. How do I disable windowless control support in dialog boxes?
  8. Why is secur32.dll called secur32.dll and not secure32.dll?
  9. How do I find the original name of a hard link?
  10. Some mailing lists come with a negative service level agreement, but that's okay, because everybody is in on the joke
  11. The danger of making the chk build stricter is that nobody will run it
  12. Using the wrong HINSTANCE in RegisterClass is like identity theft
  13. Photoshop meme: Mark Reynolds casually eating sunflower seeds
  14. What is that horrible grinding noise coming from my floppy disk drive?
  15. The tradition of giving cute names to unborn babies
  16. What does the executable timestamp really mean?
  17. At least it'll be easy to write up the security violation report
  18. Windows has supported multiple UI languages for over a decade, but nobody knew it
  19. We've traced the pipe, and it's coming from inside the process!
  20. And… that cadence means it's halftime, concert-goers!
  21. Be careful when redirecting both a process’s stdin and stdout to pipes, for you can easily deadlock
  22. The historical struggle over control of the Portuguese language
  23. Looking at the problem at the wrong level: Closing a process's stdin
  24. Microspeak: Reporting through
  25. A handful of trips through the time machine
  26. The list of heaps returned by GetProcessHeaps is valid when it returns, but who knows what happens later

June 2011

  1. 2011 mid-year link clearance
  2. The UseUrl attribute in the App Paths key indicates that your application can accept a URL on the command line
  3. What happens to WPARAM, LPARAM, and LRESULT when they travel between 32-bit and 64-bit windows?
  4. A different way to win from one of those claw game
  5. How do I display the Find Printers dialog programmatically?
  6. There's more to workflow than hitting F5 in the IDE
  7. Why doesn't my MessageBox wrap at the right location?
  8. What happens when applications try to copy text by sending Ctrl+C
  9. How do I compress files (via NTFS compression) from the command line?
  10. How to get Windows Media Player to single-step a video
  11. See you in Building 109, Conference Room A
  12. In Windows, the directory is the application bundle
  13. How do I make a window remain visible even when the user selects Show Desktop?
  14. How do I create a right-aligned toolbar button?
  15. How do I convert a UTF-8 string to UTF-16 while rejecting illegal sequences?
  16. Sufficiently advanced magic is indistinguishable from technology
  17. You don't need to steal focus if you can just arrange for someone to give it to you
  18. Generally speaking, if your function fails, you should return a failure code
  19. PE resources must be 4-byte aligned, but that doesn't stop people from trying other alignments
  20. Microspeak: The planned unplanned outage, and other operations jargon
  21. You'd think that with the name scratch, people wouldn't expect it to be around for a long time
  22. Why do Group Policy settings require me to have a degree in philosophy?
  23. Swamping the thread pool with work faster than it can drain
  24. How do I control X-Mouse settings (active window tracking)?
  25. How do I prevent users from pinning my program to the taskbar?

May 2011

  1. My evil essence revealed
  2. Just for fun: Sample user names in Windows 7
  3. Why are custom properties created on Windows 2000 lost when I view the file from newer versions of Windows?
  4. How do IsThemeActive, IsAppThemed, and IsCompositionActive differ?
  5. WinMain is just the conventional name for the Win32 process entry point
  6. Microspeak: PowerPoint Karaoke and the eye chart
  7. If it's possible to do something, then it's possible to do something WRONG
  8. One engineer's interpretation of the Segway as a hybrid vehicle
  9. BeginBufferedPaint: It's not just for buffered painting any more
  10. Why is my program terminating with exit code 3?
  11. Watching the battle between Facebook and Facebook spammers
  12. How long do taskbar notification balloons appear on the screen?
  13. Why does Explorer show a thumbnail for my image that's different from the image?
  14. Multithreaded UI code may be just as hard as multithreaded non-UI code, but the consequences are different
  15. If undecorated names are given in the DLL export table, why does link /dump /exports show me decorated names?
  16. Looking at the world through kernel-colored glasses
  17. Why double-null-terminated strings instead of an array of pointers to strings?
  18. Why is hybrid sleep off by default on laptops? (and how do I turn it on?)
  19. Sorting is a state and a verb (and a floor wax and a dessert topping)
  20. A function pointer cast is a bug waiting to happen
  21. Your program loads libraries by their short name and you don't even realize it
  22. Why don't the file timestamps on an extracted file match the ones stored in the ZIP file?
  23. Like a chicken talking to a duck
  24. That's not a duck
  25. The Importance of Being Snooki
  26. Hidden compatibility constraints of redirecting program execution via a stub

April 2011

  1. Not quite understanding why you wash your hands before playing the piano
  2. Why is there a RestoreLastError function that does the same thing as SetLastError?
  3. Microspeak: Hipo
  4. How do I pin a program directly to the Start menu rather than a shortcut?
  5. No, you can't ask whether your notification icon is visible or not
  6. There's only so much you can do to stop running code from simulating UI actions
  7. Even if you have a lock, you can borrow some lock-free techniques
  8. The performance improvements of a lock-free algorithm is often not in the locking
  9. Corrections to Patterns for using the InitOnce functions
  10. Endorsement: Aaron Margosis's Unintended Consequences of Security Lockdowns talk at TechEd
  11. Visual Studio 2005 gives you acquire and release semantics for free on volatile memory access
  12. Back from Las Vegas, and now my clothes smell like cigarette smoke
  13. Don't forget to include the message queue in your lock hierarchy
  14. Lock-free algorithms: The try/commit/(hand off) model
  15. Lock-free algorithms: The opportunistic cache
  16. Lock-free algorithms: Update if you can I'm feeling down
  17. Overheard conversation fragment: I'm over here by the slot machines
  18. Lock-free algorithms: The try/commit/(try again) pattern
  19. Holding down the shift key when right-clicking lets you pin things to the Start menu even when you might have been better off not doing so
  20. Patterns for using the InitOnce functions
  21. Lock-free algorithms: The singleton constructor (answer to exercises)
  22. Lock-free algorithms: The one-time initialization
  23. Lock-free algorithms: Choosing a unique value (solutions)
  24. Lock-free algorithms: The singleton constructor
  25. Lock-free algorithms: Choosing a unique value (warm-up)
  26. Windows is not a .NET Framework delivery channel either
  27. The funniest joke I've ever told (to a three-year-old)
  28. The introduction of whimsical teasing in Comic Chat

March 2011

  1. 2011 Q1 link clearance: Microsoft blogger edition
  2. Having an owner window from another process is tricky, but it's sometimes the right thing to do
  3. How do I get the title of a dialog from a dialog resource?
  4. Although the default icon for a shortcut is the icon of the target, you can override that
  5. Why did Win32 define BOOL as a signed int instead of an unsigned int?
  6. Paul Cézanne and Camille Saint-Saëns may have similar-sounding last names, but they are not the same person
  7. How do I monitor, or even control, the lifetime of an Explorer window?
  8. How can I generate a consistent but unique value that can coexist with GUIDs?
  9. Function requirements are cumulative: If you fail to meet any of them, then all bets are off
  10. Why is there the message '!Do not use this registry key' in the registry?
  11. How does the C runtime know whether to use the static-linking or dynamic-linking version of the header file?
  12. You can extend the PROPSHEETPAGE structure with your own bonus data
  13. What does the "l" in lstrcmp stand for?
  14. What’s up with the mysterious inc bp in function prologues of 16-bit code?
  15. Raymond's highly scientific predictions for the 2011 NCAA men's basketball tournament
  16. Why can't Explorer decide what size a file is?
  17. The old DEBUG program can load COM files bigger than 64KB, but that doesn't mean they actually load as a program
  18. Why does my TIME_ZONE_INFORMATION have the wrong DST cutover date?
  19. How do I create a topmost window that is never covered by other topmost windows?
  20. How to rescue a broken stack trace: Recovering the EBP chain
  21. Microspeak: Cadence
  22. What's the difference between FreeResource and, say, DestroyAcceleratorTable
  23. News flash: Companies change their product to appeal to their customers
  24. The window manager needs a message pump in order to call you back unexpectedly
  25. If you're waiting for I/O to complete, it helps if you actually have an I/O to begin with
  26. Charlie Sheen v Muammar Gaddafi: Whose line is it anyway?
  27. Although the x64 calling convention reserves spill space for parameters, you don't have to use them as such
  28. No, not that M, the other M, the one called Max

February 2011

  1. On the linguistic productivity of the word spam
  2. If you want to use GUIDs to identify your files, then nobody's stopping you
  3. DRUNK HULK's insightful commentary in all-caps (and faux-rudimentary English)
  4. Why does WaitForMultipleObjects return ERROR_INVALID_PARAMETER when all the parameters look valid to me?
  5. iPhone pricing as economic experiment
  6. Shortcuts are serializable objects, which means that they can be stored in places other than just a file
  7. How long does an idle UNC connection remain active before it is automatically disconnected?
  8. Dr. Watson and the bluescreen – a story from the trenches
  9. Sharktopus: Just when you thought it was safe to see what movies are coming out
  10. If an operation results in messages being sent, then naturally the target window must be processing messages for the operation to complete
  11. WM_NCHITTEST is for hit-testing, and hit-testing can happen for reasons other than the mouse being over your window
  12. What is the highest numerical resource ID permitted by Win32?
  13. What is the difference between a directory and a folder?
  14. Don't mention the war. I mentioned it once, but I think I got away with it all right (Episode 2)
  15. Window message parameters do not come with metaphysical certitude
  16. What happens when you email the people in the I'm a PC commercial?
  17. Any intelligent human being
  18. How do specify that a shortcut should not be promoted as newly-installed on the Start menu?
  19. Psychic debugging: Because of course when something doesn't work, it's because the program was sabotaged from above
  20. Why does SHGetKnownFolderPath return E_FAIL for a known folder?
  21. Microspeak: Recycling bits or recycling electrons
  22. The cursor isn't associated with a window or a window class; it's associated with a thread group
  23. The 2010 Niney Award nominees have been announced
  24. Ready… cancel… wait for it! (part 3)
  25. I am no longer impressed by your fancy new 10,000 BTU hot pot burner
  26. Ready… cancel… wait for it! (part 2)
  27. Ready… cancel… wait for it! (part 1)
  28. There is no longer any pleasure in reading the annual Microsoft injury reports

January 2011

  1. Solutions that require a time machine: Making applications which require compatibility behaviors crash so the developers will fix their bug before they ship
  2. Some remarks on VirtualAlloc and MEM_LARGE_PAGES
  3. How do you obtain the icon for a shortcut without the shortcut overlay?
  4. Microspeak: Leverage
  5. Why does the name of my TEMP directory keep changing?
  6. There's a default implementation for WM_SETREDRAW, but you might be able to do better
  7. The 2011/2012 Seattle Symphony subscription season at a glance
  8. Modality, part 9: Setting the correct owner for modal UI, practical exam
  9. How to turn off the exception handler that COM "helpfully" wraps around your server
  10. Why didn’t they use the Space Shuttle to rescue the Apollo 13 astronauts?
  11. Don't just stand around saying somebody should do something: Be someone
  12. Was showing the column header in all Explorer views a rogue feature?
  13. What's the difference between an asynchronous PIPE_WAIT pipe and a PIPE_NOWAIT pipe?
  14. The MARGINS parameter to the DwmExtendFrameIntoClientArea function controls how far the frame extends into the client area
  15. My, what strange NOPs you have!
  16. The message text limit for the Marquee screen saver is 255, even if you bypass the dialog box that prevents you from entering more than 255 characters
  17. Why does pasting a string containing an illegal filename character into a rename edit box delete the characters from the clipboard, too?
  18. When does a process ID become available for reuse?
  19. Processes, commit, RAM, threads, and how high can you go?
  20. Why does SHGetSpecialFolderPath take such a long time before returning a network error?
  21. From inside the Redmond Reality Distortion Field: Why publish documents in PDF?
  22. Begin feeling

2010 360

December 2010

  1. 2010 year-end link clearance
  2. What makes RealGetWindowClass so much more real than GetClassName?
  3. WindowFromPoint, ChildWindowFromPoint, RealChildWindowFromPoint, when will it all end?
  4. Psychic debugging: When I copy a file to the clipboard and then paste it, I get an old version of the file
  5. Windows 7 not only can make a wallpaper slide show from images on your computer, it can even pull them from an RSS feed
  6. Why can’t you use the space bar to select check box and radio button elements from a menu?
  7. Some suggestions on improving the assembly instructions for your children's play furniture
  8. That mysterious 01
  9. What is the correct way of temporarily changing a thread's preferred UI language?
  10. The __fortran calling convention isn't the calling convention used by FORTRAN
  11. How do I simulate input without SendInput?
  12. Developing the method for taking advantage of the fact that the OVERLAPPED associated with asynchronous I/O is passed by address
  13. What happened to the return code from WinMain in 16-bit Windows?
  14. The OVERLAPPED associated with asynchronous I/O is passed by address, and you can take advantage of that
  15. Why does SHCOLUMNINFO have unusually tight packing?
  16. There is no interface for preventing your notification icon from being hidden
  17. The subtleties of a Will Ferrell movie, and other observations from the in-flight entertainment on a Chinese airline
  18. Microspeak: Informing a product
  19. Why are the Compression and Encryption options check boxes instead of radio buttons?
  20. Some notes on my trip to Beijing disguised as travel tips
  21. How do I limit the size of the preview window used by Aero Snap?
  22. What appears superficially to be a line is actually just a one-dimensional mob
  23. We've traced the call and it's coming from inside the house: Grid lines in list view report mode
  24. Kindergarten writing exercise from my niece
  25. It rather involved being on the other side of this airtight hatchway: Invalid parameters from one security level crashing code at the same security level
  26. Creative naming in pursuit of subverting the no-fun zone
  27. TrackMouseEvent tracks mouse events in your window, but only if the events belong to your window
  28. ZOMG! This program is using 100% CPU!1! Think of the puppies!!11!!1!1!eleven
  29. The alignment declaration specifier is in bytes, not bits
  30. I will be speaking at TechEd China 2010 today
  31. How do I delete bytes from the beginning of a file?

November 2010

  1. Microspeak: Take-away
  2. What were Get/SetMessageExtraInfo ever used for?
  3. Watching the game of Telephone play out in five seconds
  4. The easy way out is to just answer the question: What is the current Explorer window looking at?
  5. What if two programs did this? Practical exam
  6. You can filter the Common File dialog with wildcards
  7. But who's going to set up their own email server?
  8. Consequences of using variables declared __declspec(thread)
  9. What's the difference between the Windows directory and the System directory?
  10. One possible reason why ShellExecute returns SE_ERR_ACCESSDENIED and ShellExecuteEx returns ERROR_ACCESS_DENIED
  11. How full does a hard drive have to get before Explorer will start getting concerned?
  12. If you measure something, people will change their behavior to address the measurement and not the thing the measurement is intended to measure
  13. The program running in a console decides what appears in that console
  14. Why does the common file dialog change the current directory?
  15. Using delayload to detect functionality is a security vulnerability
  16. Your debugging code can be a security vulnerability: Loading optional debugging DLLs without a full path
  17. The curse of the current directory
  18. Is there any vendor bias in the way the Start menu determines which programs are most frequently used?
  19. Why does the Win32 Time service require the date to be correct before it will set the time?
  20. The story of MUI, as told by others (with some commentary)
  21. The quiet fading away of the CtlPanelClass
  22. The wisdom of seventh graders: Being President
  23. Saying that your case is different doesn't make it so
  24. Why doesn't the End Task button end my task immediately?

October 2010

  1. It's the Great Pumpkin, Charlie Brown: The world of competitive pumpkin-growing
  2. Debugging walkthrough: Diagnosing a __purecall failure
  3. Why is there an LVN_ODSTATECHANGED notification when there's already a perfectly good LVN_ITEMCHANGED notification?
  4. How do I programmatically invoke Aero Peek on a window?
  5. Hacking Barney the dinosaur for fun (no profit)
  6. Belated happy first birthday, Windows 7
  7. When you call a function, your code doesn't resume execution until that function returns
  8. The evolution of the ICO file format, part 4: PNG images
  9. The evolution of the ICO file format, part 3: Alpha-blended images
  10. How do I get the dimensions of a cursor or icon?
  11. The evolution of the ICO file format, part 2: Now in color!
  12. The evolution of the ICO file format, part 1: Monochrome beginnings
  13. What does the FOF_NOCOPYSECURITYATTRIBS flag really do (or not do)?
  14. The memcmp function reports the result of the comparison at the point of the first difference, but it can still read past that point
  15. How do I get the color depth of the screen?
  16. Why are the keyboard scan codes for digits off by one?
  17. Why does each drive have its own current directory?
  18. Why does TaskDialog return immediately without showing a dialog? – Answer
  19. Why does my asynchronous I/O request return TRUE instead of failing with ERROR_IO_PENDING?
  20. The overlooked computer room at school that became my "office" for a while
  21. Why does TaskDialog return immediately without showing a dialog?
  22. Wildly popular computer game? The Windows product team has you covered
  23. Secret passages on Microsoft main campus
  24. On understanding that getting married comes with changes in lifestyle
  25. Why is the origin at the upper left corner?
  26. Which ferry should we take from Germany back to Denmark? Oh, it's this one, except for that one word I don't understand
  27. Non-psychic debugging: Why you're leaking timers

September 2010

  1. 2010 Q3 link clearance: Microsoft blogger edition
  2. Why doesn't the TAB key work on controls I've marked as WS_TABSTOP?
  3. We apologize for the delay, but there is an issue with the music
  4. Where did my mail control panel icon go?
  5. Speculation around Microsoft Company Meeting 2010
  6. Children's reactions to macadamia nuts dipped in chocolate
  7. Why not just require each application to declare what version of Windows it is compatible with?
  8. Does anybody actually like Brazil nuts?
  9. How reliable is the BatteryLifePercent member of the SYSTEM_POWER_STATUS structure?
  10. Pizza: The reference food for young children
  11. You must flush GDI operations when switching between direct access and GDI access, and direct access includes other parts of GDI
  12. Happy Mid-Autumn festival 2010
  13. What is the effect of the /LARGEADDRESSAWARE switch on a DLL?
  14. Fact check: The first major Microsoft product launched via Webcast
  15. How do I get the dropped height of a combo box?
  16. It's amazing how many business meetings there are in Munich in late September
  17. What's up with the strange treatment of quotation marks and backslashes by CommandLineToArgvW
  18. How is the CommandLineToArgvW function intended to be used?
  19. Follow-up: The impact of overwhelmingly talented competitors on the rest of the field
  20. How do I create a UNC to an IPv6 address?
  21. Microspeak: Sats
  22. Ha ha, the speaker gift is a speaker, get it?
  23. Why doesn't Win32 give you the option of ignoring failures in DLL import resolution?
  24. Hey there token, long time no see! (Did you do something with your hair?)
  25. Flushing your performance down the drain, that is
  26. The contractually obligatory beeper, and the customers who demand them
  27. How do I customize the order of items in the All Programs section of the Start menu?
  28. Was there really an Opera billboard outside Microsoft main campus?
  29. What happens to a named object when all handles to it are closed?
  30. It rather involved being on the other side of this airtight hatchway: If you grant users full control over critical files, then it's not the fault of the system for letting users modify them
  31. Yes, the Windows 7 beta wallpaper was a picture of a betta fish

August 2010

  1. Shutdown reason codes are reason codes, not error codes or HRESULTs
  2. Be on the alert: Mainstream and alternative medicines mixed together on the store shelves, not clearly distinguished
  3. Reflections create Xbox logo on neighbor’s roof
  4. On LockWindowUpdate: Locking the taskbar
  5. If you return from the main thread, does the process exit?
  6. How do I recover the window handle passed to ShellExecute?
  7. What young children do when they hear a foreign language
  8. Why did the Explore option disappear from the context menu of folders in the second column of the Start menu?
  9. Windows 95: It sucks less
  10. Be careful that your splash screen doesn't squander the foreground love
  11. Miss France, she has the Eiffel Tower on her head, because France has the Eiffel Tower, and no other country does, so she put it on her head, that's why
  12. Why does the primary monitor have (0,0) as its upper left coordinate?
  13. I challenge you to come up with an even lamer physics pun
  14. How do I get the Explorer navigation pane to highlight the current folder all the time?
  15. Microspeak: The funnel
  16. What was that story about the WinHelp pen-writing-in-book animation?
  17. What happened to WinHelp?
  18. When do I need to use GC.KeepAlive?
  19. How can I find all objects of a particular type?
  20. How do I get the reference count of a CLR object?
  21. Everybody thinks about CLR objects the wrong way (well not everybody)
  22. When does an object become available for garbage collection?
  23. Everybody thinks about garbage collection the wrong way
  24. Some known folders cannot be moved, but others can, and you'll just have to accept that
  25. Raymond misreads flyers, episode 2: It Takes You
  26. How many failure reports does a bug have to get before Windows will fix it?
  27. Don’t forget to replace your placeholder bitmaps with real bitmaps
  28. A brief conversation while preparing to hike along the Pacific coast
  29. Did I know where the Novell short file name behavior came from?

July 2010

  1. Decoding the parameters of a thrown C++ exception (0xE06D7363)
  2. Holy cow, those TechReady attendees really love their tchotchkes
  3. Why is my icon being drawn at the wrong size when I call DrawIcon?
  4. The frustration of people who have already decided on the solution and won't let you derail them with your annoying questions
  5. Hardware backward compatibility: The finicky floppy drive
  6. Why didn’t Windows XP auto-elevate programs beyond those named setup.exe?
  7. MSDN content is also available as a Web service
  8. If I'm not supposed to call IsBadXxxPtr, how can I check if a pointer is bad?
  9. I will be speaking at TechReady11
  10. Things I've written that have amused other people, Episode 7
  11. No, you can't lock a gadget to the top of the sidebar
  12. Suggestion Box 4
  13. Management-speak: Multi-perspective content
  14. To enable and disable a window, use the EnableWindow function
  15. How do I launch the Explorer Search window with specific search criteria?
  16. There's always the low-tech way of managing a process, too
  17. Why don't all the Control Panel applications show up when you open a menu from the address bar?
  18. Tips for planning your ship party
  19. What is the cost of WS_CLIPSIBLINGS if the sibling windows don't overlap?
  20. What's the difference between LastWriteTime and ChangeTime in FILE_BASIC_INFO?
  21. How do I configure a Remote Desktop Connection shortcut to open on a specific monitor?
  22. Crackpots in computer security: The neighbors are looking at me weird
  23. Hardware backward compatibility: The firmware that missed one tiny detail
  24. One small silver lining of moving Boeing headquarters to Chicago
  25. The commutative law for postage and its limitations
  26. Instead of trying to figure out what shortcut class to use, just ask the shell to do it for you
  27. What Raymond listens to: KCRW's The Business
  28. What is the lpClass member of SHELLEXECUTEINFO used for?

June 2010

  1. 2010 mid-year link clearance
  2. Management fallacy: If I send people email, then they will work harder
  3. The illusory repair powers of black electrical tape
  4. Redneck Scrabble: It's fun unless you had to do it for real
  5. How do I get a radio button control to render its text transparently?
  6. 6-4, 3-6, 6-7 (7-9), 7-6 (7-3), 70-68: The scoreboard doesn't even go that high
  7. My life as a square (pixel)
  8. When setting expectations, you also have to deny them when necessary
  9. The best way to prove somebody incompetent is to make up stuff and then point out that it's idiotic
  10. How do I customize the Favorite Links section of the File Open dialog?
  11. Wow, a task bar, what a novel idea
  12. Bug Bash: It's funny because it's true
  13. As random as I wanna be: Why cmd.exe's %RANDOM% isn't so random
  14. I always do a double-take when I see the name Andrew Bynum
  15. Why can't AppLocale just be added to the Compatibility property sheet page?
  16. What does the PRE in PREfast stand for?
  17. Hunting for loopholes in Washington state's driving-while-phoning-or-texting law
  18. Annotating function parameters and using PREfast to check them
  19. My niece asked me what color seashell I would like her to draw
  20. How do I indicate that I want my window to follow right-to-left layout rules?
  21. When you set a 100% CPU program to real-time priority, you get what you asked for
  22. When you use a term, it helps if you know what the term means
  23. Proto-Microspeak: Bug-hugging
  24. Dum dee dum, just hanging around the European Conference on Computer Supported Co-op… OMG LOOK AT THOSE CUTE DUCKS!
  25. Is it real that you are still using Visual C++ 6 and 5?
  26. How do I enable and disable the minimize, maximize, and close buttons in my caption bar?
  27. The voice of Carl Kasell emerges from the loudspeaker as some old guy stands there and moves his mouth
  28. How do I convert an ANSI string directly to UTF-8?
  29. The giant typewriter eraser in the Olympic Sculpture Park in Seattle
  30. Puzzle: Can you explain this program's crash profile?
  31. Why doesn't the Windows Vista copy progress dialog show the names of the files being copied?, redux
  32. Welcome to the maze and enjoy the Habitrail

May 2010

  1. That's a great idea, it's on the list
  2. How do I accept files to be opened via IDropTarget instead of on the command line? – bonus content
  3. Every window with the WS_SYSMENU style has a system menu, but it's not there until it needs to be
  4. When will the window manager destroy a menu automatically, and when do I need to do it manually?
  5. How do I find the bounding box for a character in a font?
  6. Cliff Notes: The short version of the Cliff Mass blog
  7. Why doesn't the Windows Vista copy progress dialog show the names of the files being copied?
  8. Welcome to The New Old New Thing, 2010 edition
  9. What's the deal with What's This??
  10. SHAutoComplete giveth, and SHAutoComplete taketh away
  11. We've traced the call and it's coming from inside the house: Operating system names
  12. If you can detect the difference between an emulator and the real thing, then the emulator has failed
  13. No good deed goes unpunished, part 2, redux
  14. An insight into the balance between forgiveness and permission
  15. If Windows 3.11 required a 32-bit processor, why was it called a 16-bit operating system?
  16. Maxing out the upsell-o-meter
  17. How do I prevent users from dragging and dropping files in Explorer?
  18. Things the locals know: How to have lunch at El Brillante
  19. Why can I type a lowercase s with caron with the numeric keypad, but not a lowercase r with caron?
  20. The problem with setting up a story is that people focus on the set-up and miss the point of the story
  21. It rather involved being on the other side of this airtight hatchway: Consequences of enabling the kernel debugger
  22. On nearly getting pickpocketed in both Lisbon and Madrid
  23. Why can programs empty the clipboard when they start up?
  24. Words you've had wrong your entire life
  25. The many ways of converting a string from one language to another
  26. On the Portuguese custom of the couvert, and other restaurant customs
  27. What are these strange =C: environment variables?
  28. Eating where the teenagers are: Pão Pão, Queijo Queijo
  29. How the shell converts an icon location into an icon
  30. Microspeak: The statistic known as BIS
  31. Welcome to Belém, the scam artist capital of Lisbon
  32. How do I accept files to be opened via IDropTarget instead of on the command line?

April 2010

  1. Welcome to Taiwan's premier English-only nightclub
  2. If it's not yours, then don't mess with it without permission from the owner
  3. A short puzzle about heap expansion
  4. What happens to the contents of a memory-mapped file when a process is terminated abnormally?
  5. He bought the whole seat, but we only needed the edge
  6. Why doesn't TryEnterCriticalSection try harder?
  7. Our legal department suggests you skip our salad dressing and just eat an avocado
  8. Why can't I get my regular expression pattern to match words that begin with %?
  9. Email tip: When asking for help with a problem, also mention what you've already tried
  10. Email tip: When you say that something didn't work, you have to say how it didn't work
  11. The difference between your job and your hobby
  12. Why does the wireless connection dialog ask for your password twice?
  13. The mysterious stock bitmap: There's no way to summon it, but it shows up in various places
  14. Why are there two values for NoDriveTypeAutoRun which disable Autoplay on drives of unknown type?
  15. When you create an object with constraints, you have to make sure everybody who uses the object understands those constraints
  16. It's a miracle humanity has survived this far, if reaction to the inability to make or receive a telephone call is to be believed
  17. How do I switch a window between normal and fullscreen?
  18. Why can't you use WM_CTLCOLORSTATIC to change the color of a SS_BLACKRECT?
  19. Why doesn't SS_WHITERECT actually draw a white rectangle?
  20. How to edit the security attributes of more than one file at a time
  21. Microspeak: SQMmed
  22. When people ask for security holes as features: Non-administrators reading other users' stuff
  23. Why do non-folders in my shell namespace extension show up in the folder tree view?
  24. EnumClaw, the function that never was

March 2010

  1. 2010 Q1 link clearance: Microsoft blogger edition
  2. The great thing about URL encodings is that there are so many to choose from
  3. Non-Microspeak: Boiling the ocean
  4. Ruth Bader Ginsburg, the yardstick for Wikipedia entries
  5. What happens to the control names in the IDE when my program is running?
  6. WaitForInputIdle waits for any thread, which might not be the thread you care about
  7. WaitForInputIdle should really be called WaitForProcessStartupComplete
  8. First, try reading the error message, episode 3: Even programmers see error messages without reading them
  9. Why does it take longer to reject an invalid password than to accept a valid one?
  10. Germans are falling for the same trap as the Japanese: Importing words from English and changing the meaning, but the Germans do it even though the words didn't need to be imported at all
  11. Why does SHFileOperation have internal error codes for DVD?
  12. How many days long is a one-day sale? The answer might surprise you
  13. How does delay-loading use binding information?
  14. What is DLL import binding?
  15. What is DLL import hinting?
  16. Raymond's highly scientific predictions for the 2010 NCAA men's basketball tournament
  17. Why does my control send its notifications to the wrong window after I reparent it?
  18. Robots and humans coexisting, can it be done peacefully?
  19. A window can have a parent or an owner but not both
  20. Simplifying context menu extensions with IExecuteCommand
  21. Why does the OLE variant date format use 30 December 1899 as its zero point?
  22. Application compatibility layers are there for the customer, not for the program
  23. One of the consequences of accepting a job offer is that you might end up working with an interviewer who didn't like you
  24. Why is the fine for a basic traffic infraction in the state of Washington such a random-looking number?
  25. PSM_ISDIALOGMESSAGE is to modeless property sheets as IsDialogMessage is to modeless dialog boxes
  26. The best actors in the business still lean into the microphone when they talk
  27. Why doesn't double-right-click bring up the Properties dialog?
  28. Delegation of responsibilities within a family during pregnancy
  29. How do I access the magic IEEE floating point values like NaN in code?
  30. Everyday is Grammer Day
  31. What happens if I drag the mouse by exactly the amount specified by SM_CXDRAG?
  32. Voicemail security, even stronger than bank security
  33. Microspeak: Dialogue
  34. Chilly Hilly 2010 kicked my butt
  35. When does STARTF_USESHOWWINDOW override the parameter passed to ShowWindow()?

February 2010

  1. Microwave popcorn enthusiast proudly proclaims, "I *am* popcorn!"
  2. It's fine to use fibers, but everybody has to be on board with the plan
  3. Food products that are offenses against nature: Bagel-fuls
  4. What happens to the fibers which ran on a thread when the thread exits?
  5. German language tip: Matratzen = mattresses, Matrosen = sailors
  6. Why does the CBS_SORT combo box style sort the left square bracket so strangely?
  7. Le Chatelier's principle in action: Announcements
  8. On the Internet, everybody wants to know if you're a dog
  9. Custom navigation in dialog boxes, redux
  10. How many servings are there in a single-serve cup? The answer might surprise you
  11. The normal string manipulation functions stop on a null terminator, so be careful when manipulating double-null-terminated strings
  12. Don't forget to double-null-terminate those strings you pass to SHFileOperation
  13. Happy birthday, Windows 2000, and try not to get too hung over
  14. The fundamental rule of rocket science
  15. It rather involved being on the other side of this airtight hatchway: Dubious escalation
  16. Advocating the overthrow of the government of the United States by force or subversion
  17. Private classes, superclassing, and global subclassing
  18. A decidedly Canadian response to the shambles that was the running portion of the modern pentathlon in Beijing
  19. How do I get information about the target of a symbolic link?
  20. A sense of the term anonymous with which I had previously been unfamiliar
  21. Those annoying satisfaction surveys
  22. No matter what you do, someone will call you an idiot, part 2
  23. Moving by staying put
  24. The 2010/2011 Seattle Symphony subscription season at a glance
  25. For better performance, set all your monitors to the same color format
  26. A simple Venn diagram teaches you the difference between Norway and Sweden
  27. Why doesn't my program receive the WM_DWMSENDICONICTHUMBNAIL message when I ask for an iconic representation?
  28. The Brits once again come up with a clever solution to the problem of the scatterbrained client
  29. Why doesn't the shell animation control tell me the dimensions of the animation it is displaying?
  30. Long-term temporary parking?
  31. What is the maximum length of an environment variable?
  32. It appears that car park computers revert to their native language, German, when placed under stress
  33. Microspeak: Future-proofing
  34. It looks a little like CMD except there is white on the background
  35. Why can't I use the linker to delay-load a function from kernel32?

January 2010

  1. How do I suppress full window drag/resize for just one window?
  2. Microsoft phenomenon: The annual award that winds up being awarded only once
  3. What idiot would hard-code the path to Notepad?
  4. If you are trying to understand an error, you may want to look up the error code to see what it means instead of just shrugging
  5. Microspeak: Zap
  6. Why doesn't the window manager have a SetClipboardDataEx helper function?
  7. During process termination, the gates are now electrified
  8. Historically, Windows didn't tend to provide functions for things you can already do yourself
  9. The wrong way to determine the size of a buffer
  10. The hardest part of writing the video game Monty Python's Complete Waste of Time
  11. People just like you, for certain values of you
  12. It's fine to rename a function in your DEF file, but when you do, you have to link to that function by its new name
  13. How you might be loading a DLL during DLL_PROCESS_DETACH without even realizing it
  14. I could just use a picture of a regular-sized shopping cart from farther away
  15. It rather involved being on the other side of this airtight hatchway: If they can inject code, then they can run code
  16. News flash: Wearing clothing keeps you warm
  17. Why does GetCommandLine give me a corrupted command line?
  18. But that's not all: The story of that cheesy Steve Ballmer Windows video
  19. Weight Gain 4000, the competition
  20. Pros and cons of using a four-year-old as your language instructor
  21. Why aren't compatibility workarounds disabled when a debugger is attached?
  22. What is the hSection parameter to CreateDIBSection for?
  23. Learning how to cheat at Candy Land
  24. How to change the debugger attached to a process
  25. The wisdom of seventh graders: Success
  26. Can you get rotating an array to run faster than O(n²)?
  27. Thanks for coming together to enjoy the holiday together, now get off my lawn
  28. Microspeak: Engagement
  29. How many sides are there to a snowflake? The answer may surprise your marketing department
  30. How about not granting debug privileges to users?
  31. The goggles, they do nothing!: Gemulator advertisement from 1992
  32. Your program assumes that COM output pointers are initialized on failure; you just don't realize it yet

2009 420

December 2009

  1. 2009 year-end link clearance
  2. Why does COM require output pointers to be initialized even on failure?
  3. Join the Seattle Symphony for a New Year Eve's performance of Beethoven's Nin… wait a second…
  4. Even your folder icons can be used as a Rorschach test
  5. How do I minimize a group of windows in Windows 7 from the taskbar?
  6. How does the keyboard autorepeat setting work?
  7. Merry Christmas to me: Zune headphones
  8. No, you didn't win the Jethro Tull box set, and please tell everybody else in your area code to stop calling me
  9. The NPR Planet Money one-hour story competition: The shopping mall convention
  10. Why don't we create a special class of programs which can break the normal rules?
  11. Exploiting the inattentive: The posted wine rating may not match the wine on the shelf
  12. Why is it possible to destroy a critical section while it is in use?
  13. Tweeting Too Hard: Best of Twitter
  14. No, you can't lock icons to the user's desktop
  15. Christmas gift idea for your favorite Microsoft fanboy geek with no sense of fashion or taste
  16. What version of the compiler does Raymond use?
  17. The economic inefficiency of gift-giving
  18. I got an array with plenty of nuthin'
  19. Surprising things injected into Mozart cadenzas
  20. What was the ShowCursor function intended to be used for?
  21. Just like in real life, you can hire someone to do your programming taxes for you
  22. You are listening to Radio Free Bob, a pirate radio station broadcasting on the Microsoft corporate network
  23. Why did the word Start disappear from the Start button?
  24. Lamebook: The best of Facebook
  25. The format of bitmap resources
  26. Those houses are too small for anyone to live in
  27. Only an idiot would have parameter validation, and only an idiot would not have it
  28. What are those little overlay icons: Windows 7 edition
  29. How do I determine the processor's cache line size?
  30. Things I've written that have amused other people: Episode 6
  31. I'm sorry, Brian/Bryan Gregory, that confirming the spelling of your name is too much for you to handle
  32. What is the story behind multimon.h?
  33. Why do some comments have a star?
  34. When there is a long line of people waiting for a shared resource, you want to investigate the person who is hogging the resource, not the people waiting in line for it
  35. Why do Swedes count "1, X, 2"?
  36. What is the effect of setting the /3GB switch on my 64-bit Windows machine?
  37. Fake trend watch: Bridesmaid pre-nuptial agreements
  38. A shell extension is a guest in someone else's house; don't go changing the carpet
  39. Intelius cancels its cell phone directory, saving me the trouble of having to opt out of it every three months
  40. Microspeak: Cookie licking

November 2009

  1. Umpires are the lymphatic system of the baseball diamond
  2. Where did WIN32_LEAN_AND_MEAN come from?
  3. How does Raymond get rid of his excess pennies?
  4. Caches are nice, but they confuse memory leak detection tools
  5. I want to take all your chocolate milk
  6. When you want to copy a file into a folder, make sure you have a folder
  7. The magic of chocolate milk
  8. How do I get the command line of another process?
  9. When computer programmers dabble in making change
  10. Can I talk to that William fellow? He was so helpful
  11. The difference between assignment and attachment with ATL smart pointers
  12. We're using a smart pointer, so we can't possibly be the source of the leak
  13. News flash: Healthy people live longer
  14. How do I move the Windows.edb and other search index files?
  15. We found the author of Notepad, sorry you didn't go to the award ceremony
  16. How to tell when your patent has been approved
  17. How to pretend that you attended my talk at UIUC Reflections|Projections 2009
  18. Why does shlwapi import a nonexistent function?
  19. What a drag: You can be a drag in managed code, too
  20. You thought reasoning about signals was bad, reasoning about a total breakdown of normal functioning is even worse
  21. Why can you create a PIF file that points to something that isn't an MS-DOS program?
  22. Leave it to the Taiwanese to think of wrapping a donut inside another donut
  23. Trying to avoid double-destruction and inadvertently triggering it
  24. I reorganized your kitchen for you, sweetie
  25. Little-known command line utility: clip
  26. Stories of anticipating dead computers: Windows Home Server
  27. How do I create a toolbar that sits in the taskbar?
  28. Signs that the symbols in your stack trace are wrong
  29. The day the coffee machine exploded
  30. In the product end game, every change carries significant risk
  31. Good advice comes with a rationale so you can tell when it becomes bad advice
  32. When asked to choose among multiple options, the politician will pick all of them
  33. Microspeak: Net out
  34. Hey, is there somebody around to accept this award?

October 2009

  1. Still working out the finer details of how this Hallowe'en thing works
  2. What is the format for FirstInstallDateTime on Windows 95?
  3. What this batch file needs is more escape characters
  4. Warning: Not much useful content inside
  5. Why does the Photo Gallery show all my photos with a colored tinge?
  6. If aluminum pull tab redemption is a rumor, what happens to all the tabs?
  7. Freudian typo: The accidental emoticon
  8. Why won't my computer go to sleep? Where is the energy going?
  9. Yes, there's a new desktop window manager, but no, I don't know any more about it than you do
  10. If you have to cast, you can't afford it
  11. Once you announce a date, you’re already late
  12. Please, sir take a seat, sit anywhere you like, but oh, no, not there, rats
  13. How to write like Raymond: Start a sentence with a question mark
  14. Leaving Reflections | Projections 2009, travel marathon part two
  15. Thinking inside the box
  16. Arrived in Urbana-Champaign for Reflections|Projections 2009
  17. Important window message numbers to memorize
  18. Don't use global state to manage a local problem, practical exam
  19. Viral video: Pianotrappan
  20. When you want to pass a parameter on the command line, don't forget to pass the parameter on the command line
  21. You always hurt the things you love
  22. Why do we have import libraries anyway?
  23. The classical model for linking
  24. LoadString can load strings with embedded nulls, but your wrapper function might not
  25. In Hawaiʻi, "mahalo" might officially mean "thank you"
  26. What is the format of a double-null-terminated string with no strings?
  27. I will be speaking at Reflections|Projections 2009
  28. The ways people mess up IUnknown::QueryInterface, episode 3
  29. Proto-Microspeak: Efforting
  30. Trying to come up with the most annoying meal ever
  31. Why doesn't the mail image resizer check the image size before offering to resize?
  32. The mystery of the other girlfriend
  33. When you commit memory, you get a commitment to receive memory when you need it, but no sooner
  34. A Few Seconds of Panic: Life as an NFL kicker
  35. In the search for the subtle source of the problem, you sometimes overlook the obvious one

September 2009

  1. 2009 Q3 link clearance: Microsoft blogger edition
  2. Why do messages posted by PostThreadMessage disappear?
  3. Microspeak: Net net
  4. Why doesn't Explorer have an interface for creating hard links?
  5. The ways people mess up IUnknown::QueryInterface, episode 2
  6. Don't panic, it's just H1N1
  7. When people ask for security holes as features: Privileged execution
  8. The COM marshaller uses the COM task allocator to allocate and free memory
  9. We’ve got your hotel surrounded (on one side) (and not even the entire side)
  10. Things I've written that have amused other people, Episode 5
  11. We accept cash, credit cards, and Microsoft cardkeys
  12. What is the logic behind the thumb size and position calculation in scroll bars?
  13. Windows 95's ticking death
  14. Should I fix the spelling in the United States Constitution?
  15. Rentonites concerned about Hooters opening in their town, but not for the reason you think
  16. Whoa there, logging on awful fast now are we?
  17. Crazy Eddie: His prices were insane because it was all a criminal operation
  18. Why does the Start menu search box autoselect some items but not others?
  19. A complex family calculus
  20. Can you create an information context for the display?
  21. Most people who go to an open house aren't actually interested in buying it
  22. If you're handling an out of memory exception, you probably shouldn't allocate memory
  23. Start with a $50,000 grant, hold a fundraiser, lose $47,000
  24. Management-speak: Focus
  25. Hey, you look Chinese, we have a class for people like you
  26. When you agree to write to a particular length, make sure your content is actually that length
  27. Why are developer tools orange?
  28. Things other people have written that have amused me, Episode 2
  29. Thanks for identifying the good programmers for us
  30. Two-year-old as finite state machine
  31. Reading the error message carefully can help you see how the computer misinterpreted what you typed
  32. Grown in the middle of some very respectable Seattle suburbs, such as Renton
  33. Woe unto PROGMAN.INI
  34. Welcome to the 11th annual Mid-Atlantic Road-E-O
  35. The wheels of government bureaucracy turn slowly: Green cards
  36. Walt Mosspuppet: The return of the fake blog
  37. One way to make sure nobody sends you feedback

August 2009

  1. And they don't take American Express
  2. Why do new controls tend to use COM instead of window messages?
  3. A different perspective from the first row of the symphony
  4. The great thing about naming conventions is that not everybody will follow them
  5. Isn't every dinner at a technology conference a geek dinner?
  6. What is the maximum number of timers a program can create?
  7. The way to stop people from copying files to a folder is to use NTFS security, not to block drag/drop
  8. In Ephesus, you juggle or die
  9. Meta-content: Suggestion Box 4 will open sometime next year
  10. My phone just DoS'd my office network
  11. City noises and their effects on songbirds
  12. The operating system doesn't know which language programs are written in – by the time the code hits the CPU, they all look the same
  13. Restating the obvious about the WM_NOTIFY message
  14. Why does Windows wait longer than my screen saver idle timeout before starting the screen saver?
  15. There’s no law that says a meeting can’t end early
  16. Microspeak: Action on
  17. The format rectangle is recalculated whenever the window resizes, and that's a good thing
  18. It's not just on the Internet that nobody knows you don't have a real office
  19. Why can't I declare a type that derives from a generic type parameter?
  20. Landing the Space Shuttle is hard enough as it is
  21. Common gotchas when writing your own p/invoke
  22. The wisdom of sev^H^H^Heighth graders: What it means to be an adult
  23. Why can't I pass a reference to a derived class to a function that takes a reference to a base class by reference?
  24. The wisdom of seventh graders: What it means to be an adult
  25. Actually, FlagsAttribute can't do more; that's why it's an attribute
  26. Why doesn't String.Format throw a FormatException if you pass too many parameters?
  27. The wisdom of seve^H^H^H^Hsixth graders: What it means to be an adult
  28. Not beany enough
  29. SHCIDS_CANONICALONLY is the moral equivalent in the shell namespace of the Unicode ordinal comparison
  30. The great thing about regular expression engines is that there are so many to choose from
  31. Searching for Evil: Spot the scam
  32. How do you drop on the background of an Explorer window when it is in details view?
  33. Programming means that sometimes you have to snap two blocks together
  34. A burglar tells you the best place to hide your money
  35. When giving a presentation with a diagram, pretend the diagram doesn't exist

July 2009

  1. How organizations inadvertently confirm facts when they try not to
  2. What is the difference between Directory and DirectoryBackground?
  3. How do I quickly position two windows side by side using only the keyboard?
  4. What is the difference between CSIDL_DESKTOP and CSIDL_DESKTOPDIRECTORY?
  5. The advantage of knowing your limits of discrimination
  6. How do I put a window at the edge of the screen without triggering the automatic positioning behavior?
  7. Mr. Lee CatCam lets you see what a cat does all day
  8. How do I quickly position two windows side by side?
  9. Conway-Kochen Free Will Theorem: Lecture series
  10. Polling by sleeping versus polling by waiting with a timeout
  11. The guerilla wedding
  12. If you wished a language supported the preprocessor, you know, you can fix that
  13. Changes to the the 2009/2010 Seattle Symphony subscription season, part 2
  14. Your debugging code can be a security hole: Contest tickets
  15. I saw a fascinating documentary about bugs
  16. Microspeak: Whale Boy
  17. Proto-Microspeak: Coceptualize
  18. Why was MoveTo replaced with MoveToEx?
  19. The disembodiment of DIBs from the DIB section
  20. Caption contest: The pinball machine: Results
  21. Separating the metadata from the DIB pixels: Changing the raster operation
  22. On gender differences in expectations of thinness, and the impact on guys who live in their parents' basement
  23. Separating the metadata from the DIB pixels: Precalculating the BITMAPINFO
  24. What happens to your restaurant tip?
  25. The fun and profit of manipulating the DIB color table can be done without having to modify it
  26. Failed follow-up: The case of the dubious dental work
  27. Speculation on how a mishandled 13-character string can result in a blue screen
  28. The world reaction to the unexpected death of Michael Jackson extends to young children
  29. If dynamic DLL dependencies were tracked, they'd be all backwards
  30. Film students and The Bicycle Thief
  31. MS-DOS also allowed spaces in file names, although vanishingly few programs knew how to access them
  32. Up and down often substitute for compass directions, but you have to know when you've taken it too far
  33. Attack of the rogue feature: Oh no, where did my Explorer icon labels go?
  34. More musings on the peculiar linguistic status of languages acquired in childhood
  35. Command line parsers look at what you typed, not what what you typed looks like
  36. If somebody speaks a language I’m not expecting, sometimes I don’t understand it, even though I should
  37. A 32-bit application can allocate more than 4GB of memory, and you don't need 64-bit Windows to do it
  38. The most unwanted song ever
  39. Why does my screen go black when an emergency hibernation is in progress?
  40. Foreign languages can be used to impede communication
  41. You can use a Coke slogan as your password, but not a Pepsi one
  42. The New York Times says I'm doing it all wrong, but maybe that's for the better

June 2009

  1. 2009 mid-year link clearance
  2. Microspeak: The plan for the plan
  3. Learning to lie: Early forays
  4. If you want to consume all the virtual address space, well, then go ahead and consume it, you don’t need my help
  5. John Swansburg deftly declines the fine print disclaimer on his Heelys
  6. The thread that gets the DLL_PROCESS_DETACH notification is not necessarily the one that got the DLL_PROCESS_ATTACH notification
  7. News flash: Children are influenced by advertising
  8. First, try reading the error message, episode 2: Even programmers see error messages without reading them
  9. Spam trackback attack week 3 statistics
  10. Yet another experiment in motivating people to find and fix bugs
  11. Oh great, and my phone even has a CPU meter
  12. High school students guess what happens to money deposited into checking accounts
  13. Why does a flashing taskbar result in a fullscreen console returning to windowed mode?
  14. The butter and the money for the butter
  15. You can’t leave a critical section you never entered
  16. Don’t you hate it when someone leaks a ref to your clothes?
  17. The dangers of mixing synchronous and asynchronous state
  18. Welcome to Leavenworth, Washington’s faux-Bavarian village
  19. Sure, I can get spurious WM_MOUSEMOVE messages, but why do they keep streaming in?
  20. Management-speak: Upping the sats and stimulating the ecosystem
  21. Happening to be at the same post-concert restaurant as symphony performers
  22. Why do some file operations take file names and others take handles?
  23. A concrete illustration of practical running time vs big-O notation
  24. Fortune cookie fortunes are getting less and less interesting all the time
  25. Spam trackback attack week 2 statistics
  26. Why does Explorer use the term KB instead of KiB?
  27. Foreign languages can be used as a secret code, but it’s not always a good secret code
  28. Why does MS-DOS use 8.3 filenames instead of, say, 11.2 or 16.16?
  29. Mixed messages from the IT department regarding email safety
  30. On the importance of sanity-checking values where money is involved
  31. Why isn’t there a separate British English version of Windows?
  32. I’m sorry, Brian George, but we got cut off and I couldn’t call you back
  33. Bonus chatter about that virus that is responsible for the top six Explorer crashes
  34. Cool guys don’t look at explosions
  35. Why can’t I rotate the display with ChangeDisplaySettingsEx?
  36. Last tube standing: The Cardboard Tube Fighting League
  37. What does the “Zw” prefix mean?
  38. Spam trackback attack returns, it’s not a matter of whether but how much
  39. Who you calling boring?
  40. Whew, I’m not doing *that* again!
  41. Why does the CreateProcess function modify its input command line?

May 2009

  1. Lessons from the state police, like what to do when they pull you over
  2. Alternatives to using the #error directive to check whether the compiler even sees you
  3. An unexpected application of the First Law of Thermodynamics
  4. I’m sorry, you don’t have permission to know where this shortcut file should show up in the Explorer window
  5. Before designing and implementing around an assumption, it helps to check that your assumption is true
  6. How to hide privacy violations in a privacy disclosure statement, part 2
  7. What do you call a gadget that is used for debugging which looks at the properties of other gadgets?
  8. The latest installment of Wallace and Gromit coming to Seattle
  9. Why can’t you change the alignment of an edit control after it has been created?
  10. Chicken chicken chicken chicken
  11. If an event is signaled more than once, are they delivered in the order in which they were signaled?
  12. First, try reading the error message: Episode 1
  13. Signs that your new building was originally designed for another purpose: Rest rooms
  14. Just letting you know I had to reboot my telephone
  15. How do I know whether a window message was processed?
  16. Windows Vista User Experience Guidelines is online and downloadable
  17. Imagine our luck when we found one of the fancy conference rooms available for our meeting
  18. Parents billed when kids miss school: Pay for play
  19. Creating shortcuts in the same folder as the target isn’t as stupid as you may think
  20. People become more trustworthy the more you trust them
  21. Microspeak: T-shirt sizing
  22. How do I get a window back on the screen when it moved far, far away?
  23. Writing a sort comparison function, redux
  24. A puzzle: Why are so many fake LiveJournal blogs written by 29-year-olds?
  25. When you subclass a window, it’s the original window procedure of the window you subclass you have to call when you want to call the original window procedure
  26. You can tell which people listed blogging as a performance review goal
  27. The social skills of a thermonuclear device: Why did you hang up?
  28. The dummy icon that doesn’t know that its fifteen seconds are over
  29. When advanced users outsmart themselves: The device removal notification icon

April 2009

  1. Identity theft via repeated name changes
  2. Those notification icons, with their clicks, double-clicks, right-clicks… what’s up with that?
  3. Qrystal does more research into those spam blogs
  4. Why is there sometimes a half-second delay between the click and the action?
  5. A simple bar chart on letter distribution
  6. What kind of uncle am I?
  7. The Start menu pin list is just a list of items; there’s no magic
  8. No, we’re not nerds, why do you ask?
  9. Fashion is something that can be acquired by looking at lots of different fashions
  10. Why are there two values for PSH_WIZARD97?
  11. If you can’t find the statistics you want, then just make them up
  12. What structure packing do the Windows SDK header files expect?
  13. How to answer the telephone, according to the manual
  14. Principles of economics, translated
  15. The dangers of destroying a window while it is processing a sent message
  16. Why is the animation common control limited to RLE8-compressed animations?
  17. The frustration of people who are not interested in why something works but only interested in the magic phrase they need to type
  18. Taxes redux: You can’t open the file until the user tells you to open it
  19. Microspeak: The plate
  20. Why is there no support in the window manager for mouse button chording?
  21. When people ask to disable drag and drop, they often are trying to disable accidental drag and drop
  22. Being able to call a function without using GetProcAddress is not a security vulnerability
  23. Let GDI do your RLE compression for you
  24. Clap and the filter graph claps with you
  25. There’s nothing wrong with making bold treeview items
  26. On the almost-feature of floppy insertion detection in Windows 95
  27. Windows 95 almost had floppy insertion detection but the training cost was prohibitive
  28. Office redecoration: The classic Microsoft prank

March 2009

  1. 2009 Q1 link clearance: Microsoft blogger edition
  2. Freudian typo? The spinlock
  3. What is the implementation of WM_PRINTCLIENT?
  4. I drive a car the way most people use a computer
  5. The inability to lock someone out of the registry is a feature, not a bug
  6. Caption contest: The pinball machine
  7. Double secret auto-arrange probation
  8. What’s the point of the MoveWindow function when we already have SetWindowPos?
  9. How to write like Raymond: Intentional typographical errors
  10. Defense in depth means that you protect against exploits that don’t exist yet
  11. You can’t globally reserve screen space; you can put up signs, but if somebody ignores the sign you’ll have to decide how to respond
  12. Raymond’s highly scientific predictions for the 2009 NCAA men’s basketball tournament
  13. Well, duh, I’d sure better get my money back
  14. Overheard conversation fragment: Shrimp is not vegetables
  15. Why does the MoveWindow function let you suppress repainting?
  16. Raymond rewrites newspaper headlines, episode 2
  17. The perilous quandary of including external drivers on the Windows CD
  18. If Michael Jackson took up bhangra dancing
  19. Engineering is about tradeoffs: How hard will you work to save 68KB of disk space?
  20. Et tu, Fargo
  21. Sometimes people don’t even read what they’re typing
  22. The house no-electronics zone
  23. Why don’t the favorites I copy into the common Favorites directory show up in the Favorites menu of all users?
  24. Totally Recall: The meal
  25. Why doesn’t the MoveWindow function generate the WM_GETMINMAXINFO message?
  26. Why is the Win32 epoch January 1, 1601?
  27. Race you to the top: The Empire State Building Run-Up
  28. Fixups are not the same as rewriting code, they’re just fixups
  29. Microspeak: Year-over-year
  30. If Twitter is micro-blogging, then is what I’m doing macro-tweeting?
  31. Why is there a dry fountain in the Redmond North campus?
  32. Do QueryProcessCycleTime and QueryThreadCycleTime include cycles spent in kernel mode?
  33. The Suggestion Box is for suggestions, that’s why it’s called a Suggestion Box

February 2009

  1. What are your high school language students complaining about today?
  2. How does Raymond decide what to post on any particular day?
  3. Pressing a registered hotkey gives you the foreground activation love
  4. Star Trek meets The A-Team
  5. Smart quotes: The hidden scourge of text meant for computer consumption
  6. Rob Cockerham investigates those companies that pay cash for gold
  7. Email tip: Just because you get answers when you misuse a mailing list doesn’t doesn’t mean you should continue to misuse it
  8. Why is there no supported way to get the command line of another process?
  9. Announcements on the ferry, and hills that grew while I was away
  10. Foreground activation permission is like love: You can’t steal it, it has to be given to you
  11. Why do my file properties sometimes show an Archive check box and sometimes an Advanced button?
  12. Guest TCP psychic debugging: Why the remote server keeps RSTing the connection
  13. Another Seattle bus tool: One Bus Away
  14. Why doesn’t the file system have a function that tells you the number of files in a directory?
  15. Don’t keep track of information you don’t need
  16. The love bus, also known as Metro Bus Route number 308
  17. The checkbox: The mating call of the loser
  18. Superthunderstingcar is go!
  19. What does the COM Surrogate do and why does it always stop working?
  20. In order to serve you bett… wait, it really is better: Fuel surcharges
  21. If you get confused by a register dump, then you’ll just have to accept that some of my postings won’t make any sense
  22. A different type of writing exercise, this time in preparation for buying a house
  23. Changes to the the 2009/2010 Seattle Symphony subscription season
  24. What is the purpose of the RunAsCommand value?
  25. A process shutdown puzzle: Answers
  26. What the various registry data types mean is different from how they are handled
  27. Being lucky is observing what you weren’t expecting: An illustration
  28. What is the terminology for describing the various parts of the registry?
  29. The 2009/2010 Seattle Symphony subscription season at a glance
  30. Microspeak: Recommends (noun)
  31. Welcome to Groundhog Day, a holiday where the same thing happens over and over
  32. How do I programmatically show and hide the Quick Launch bar?

January 2009

  1. The problem with The Month Where Everyone Focuses on Improving Documentation is that most people are terrible technical writers
  2. Games to play at your Battlestar Galactica watching party
  3. A process shutdown puzzle
  4. The great thing about being popular is that everybody wants to see you go down
  5. When you have only 16KB of memory, you can’t afford to waste any of it on fluffy stuff
  6. There’s camping, and then there’s luxury camping, and then there’s ridiculous luxury camping
  7. Why can’t I see all of the 4GB of RAM in my machine?, redux
  8. I think I can read the bassoonist’s music from here
  9. But then we ran into problems when we started posting 10,000 messages per second
  10. Why can’t you apply ACLs to registry values?
  11. Why do I get the error REGDB_E_IIDNOTREG when I call a method that returns an interface?
  12. If you have full trust, then you can do anything, so don’t be surprised that you can do bad things, too
  13. If you didn’t like the answer, asking the same question again is unlikely to help
  14. May the Horse Be With You: Stories from the racetrack
  15. Why isn’t the screen resolution a per-user setting?
  16. You cannot pre-emptively reserve a file extension
  17. If you’re at a Thai restaurant with a Thai person who’s ordering food in Thai, and she asks you if you like your food spicy, think twice before answering
  18. What is this magic setting that synthesizes Unicode from non-Unicode?
  19. The day shell.windows.com went down
  20. Excessive speed appeared to be a factor in the crash
  21. Where does shell.windows.com get information about file extensions, and how do I get in on that action?
  22. xkcd breaks the news on the new Windows 7 user interface
  23. How does PostQuitMessage know which thread to post the quit message to?
  24. It’s surprising how suddenly those new skins started pouring in
  25. The programmers don’t design skins; they just make skins possible
  26. Raymond misreads flyers: A Taste of WWL
  27. When debugging a stack overflow, you want to focus on the repeating recursive part
  28. Microspeak: Learnings
  29. Not my finest hour: Misreading a product label
  30. Even if you have code to handle a message, you’re allowed to call DefWindowProc, because you were doing that anyway after all
  31. Kids love cake, but that doesn’t make them good judges of cake
  32. Why doesn’t Windows 95 format floppy disks smoothly?
  33. Follow-up: A new DUI record set in the state of Washington
  34. How do I write a program that can be run either as a console or a GUI application?

← 2006–2008 2013–2016 →