2006–2008
1,320 posts
2008 431
December 2008
- 2008 year-end link clearance
- Sorry, I don’t get calls on this phone often
- Crazy or cell phone?
- Every crash is a potential security vulnerability
- Undecorating names to see why a function can’t be found
- Why are all computers shown with a Printers folder even if printer sharing is disabled?
- Then again, sometimes the improvement is merely incremental
- Foiled by my withered hand
- Misheard lyrics as applied to Christmas songs
- Why isn’t there a SendThreadMessage function?
- The Fargo campus responds to Redmond’s December 2008 storm conditions
- On 64-bit Windows, 32-bit programs run in an emulation layer, and if you don’t like that, then don’t use the emulator
- What is the mysterious fourth message box button?
- How do I obtain the computer manufacturer’s name?
- How to create a Zune podcast from an audiobook or other files you already have
- The worms go in, the worms go out
- Microspeak: Suited and booted
- Today, we use a GPS to locate Baby Jesus
- Why does the Explorer address bar reset itself while you’re typing into it?
- PDC 2008 notes: The aftermath
- Being lucky may be a matter of observing things you weren’t planning to observe
- The Washington 2008 unclaimed property auction
- Don’t use global state to manage a local problem
- A bar on Microsoft main campus? What should we call it?
- How do I change the directory Windows uses for user profiles?
- The role of vitamin D in beta cell function: The dance
- Email tip: If you want people to look at a screen shot, you have to tell them what they’re looking at
- A file can go by multiple names, but two files can’t have the same name
- Thrift stores drowning in Christmas impulse gifts from yesteryear
- Why are the generic version numbers called NTDDI?
- Neuroscience can be used for good or for evil; this one might fall in the evil bucket
- When you start getting in-page errors on your hard drive, it’s time to go shopping for a new hard drive
- The struggle against those annoying plastic packages gains a few allies
- High Contrast Mode is not the same as High Contrast Scheme
- That guy in the neighborhood who has way too many Christmas lights
- Raymond’s technique for getting people to leave a meeting room when their meeting runs over
- Oh, I feel so bad for those poor Wall Street folks who have to have a normal party instead of a ridiculously lavish one
- Don’t be helpless: You can find information too, if you try (episode 2)
November 2008
- The Ballard Locks will be empty this week
- Just because a method is called Refresh doesn’t mean that it refreshes what you want
- Welcome to the 2008 holiday shopping season
- Not my finest hour: Getting instructions on doing something I’ve already done
- The cost-benefit analysis of bitfields for a collection of booleans
- Yes, I filed an expense report for a hair dryer, why do you ask?
- When you’re walking around a city, you usually forget to look up
- Consequences of the Explorer view model: If you create a view, then you succeeded, even if you’d rather fail
- Rachmaninov had big hands: An illustration
- The great thing about priorities is that you can always go one higher
- If everything is top priority, then nothing is top priority
- Adventures in product testing: This phone’s so hot, it’ll set your head on fire
- If you wait long enough, everything is our top priority
- Is second-hand advice better than no advice at all?
- You’d think this sort of disclaimer on children’s modeling clay would not be necessary
- Why bother with RegisterWaitForSingleObject when you have MsgWaitForMultipleObjects?
- Email tip: If you ask a question that can be answered in only one way, but that’s not the answer, don’t be surprised that nobody responds at all
- Rearranging the cities into a much more visually pleasing arrangement
- Why is the maximum boot.ini delay 11 million seconds?
- Doesn’t matter what your marketing technique is for your compiler if nobody actually writes code in your language any more
- Now it’s like people buy sneakers to make money out of them
- You can’t fight in here; this is the War Room!
- What do these topics have in common?
- How slow do you have to slow-double-click for it to be a rename?
- What I don’t get about bank robbers
- Self-esteem gone overboard: The perils of a global namespace
- What seventh grade students want to be when they grow up, an analysis
- Does version 6 of the common controls support ANSI or not?
- Microspeak: Represent
- Quite possibly my last in-person ballot for a long time
- How did Spicy Hot V-8 vegetable juice get added to the complimentary beverages in Microsoft kitchens?
- Sensor development kits were flying off the shelves
- If there’s already a bug, it’s not surprising that there’s a possibility for error
October 2008
- Stick to the normal candy and nobody gets hurt
- Working with ambiguous and invalid points in time in managed code
- Dude, the admission bracelet goes around your wrist
- If you’re going to reformat source code, please don’t do anything else at the same time
- PDC 2008 notes: How to get to room 406A, and other notes
- Why does my Run dialog say that tasks will created with administrative privileges?
- Typo patrol at the 2008 PDC
- To climb the corporate ladder you’ll need some rope, but rope has many purposes
- Ah, local Los Angeles television news, how I miss thee
- If you don’t want to try to repair the data, then don’t, but you should at least know that you have corrupted data
- Man, this housing downturn is hitting everyone
- Sucking the trap frame out of a kernel mode stack trace
- Strange things happen when you let people choose their own name, part 3
- Strange things happen when you let people choose their own name, part 2
- Strange things happen when you let people choose their own name, part 1
- Off-Roading The Old New Thing
- Why can’t you thunk between 32-bit and 64-bit Windows?
- The cult of PowerPoint, episode 2
- Psychic debugging: Why your thread is spending all its time processing meaningless thread timers
- Possessed: A documentary about hoarding
- Disable your wireless network card to speed up VPN’ing
- Why does Task Manager let me kill critical system processes?
- Why does killing Winlogon take down the entire system?
- How do I suppress the CapsLock warning on password edit controls?
- How can I increase the number of files I can open at a time?
- Why does the Disk Management snap-in report my volume as Healthy when the drive is dying?
- Microspeak: Teaming
- Eventually, nothing is special any more
- Stories of crossing into Canada: The wedding
- Acquire and release sound like bass fishing terms, but they also apply to memory models
- The dangers of setting your double-click speed too short
- An artist’s conception of the new citizenship test
- Why do maximized windows lose their title bar translucency?
September 2008
- 2008 Q3 link clearance: Microsoft blogger edition
- When computer programmers dabble in economics: Buying prepaid lunch vouchers
- Meet the authors: Mario Hewardt and Daniel Pravat, authors of Advanced Windows Debugging
- Anybody can make up a generic mapping
- ERRORLEVEL is not %ERRORLEVEL%
- The description of my 2008 PDC talk is wrong
- Even if a function doesn’t do anything, you still have to call it if the documentation says so, because it might do something tomorrow
- When attending a training session on how not to mess up your life, try not to mess up your life
- How do I change the size of my desktop icons?
- Microspeak: Space delivery
- News flash: Doing something that requires your attention reduces your ability to do other things at the same time which also require your attention
- I’ve seen why people steal the foreground window for their dialog box
- Steamy coffee leaves grounds for concern
- How can I tell that a directory is weird and should be excluded from the user interface?
- How can I tell that a directory is really a recycle bin?
- Well at least that’s one fewer program that relies on window handles being even numbers
- The purpose of charts is normally to make information easier, not harder, to understand
- I no longer have to remind the payroll department to gear up for annual raises
- The terms of service you have to accept before you can see them
- Who is responsible for destroying the font passed in the WM_SETFONT message?
- For a place that’s supposed to be full of doctors, they sure don’t look like doctors
- Suggestion Box 3, short answers (part 2 of who knows how many)
- And now, your moment of reflection
- What were ShellExecute hooks designed for?
- If you use an absurd signature, I might end up sending it back to you
- I’ll see (some of) you in Los Angeles, but this time it’ll be October
- QueryPerformanceCounter counts elapsed time, not CPU cycles
- Tales from the interview: Anticipating your own incompetence is not a good interview strategy
- Tales from the interview: Lunch is not a competition, episode 2
- Tales from the interview: Lunch is not a competition
- Tales from the interview: Can you rotate this two-dimensional array?
- It helps if you write a cover letter and remember the name of your interviewer
- How do I convert an error code to text when FORMAT_MESSAGE_FROM_SYSTEM doesn’t work?
August 2008
- What possible use are those extra bits in kernel handles? Part 3: New object types
- The stroke-count-based sort isn’t random, although it looks that way if you only see it in translation
- What possible use are those extra bits in kernel handles? Part 2: Overcoming limited expressiveness
- What does each country claim for its own?, greatest hits
- What possible use are those extra bits in kernel handles? Part 1: Sentinels
- DHS: The Television Series – the next chapter
- Microspeak: Pencils down
- Wedding + two-year-old flower girl = wildcard
- Why was the RAM drive removed from Windows 95?
- Keeping a visit a surprise after people have already guessed that you’re coming
- Destroying the module and resource information associated with an icon
- Oh no, there’s fog in San Francisco!
- Why does Explorer generate a page fault every two seconds?
- When somebody says a game is like chess, it is usually completely unlike chess
- Icons and cursors know where they came from
- It’s not Christmas: Nobody enjoys unwrapping your present
- As a courtesy to performers and other audience members, please turn off blinking head-mounted devices
- What happened to the Search option on the right hand side of the Start menu?
- The Seattle Danskin Women’s Triathlon 2008
- The implementation of iterators in C# and its consequences (part 4)
- The gradual erosion of the car trip experience
- The implementation of iterators in C# and its consequences (part 3)
- The implementation of iterators in C# and its consequences (part 2)
- The unwritten rule of riding a Seattle Metro bus
- The implementation of iterators in C# and its consequences (part 1)
- Psychic debugging: Why can’t StreamReader read apostrophes from a text file?
- Supplementary reading on the subject of anonymous functions and other CLR topics
- Raymond rewrites newspaper headlines
- If you return FALSE from DLL_PROCESS_ATTACH, will you get a DLL_PROCESS_DETACH?
- If the law says you can’t file a petition, you might need to file it anyway, in case somebody later says that you should’ve even though the law says you couldn’t
- For that, you’ll have to call security
- The caret serves as the continuation character for batch files
- What’s with this MSH_MOUSEWHEEL message?
- AOL is moving closer to jettisoning dial-up, except for one person
- Microspeak: The long pole
- Why, when you sort by name, doesn’t it actually sort by name?
- I warned you: The dangers of attaching input queues
July 2008
- Don’t be helpless: You can put things together, it doesn’t have to be a single command
- What does each country claim for its own?
- When I double-click an Excel spreadsheet, Excel opens but the document doesn’t
- The sign that a trend is over: It shows up in a movie
- Be careful what you name your mailing list
- How can SIGINT be safely delivered on the main thread?
- Why seventh grade students want to go to weddings
- Simulating a drop, part two
- Reading a contract from the other side: Simulating a drop
- Things other people have written that have amused me
- Theorize if you want, but if the problem is right there in front of you, why not go for the facts?
- The Microsoft Company Picnic has as a side effect a demonstration of Microsoft’s rich cultural diversity
- Windows could not properly load the XYZ keyboard layout
- A modest proposal: Getting people to stop buying SUVs
- MessageBoxIndirect loads the icon itself; you can’t hand it a pre-loaded icon
- Dr. Horrible’s Sing-Along Blog, available online for a short time only
- A new record for the shortest amount of time between an email message and its resend
- The best building name on the University of Washington campus
- Microspeak: Well, actually management-speak
- News flash: Online drug sales are shady!
- The evolution of menu templates: 32-bit extended menus
- The evolution of menu templates: 16-bit extended menus
- When companies make it hard for you to pay money they are owed
- Why does the “Install Font” dialog look so old-school?
- Crazy ideas at the lunch table: The ice cream bicycle
- The evolution of menu templates: 32-bit classic menus
- News flash: Car salesmen are sneaky and underhanded
- What’s the deal with that alternate form for menu item template separators?
- Warning: This cereal may contain traces of spiders
- The evolution of menu templates: 16-bit classic menus
- Wikipedia has created its own reactionary subculture
- The evolution of menu templates: Introduction
- Why is the LOADPARMS32 structure so messed up?
- Double the usual number of fire alarms today
- When anybody can look up your name in the company directory and pay a visit
- How did the invalid floating point operand exception get raised when I disabled it?
- Raymond misreads newspaper head… no wait, I didn’t!
- Uninitialized floating point variables can be deadly
- András Schiff 2006 lectures on the Beethoven piano sonatas
- Windows Vista changed the Alt+Tab order slightly
June 2008
- 2008 mid-year link clearance
- You don't need that 90 byte whereis program any more
- GUIDs are globally unique, but substrings of GUIDs aren’t
- The mystery of the garbage lady
- The disappointment of people who need to have their hand held from beginning to end
- The difference between a junior and senior position at a video card company
- Don't require your users to have a degree in philosophy, episode 3
- Raymond misreads acronyms: MSPP-PVP
- Just because you're using a smart pointer class doesn't mean you can abdicate understanding what it does
- Donations to the Microsoft Archives: Pens, CDs, and paperweights
- Why is there a menu show delay, anyway?
- MSDN-speak: What does it mean when a parameter contains a value?
- Microspeak: Pricing uplift
- Blinding bank robbers with kindness
- How do the common controls convert between ANSI and Unicode?
- Sometimes it's easier just to let the native speaker win
- Don't be helpless: You can find information, too, if you try
- Email tip: Pronouns in the subject line are in the eye of the beholder
- If you say that you don't care about something, you shouldn't be upset that it contains garbage
- Simply attach a piano to the end of the trebuchet
- There are only twelve function keys, and who says there's somebody there to push them?
- Money: The new plagiarism
- Why are DLLs uninitialized in the "wrong" order?
- Million Dollar Password: At least it shares a name with the original
- Why does OpenProcess succeed even when I add three to the process ID?
- Portugal TechDays 2008: A report
- Isn't the Learning Annex for total losers?
- Why has my clipboard stopped working?
- Food products that are offenses against nature: Bisquick Shake 'n Pour
- Dlaczego Microsoft zatopił Polskę?
- Raymond misreads newspaper headlines, episode 3
- Why are accelerators for hidden controls still active?
May 2008
- Behind the Scenes at Mythbusters does not include experiments or explosions
- Why are some GDI functions named ExtXxx instead of XxxEx?
- The sad demise of whimsical teasing in Comic Chat
- India Calling: Call centers from the Indian point of view
- Reading a contract from the other side: SHSetInstanceExplorer and SHGetInstanceExplorer
- The cultural axes of punctuality and waiting in line
- You can't give away something that isn't yours
- Welcome to the International Bank of Raymond
- What does TranslateAccelerator do?
- Microspeak: On-board (verb)
- Food discovery: Vietnamese sandwiches, aka bánh mì
- Another interesting detail from the analysis of Windows Error Reporting data for Explorer
- König Drosselbart: Performed in clay, feathers, and other strange materials
- The Phantom Bug: Why doesn't MessageBox work from my WM_NCDESTROY handler?
- Bacalhau: The unofficial national dish of Portugal, and don't pass the salt
- Why is the function SHStripMneumonic misspelled?
- I assume it's cracking good, though I'm not the expert
- If users can shut down the machine, it's not a security hole if they can shut down the machine
- Selling your life for a quarter at a time
- Build a slide show out of search results
- The dead desktop computer: From good, bad, and ugly back to dead
- Why always "Windows XP" and "Windows Vista" and not just "XP" and "Vista"?
- The Big Red Switch really was big and red
- In Lisbon, walk/don't walk signs are mostly decorative
- How do I flash my window caption and taskbar button manually?
- Mother's Day is for all mothers, not just your own mother
- Data breakpoints are based on the linear address, not the physical address
- The economics of soccer penalty kicks
- Gentle reminder: On a dialog box, do not give OK and Cancel accelerators
- The new dietary restriction landscape
- Apparently I've been promoted by mistake all these years
- Email tip: If they didn't get your message, then they won't know that they didn't get it
- Psychic debugging: Why does ExitProcess(1) produce an exit code of zero?
- News flash: It's dangerous to drive a car if you are blind
- If you pass invalid parameters, then all bets are off
- Canoeing around the Washington Park Arboretum
- You didn't know you could add properties by atom, and it's a good thing you didn't know
- Why every advertising agency needs to have a review panel of twelve-year-old boys
- Strange uses for window class atoms
April 2008
- Book me the next flight to Tokyo, no wait, the second flight
- Some other places atoms (and the magical 0xC000) arise
- Racking up the frequent shopper points at the register office
- Why do atoms start at 0xC000?
- In search of: Rossio Train Station
- Why does clearing document history also clear Run history?
- News flash: Universities are more likely to admit students whose parents gave lots of money
- On the relationship between specific cases and general cases
- Take Our Daughters and Sons to Work today, unless you work at main Microsoft campus, in which case, wait until summer
- User interface code + multi-threaded apartment = death
- News flash: Alumni give to colleges and universities to get their kids admitted
- The double-click time tells the window manager how good your reflexes are
- The concrete pedestrian bridge in the Washington Park Arboretum claims another victim
- The contradictory dialog: Click Finish to begin
- Fell the force
- Windows doesn't close windows when a user logs off; that's your call
- Special advance screening of five seconds of True Lies
- Proto-Microspeak: Center of value
- Baby Names for Dummies
- One-line batch script to delete empty directories
- Raymond misreads newspaper headlines, episode 2
- Raymond’s reading list: The Mythical Man-Month, The Design of Everyday Things, and Systemantics
- I know you can't provide tax advice, but I'm just looking for tax advice
- Email tip: Nostalgia is not a question
- Follow-up: That shopautodotca seocontest online contest
- Why doesn't Explorer let you create a file whose name begins with a dot?
- We can't cut that; it's our last feature
- The dead desktop computer: The good, the bad, and the ugly, but not in that order
- Who defined my name first? Turnabout is fair play
- Use the #error directive to check whether the compiler even sees you
- Over 1500 times the net worth of Bill Gates yet nobody has heard of him
- I always get scared when I see people trying to organize the Internet into hierarchies
- How to tell which end of the Metro platform to stand on, and other survival tips for the Lisbon subway system
- What happened to winipcfg and netmon?
- STATUS_BUFFER_OVERFLOW really should be named STATUS_BUFFER_OVERFLOW_PREVENTED
- 21: like 24 but three hours shorter
- When a treehouse just isn't good enough
- How do I force the ECHO command to echo?
- Lisbon: The city whose public transportation system operates in three dimensions
- Maybe that's how you do it, but around here, we have a different convention for indicating which things are broken
- Pranksters breathe a sigh of relief: There will never be a Building 7
March 2008
- 2008 Q1 link clearance: Microsoft blogger edition
- You can drag multiple virtual objects, you know
- The most academically elite team in college basketball, in quest for their first conference win in 21 years
- Microspeak: Newplacement
- Meet Deltalina, the star of Delta's new in-flight safety video
- Why do structures get tag names even if there is a typedef?
- We hope you enjoyed this bus tour of Charles de Gaulle International Airport
- Why are structure names different from their typedef names?
- Happy Waffle Day! And other holidays named after food
- What's the difference between int and INT, long and LONG, etc?
- Buses and trams going to this place called Reservado
- What’s the difference between the COM and EXE extensions?
- How to write like Raymond: What I tell you three times is true
- Raymond's highly scientific predictions for the 2008 NCAA men's basketball tournament
- What a drag: Dragging a virtual file (IStorage edition)
- What a drag: Dragging a virtual file (IStream edition)
- What a drag: Dragging a virtual file (HGLOBAL edition)
- I try not to rely on the kindness of strangers, but it's a pleasant surprise when strangers come through
- Why can't you rename the Recycle Bin?
- If you grant somebody SeDebugPrivilege, you gave away the farm
- What a drag: Dragging a Uniform Resource Locator (URL) and text
- What a drag: Dragging a Uniform Resource Locator (URL)
- Exercise doesn't have any effect unless you know you're doing it
- What a drag: Dragging text
- Why isn't there a GetDlgItemFloat function?
- The art of losing things: Keep moving them around
- Why can't I convert a time zone abbreviation into a time zone?
- How do I log on using a dial-up connection on Windows Vista?
- Not my finest hour: Using the wrong mouse
- I hadn't realized it's an entire genre: Music made from Windows system sounds
- Email tip: A peer-to-peer discussion group does not come with a service level agreement
- What do rocket scientists say when they want to say that something isn’t hard?
- Why does scheduling a task require a password?
February 2008
- The 2008/2009 Seattle Symphony subscription season at a glance
- Why can't I get FormatMessage to load my resource string?
- Coca-Cola for breakfast: It's not just for computer geeks any more
- Why are process and thread IDs multiples of four?
- Making a reservation at the Asteroid and interrupting a cookie-bake
- If you ask for STANDARD_RIGHTS_REQUIRED, you may as well ask for the moon
- TechDays 2008 learns the sneaky way of getting me to show up at your conference
- Losing the game of Last Checkin Chicken two products in a row
- The United Kingdom of Great Britain, Northern Ireland, and France?
- When somebody gives you a gift of code, it's more often than not a burden in disguise
- Microspeak: Assorted babble
- Nobody actually talks the way they do in training videos, do they?
- Wait a second, I thought we stopped doing this back in 2003
- There can be more than one (or zero): Converting a process to a window
- If you used your credit card abroad between 1996 and 2006, you may be eligible for a class action lawsuit settlement
- When you ask somebody to take a look, you need to tell them what you want them to find
- What's with all those spam ping-bots?
- Why does Explorer show a + sign even if there are no child folders?
- Joshua Roman groupies may have to set up their frequent flyer accounts
- There's more to switching stacks than just loading a new stack pointer
- Bands of Valentine minstrels roaming campus
- Follow-up: Politically motivated armed robber being sent back to the U.S.
- Controlling which devices will wake the computer out of sleep
- Thank you, people sitting behind me, for explaining what the conductor is doing
- If you ask whether I'll be at a conference, the answer is usually No
- Why does Ctrl+ScrollLock cancel dialogs?
- Why couldn't you have more than one instance of a 16-bit multi-DS program?
- Grass jelly may be an Asian drink, but it's not crazy
- What did MakeProcInstance do?
- Otaku cosplay culture makes another inroad into North America
- When there's a problem with the platform, you blame the platform, whether it's the platform's fault or not
- Why did the display become a snapshot of the last time the monitor was plugged into the computer?
- Who decides what can be done with an object or a control?
- The dead home desktop returns from the dead
- DLL forwarding is not the same as delay-loading
- Pass the whipped partially hydrogenated soybean and coconut oils, please
- Strange bug assignment: Programs are using too much memory
January 2008
- The dead home desktop problem returns
- Shell policy is not the same as security
- Even without a nitpicker's corner, I have to worry about nitpickers
- Microspeak: Housing
- The history of the Windows XP common controls
- Crackpots in computer security: Don't plug it in, man!
- PLAY! A Video Game Symphony comes to Seattle
- What counts as a talent nowadays?
- The classic start menu is even more classic than it looks
- It's one thing to say "somebody should do this", but doing it is another matter
- Email tip: Don't use a rude subject line just to make your message easier to spot
- The Windows 95 volume control almost went to eleven
- If they had felt a little more mischievous when they titled the article Excerpts from Fischer-Spassky games
- When computer programmers dabble in economics: Paying parking tickets
- Can't sing? Can't dance? Can't act? Try the opera.
- Why do registry keys have a default value?
- How did registry keys work in 16-bit Windows?
- Jerry Springer: The Opera crosses the pond to visit Carnegie Hall
- Use WM_WINDOWPOSCHANGING to intercept window state changes
- Use WM_WINDOWPOSCHANGED to react to window state changes
- No matter where you put an advanced setting, somebody will tell you that you are an idiot
- In order to serve you better: Chase resets your marketing preferences
- Windows is not an MFC delivery channel
- How does the calculator percent key work?
- The impact of hardworking employees on their less diligent colleagues
- Jag är inte heller en Microsoft-talesman på svenska
- Generating initials from a name is trickier than you think
- Taxes: Files larger than 4GB
- Bait and switch literally applied to fish
- Clean-up functions can't fail because, well, how do you clean up from a failed clean-up?
- What does it mean when a display change is temporary?
- In steady state, only geeks install Windows, but the hard part is getting to that steady state
- A new DUI record set in the state of Washington
- You know the answer: Window destruction
- Fact of life: People can't see things that are right in front of them
2007 459
December 2007
- 2007 year-end link clearance
- Why aren't console windows themed on Windows XP?
- Now I can read my own writing the way you do: With utter incomprehension
- Psychic debugging: The first step in diagnosing a deadlock is a simple matter of following the money
- If you need anything other than natural alignment, you have to ask for it
- Paul Shirley: Basketball player, blogger, and author
- Microthink: If you can't measure it, then it doesn't exist
- You mean, you have computers in Taiwan?
- Where do those Wall Street Journal hedcuts come from?
- What was the role of MS-DOS in Windows 95?
- Management-speak: Norming around mechanisms
- 'Tis the season for top ten lists, and manipulation of top ten lists
- Consequences of the scheduling algorithm: Low priority threads can take 100% CPU
- How do I mark a shortcut file as requiring elevation?
- Book review: Advanced Windows Debugging (Mario Hewardt and Daniel Pravat)
- Not every first-chance exception is a security vulnerability
- Wall Street bonus season's trickle-down
- How did wildcards work in MS-DOS?
- Unwittingly enveloped in the Santarchy
- The compatibility constraints of your side effects: Beeping
- Throwing a cup of hot water into the air in sub-zero temperatures
- AppInit_DLLs should be renamed Deadlock_Or_Crash_Randomly_DLLs
- Christmas lights in the Dyker Heights neighborhood
- When selecting system colors, match but don't mix
- Exploiting the inattentive, episode 3: Confusing movie titles
- Why is my starting directory ignored when I elevate a command prompt?
- What seems obvious today may have been impractical then
- It's amazing you who end up meeting in New York City
- The magical healing properties of safe mode – bonus content
- The Old New Thing (the book) allegedly now stocked at the Microsoft Company Store (Redmond)
- Am I for real or just a robot? part 2
- Your $25 car emergency survival kit
- Welcome to the Microsoft email culture
- Would a team of midgets be the greatest offense in baseball history?
- How long does it take to create a 16TB file?
- How do 16-bit programs start up?
November 2007
- Hotkeys involving the Windows logo key are reserved by the system
- The first day at Microsoft: Don't just stand there
- The importance of the FORMAT_MESSAGE_IGNORE_INSERTS flag
- What to do when the steering column is stuck and the ignition won't turn
- When you compress a drive, some files are exempted, but you can force it, and then it's your problem
- Why are INI files deprecated in favor of the registry?
- Sounds about right: What a geek does with an iPhone in the first two days
- The forgotten common controls: The GetEffectiveClientRect function
- When in doubt, consult the online Magic 8 Ball
- Alternate theories on how Putin can retain power after his second term expires
- Hidden gotcha: The command processor's AutoRun setting
- Dreyer's Berry Rainbow Sherbet
- You even have to watch out for your placeholder bitmaps
- Darkon: A Larping Documentary
- If you want a menu that shows the contents of the My Computer folder, you already know how to do it
- Who would win in a fight between a penguin and a lemur?
- In Windows XP, even when DEP is on, it's still sometimes off
- I'm going to keep trying on size fours until I find one that fits
- Is DEP on or off on Windows XP Service Pack 2?
- Psychic debugging: IP on heap
- Amusing bug reports: On poetry and prose
- I don't know what the Lotus internal clipboard formats are either
- You just have to accept that the file system can change
- Proto-Microspeak: Pre-envisioning
- VirtualLock only locks your memory into the working set
- Why do we even have the DefWindowProc function?
- Staying on top of things with timely updates in separator pages
- Buy an island, or a country, or at least a replica of one
- Why does GetDiskFreeSpaceEx return the wrong amount of free space?
October 2007
- The Acorn Wand, key to a magical puzzle hunt
- It rather involved being on the other side of this airtight hatchway: Local execution
- Email tips from Adam Phillabaum
- You can't change it, but you can hide it and add something that looks like it
- Why doesn't Explorer show recursive directory size as an optional column?
- The King County Council race gets even stranger
- If you pass enough random numbers, eventually one of them will look valid
- What's the deal with the EM_SETHILITE message?
- What's the difference between LVM_HITTEST and LVM_INSERTMARKHITTEST?
- Superstition: Why is GetFileAttributes the way old-timers test file existence?
- The best way to process Unicode input is to make somebody else do it
- Other problems traced to violating COM single-threaded apartment rules in the shell
- Win32 user interface work is inherently single-threaded
- The wrong way to check whether the mouse buttons have been swapped
- How do I delay the automatic logon process?
- Nicolas Bourbaki, perhaps the biggest inside joke in mathematics
- Why aren't shortcuts as easy as unix links?
- Not the best way to start out a form letter
- No good deed goes unpunished: Free code samples
- Unlikely excuses: A faulty microchip
- Whose idea was it to make Ctrl+Backspace delete the previous word?
- Microspeak: Actionable
- The three tiers of a mixing room of a movie studio
- Why does ICE16 complain about product names longer than 63 characters?
- Which windows appear in the Alt+Tab list?
- The dangers of taking a service droid off script
- The early days of the Microsoft cafeterias
- The perils of translating words blindly without verifying them in context
- Another celebrity knitter: Tracey Ullman
- The most important choice in writing is not what you say, it’s what you don’t say
- Where did WiX get its name?
- Don't assume the first person to run your program is an administrator
- Suggestion Box 3, short answers (part 1 of who knows how many)
September 2007
- 2007 Q3 link clearance: Microsoft blogger edition
- 2007 Museum Day, courtesy of Smithsonian Magazine
- Why did the shortcut template change in Windows Vista?
- The first day at Microsoft: A fender-bender
- Microspeak: Going forward
- How do I put a different wallpaper on each monitor?
- The Microsoft Cafeteria Tour (Redmond 2006 Edition)
- What's the BS_PUSHLIKE button style for?
- Find the Flowers vs Minesweeper
- It rather involved being on the other side of this airtight hatchway: Elevation to administrator
- Playing the hippie poetry game for four cents per line
- What happens if you pass a source length greater than the actual string length?
- Japanese street fashion reaches Finland
- Why is my delay-rendered format being rendered too soon?
- Nearly everybody has a $500 flashlight
- What do I do with per-user data when I uninstall?
- Another type of misplaced apology: Apologizing for not knowing the penalty
- The code page on the server is not necessarily the code page on the client
- Snatching defeat from the jaws of victory now more popular than vice versa
- Why isn't QuickEdit on by default in console windows?
- Astrologers struggling with reclassification of Pluto
- Making some statements and asking for advice isn't a question
- The wisdom of seventh graders: A Wrinkle in Time
- What's the difference between EM_UNDO and WM_UNDO?
- The Minimalist Jukebox Festival
- If control-specific messages belong to the WM_USER range, why are messages like BM_SETCHECK in the system message range?
- Wayback machine: The Fake Job
- Sometimes it feels like the effort isn't even appreciated
- It's that season again: The 2007 Microsoft Company Meeting
- If your theory is "build it and they will come", you have to make sure there is a "they"
- I mean, come on, these are laptops
- Whenever there is a coordination problem, somebody says, "Hey, let's create a process!"
- Volunteers help save fruit from home fruit trees from going to waste
- Does creating a thread from DllMain deadlock or doesn't it?
- Belated follow-up: Mike Goodspaceguy Nelson running for public office, again
- Knock knock. Who's there? Not you any more.
August 2007
- The Great Muffin Heist of '07
- The Internet Explorer pop-up blocker follows guidelines, not rules
- Somebody actually took the time to translate my book into Japanese, it appears
- Microspeak: FMLA
- Follow-up: Mysterious Dietrich identified from that bizarre Ferarri crash
- Kernel handles are not reference-counted
- Airport travel tip: LAX Terminal 6 (United)
- With a new Start menu come new keyboard shortcuts
- Is this the normal way of comparing toilets?
- Yes indeed, all Microsoft files are (or should be) digitally signed
- What happens at LL Bean at three in the morning?
- Microspeak: Value proposition
- Which Windows font is named after a tabloid headline?
- Nested fly-out menus are a usability nightmare
- Disclaimers and such
- The Northwest Mahler Orchestra presents Messiaen’s Turangalîla Symphony
- Windows Vista has more extended options on the context menu
- At last you can turn off the USB 2.0 balloon
- We're all in this together: Maintaining common tools
- When you copy a folder, why are the contents merged with the existing contents?
- Just because you're a control doesn't mean that you're necessarily inside a dialog box
- Do you have a Starbucks name?
- What are these spurious nop instructions doing in my C# code?
- The Radioactive Boy Scout is back in the news
- What are these strange cmp [ecx], ecx instructions doing in my C# code?
- For $15, you can purchase incorrect information, and to prevent people from getting it, you have to renew every three months
- C# static constructors are called on demand, not at startup
- SIFF 2007 wrap-up: Grandhotel, The Boss of It All, Vacation
- What is the order of evaluation in C#?
- Math is hard, let's go shopp—oops
- Why is the blog's subtitle "Not actually a .NET blog"?
- Things I've written that have amused other people, Episode 4
- Martina Navratilova's final Wimbledon appearance, and this time she means it
- How do I get the handle of the primary monitor?
- Bowling coming to Bellevue, and given the location, it's naturally upscale
- Email tip: I don't have my bug numbers memorized
- One would be hard pressed to find a group of characters more in need of a lawyer
- It rather involved being on the other side of this airtight hatchway: Executable corruption
- The truth about 4/29 the government doesn't want you to know
- Freudian typo: Enchanced metafiles
- Probably the most expensive Harry Potter viewing I'll ever attend
- It was not one of Explorer's design goals to provide a Turing-complete interface for bulk file renaming
- But now I'll never know which politician that alien backs for the next election
- What is the difference between the Folder and Directory (and other special) progids?
- Note to locals: Lincoln Center is in New York City, not Bellevue
- Footnotes in Win32 history: VLM (Very Large Memory) support
July 2007
- I just discovered that the Scandinavian Gift Shop in Ballard is closing
- What is the lpdwHandle parameter in GetFileVersionInfoSize used for?
- Stuart Stevens takes performance-enhancing drugs in order to see what they do
- There's a whole Internet out there, folks, you might want to check it out
- Seattle to Portland (STP) 2007 trip report, part 4 of 4: St. Helens to Portland and beyond
- Don't just grab the foreground window and host UI on it
- How do the names in the file security dialog map to access control masks?
- Seattle to Portland (STP) 2007 trip report, part 3 of 4: Toledo to St. Helens
- Seattle to Portland (STP) 2007 trip report, part 2 of 4: Spanaway to Toledo
- What is Dave's frame class?
- Seattle to Portland (STP) 2007 trip report, part 1 of 4: Seattle to Spanaway
- Just because you say something in my presence and I don't raise an objection doesn't mean that I agree
- Tips for doing the Seattle to Portland (STP) in two days: What I learned in 2007
- The real cost of compatibility is not in the hacks; the hacks are small potatoes
- Apparently some people consider this a vacation; I consider it insane
- Screwing the computer parts back together is the most dangerous step
- Food products that are offenses against nature: Fast Franks
- You don’t optimize for the case where somebody is mis-using your system
- If you read any book about traditional weddings in Russian history, there must be a fight
- Why is the limit of window handles per process 10,000?
- Not my finest hour: Driving a manual transmission
- How are window manager handles determined in Windows NT?
- Creative armed robbery defense: Political asylum
- How are window manager handles determined in 16-bit Windows and Windows 95?
- The dangers of conversation fragments: Overheard on the Burke-Gilman trail
- I was sort of interested at first, but now I'm not so sure any more
- Seattle street signs for sale, used, but for ten bucks you can't complain
- If you want a modeless dialog, then create a modeless dialog already
- Those who do not understand history are doomed to repeat it… on YouTube
- How to check for errors from SetFilePointer
- That leaves more hot German babes for me!
- The forgotten common controls: The ShowHideMenuCtl function
- A modest proposal: Solving the problem of traffic in Seattle caused by sporting events
- It's not enough to say that something is bad; you have to say what would be better
- Redmond Derby Days 2007 this weekend
- It rather involved being on the other side of this airtight hatchway: If they can run code, then they can run code
- Raymond's tips on selecting a memorable greeting card
- QueryPerformanceCounter is not a source for unique identifiers
- Holidays for fireworks (and generally blowing up stuff) from around the world
- The audacity of selling things that don't belong to you
- If the system says that an embedded string could not be converted from Unicode to ANSI, maybe it's trying to tell you something
- The conversations backstage at computer Go tournaments
- Image File Execution Options just inserts the debugger in front of the command line
June 2007
- 2007 mid-year link clearance
- Don't forget to pass the current directory along with the command line to your single-instance program
- If it's optional, then don't make it mandatory
- Overheard conversation in the cockpit that you might not want to have heard
- Those who do not understand the dialog manager are doomed to reimplement it, badly
- What's all this stuff hanging from that utility pole?
- Why do DLGC_WANTALLKEYS and DLGC_WANTMESSAGE have the same value?
- Why the Fantastic 4 Human Torch ATV is the Worst Movie Tie-In Toy Ever
- There's no point improving the implementation of a bad idea
- Einstein the geographer? A hoax.
- Even advanced users liked the Windows XP Start menu
- What is the international sign for "you left something on the roof of your car"?
- How does the Windows XP Start menu decide that a program is newly-installed?
- In order to serve you better: Frequent flyer miles expiring sooner
- More Start menu fine-tuning: Choosing a better representative for a frequently-run program
- I'm pretty sure he's going to be the envy of his next school reunion
- What is the impact on the Start menu of long-running programs?
- Project Update 3: Voyage to Our Hollow Earth
- Why does a new user get stuff on their Start menu right off the bat?
- "Super" watch, episode 2
- What other programs are filtered from the Start menu's list of frequently-used programs?
- The Thing? Mystery of the desert
- If you pin a program, it doesn't show up in the frequently-used programs list
- SIFF reviews: Falling, 2 Days in Paris, Hula Girls
- The program doesn't have to be run from the Start menu to earn Start menu points
- I never thought of it before, but drumming is a metaphor for life!
- Points are earned by programs, not by shortcuts
- The New York City Profit Calculator
- What determines which programs show up on the front page of the Windows XP Start menu?
- shopautodotca seocontest online contest tacitly encourages comment spam
- Why does canonical order for ACEs put deny ACEs ahead of allow ACEs?
- The meaning of a red traffic light is open to interpretation
- How do I inflate a bicycle tire with a potato?
- How not to prepare for the STP (2007 edition)
- Email tip: Lay off the massive email signatures
- It's official: The logo for the London 2012 Olympic Games is hideously ugly
- Compatibility constraints of the water cooler
- Death at a Funeral, Cashback, and Tell No One
- Choosing a provocative debug signature
- I took the Monorail to the Shadow of the Moon
- Inserting as many layers between the message and reality as possible
May 2007
- You'd think questions about underwear were understood to be off-limits
- Visual C++ 2005 will generate manifests for you
- The three things you need to know about tsunamis
- The sad predicament of the unempowered manager
- Let's talk like people
- Psychic debugging: Why does FormatMessage say the resource couldn't be found?
- Cool, they're using Roman numerals!
- Raymond's SIFF schedule (2007)
- The parameters to PostQueuedCompletionStatus are not interpreted
- Being nominated for the Nobel Prize isn't as big a deal as it sounds
- We should just get rid of that stupid middle tier
- Das Leben der Anderen
- Microspeak: The forcing function
- Suggestion Box 3
- Another chapter in Swedish political hypocrisy (2007 edition)
- You're not my manager, so I'm not going to ask how high when you tell me to jump
- The unidentified award
- Don't be helpless: I don't know anything about MFC modal loops, but unlike some people, I'm not afraid to find out
- Don't drive your pick-up onto the roof of a house, especially if, well, read on
- Getting in on the action while it's still there
- Store Wars and the Meatrix
- We're all in this together: No good deed goes unpunished, redux
- Why are console windows limited to Lucida Console and raster fonts?
- Please refer to the instructions that don't exist
- Get Sea-Tac flight information (including gate and baggage claim) via email
- Command lines need to be quoted; paths don't
- Service required * Brewer error *
- Evergreen Philharmonic Baroque Festival 2007
- Performing an operation in each subdirectory of a directory tree from batch
- Email tip: Don't ask the same question multiple times in different groups
- Revelations of My Friends: An ancestor of today's Mad Libs
- Don't be helpless: At least look at the function you're using
- Session 0 isolation: Where backward compatibility loses to security
- The administrator is an idiot
- Metromint: What were they thinking?
- Drag and drop is a general purpose transfer model, not exclusive to Explorer directories
- But they're not (puts on sunglasses) going to get away with murder
- How my lack of understanding of how processes exit on Windows XP forced a security patch to be recalled
- Unexpected consequences of self-checkout
- Quick overview of how processes exit on Windows XP
- Male perceptions of body image in Taiwan
- The old-fashioned theory on how processes exit
- Two web sites that read the fine print
- Microspeak: Operationalize
April 2007
- Everyone should have a house pianist
- The default verb is not necessarily "open"
- News Flash: Not being able to watch Jay Leno is not an emergency
- Stupid debugger tricks: Calling functions and methods
- The intermediate value theory helps your table but not necessarily your beer
- Using the "gu" debugger command to find the infinite loop
- There's something about Christopher Walken
- Identifying an object whose underlying DLL has been unloaded
- How much time does it take for a pedestrian to cross the street?
- What is the underlying object behind a COM interface pointer?
- Given a choice between two options, you influence the result by adding a third, inferior, alternative
- Psychic debugging: When reading unfamiliar code, assume it's mostly correct
- The wisdom of seventh graders: Designing an elective course
- The format of bitmap resources
- Perhaps the movies made too literal a translation
- Trivia: Pea, marble, dime, nickel, quarter, half dollar, walnut…
- Psychic debugging: Why you can't control page navigation when using PSP_DLGINDIRECT
- No farting please, we're Americans
- The Notepad file encoding problem, redux
- See the Seattle Symphony on television in high definition
- Changes to power management in Windows Vista
- Email tip: People didn't answer your first email for a reason
- What is the default version of the shell common controls?
- Oh no, I have an obstructed view of Joshua Roman!
- What's the difference between WINVER, _WIN32_WINNT, _WIN32_WINDOWS, and _WIN32_IE?
- Enjoy our Bluetooth devices with a glass of beer or wine (Bluetooth device optional)
- What’s the row of numbers on the copyright page of books?
- What is the default version of a header file?
- Why doesn't the taskbar return to its original size when I return my settings to their original values?
- When very young children try too hard to act nonchalant
- Code is read much more often than it is written, so plan accordingly
- On the enduring appeal of Walker, Texas Ranger
- Why can't I display a tooltip for a disabled window?
- Your chance to meet Raymond if you are near Palo Alto on the 23rd
- His lips are moving: In order to serve you better
- Why does my thread pool use only one thread?
- Groundwork being laid for Vladimir Putin to run for his fourth term (out of a maximum of two)
- Why do operating system files still adhere to the old 8.3 naming convention?
March 2007
- What do the colors in the elevation dialog mean?
- On the effect of dandruff on climate
- How to talk like Marketing: The awareness space
- The buffer size parameter to GetFileVersionInfo is the size of your buffer, no really
- The social skills of a thermonuclear device, part 4
- Why are there both TBSTYLE_EX_VERTICAL and CCS_VERT?
- Microspeak: Calibration
- The publicity machine continues: A chat with Scott Hanselman and Hanselminutes
- Passing by address versus passing by reference, a puzzle
- The wisdom of seventh graders and you: Design a course
- Excursions in composition: Adding rewind support to a sequential stream
- Excursions in composition: Sequential stream concatenation
- You don't know what you do until you know what you don't do
- The early stages of Joshua Roman groupie-dom
- I bet somebody is looking to get a really nice bonus for that feature: Uninstall
- How do the menu functions find items?
- Verizon backs down on made-up fees and then adds them anyway
- The format of accelerator table resources
- Email tip: Don't forget to ask your question
- News flash: Snacks at the theater concession stand are not good for you
- Don't require your users to have a degree in philosophy, episode 2
- Out there gathering map data, one intersection at a time
- The only thing you can do with display names is display them
- What is a SM_SLOWMACHINE?
- Raymond's highly scientific predictions for the 2007 NCAA men's basketball tournament
- This American Life: What I Learned From Television, Seattle edition
- Don't be so fast to discount those oddball time zones
- Just what the world has been wishing for: Surströmming ice cream
- The GETDISPINFO notifications tell you what information they want
- The wisdom of seventh graders: John Locke and influential persons
- Microspeak: Sit in it!
- What was the first parameter to CoInitialize used for?
- Things I've written that have amused other people, Episode 3
- It's official, it's the Hannukah Eve Storm of 2006
- Hiding files is not the same as protecting them
- Public service announcement for Seattle area taxpayers: Some transit taxes can be itemized and deducted
- The .Default user is not the default user
- West Bank Story, the movie that sells itself in five seconds
- If you have to ask, you're probably doing something wrong
February 2007
- More Vista wallpapers from Hamad Darwish
- Another retired computer: The Alpha Rawhide
- How hard could it be? Must provide own garage.
- What does an NMI error mean? (The infamous "Hardware Malfunction")
- The politician's fallacy and the politician's apology
- Please feel free to stop using DDE
- I wouldn't be surprised if O. J. Simpson wrote a new book
- The 2007/2008 Seattle Symphony subscription season at a glance
- Final remarks on LockWindowUpdate
- How to get your laptop to resume from standby in under two seconds
- With what operations is LockWindowUpdate not meant to be used?
- Mandarin Chinese gaining popularity in public schools
- With what operations is LockWindowUpdate meant to be used?
- Crush Finder experiment gets off the ground at Princeton
- How is LockWindowUpdate meant to be used?
- What does LockWindowUpdate do?
- News flash: Professional athletes do it for the money
- Why don't I use any class libraries in my sample code?
- There's not much luggage space, unless you dump the snow
- Why can't you set the command prompt's current directory to a UNC?
- Technology hypochondriacs
- Email tip: Barry Leiba expounds on subject lines
- Email tip: Don't add people to a thread without saying why
- Performance evaluation euphemisms invading everyday speech (ironically)
- Why doesn't the window manager unregister window classes when the owning DLL unloads?
- Long Zheng interviews Hamad Darwish about those Windows Vista wallpapers
- Do I need rush processing? Beats me!
- Who is most likely to be awarded a MacArthur Fellowship?
- Why does my property sheet blink and the immediately disappear?
- Maintaining standards of Japanese food abroad
- Why can't I create my dialog box? Rookie mistake #2
- Why can't I create my dialog box? Rookie mistake #1
- Bonus material for The Old New Thing (the book) is now available for download
- Public service announcement for United States taxpayers: In tax year 2006, you can claim a $30 refund if you owned a telephone
- Why did Explorer say "The target you specified is on the desktop"?
- The publicity machine doesn't stop: TechNet podcast interview
- Super Bowl Sunday: The day the entire country stops doing anything
- The ironic thing about fixing a bug
- The network interoperability compatibility problem, second follow-up
January 2007
- If you ask an author to sign a book, you have to tell him/her what to write
- Crackpots in computer security: A complete solution to computer security
- Unusual uses for a ball-point pen: Breaking into the debugger
- If vertical strips are better, why do toolbars use horizontal strips?
- The real underground (and subway)
- The /MAXMEM switch doesn't set the maximum amount of memory Windows will use
- Not my finest hour: Where are my keys?
- Where did the Windows Vista wallpaper images come from?
- Walking through packed snow and ice with a little more confidence
- The undeletable Outlook folder, episode 2
- Unexpected consequences of writing a book: Public appearances
- Non-psychic debugging: If you can't find something, make sure you're looking in the right place
- The cost of continuously-visible affordances with dynamic states
- 2006 storm aftermath: A look back
- What does the fCreate parameter to SHCreateStreamOnFileEx mean?
- Email tip: Choose a subject line that is meaningful to the recipient, not to the sender
- Iced-over roads + people who can't drive = very expensive (and dangerous) game of billiards
- Should all windows appear in the taskbar?
- One Armstrong = 13.5 mph
- EnumChildWindows already enumerates recursively
- The wisdom of sev^H^H^Heighth graders: It was not just white people who were helped by Martin Luther King
- Does Microsoft internally use MFC for writing Windows apps?
- How do I print the contents of a rich text control?
- The history of the RichEdit control from Murray Sargent
- How do I put more than 32,000 characters into a rich text control?
- Ken Levine teaches us about television script writing
- How do I load an entire file into a rich text control?
- Article of clothing or tasty dessert?
- What triggers the recall of an offline file?
- Why do property sheets sometimes take a first-chance exception?
- What('s) a character!
- How a bullet turns into a beep
- Wait, but why can I GetProcAddress for IsDialogMessage?
- Why can't I GetProcAddress for CreateWindow?
- The family technical support department: Everything is Outlook
2006 430
December 2006
- 2006 end-of-year link clearance
- Stop the madness: Subdirectories of My Documents
- Linda Hunt's advice for Oscar-winners
- The social skills of a thermonuclear device, part 3
- I can't believe they actually can't think of a name for the recent storm
- The first parameter to VerQueryValue really must be a buffer you obtained from GetFileVersionInfo
- The Old New Thing book will also be available electronically
- The evolution of version resources – corrupted 32-bit version resources
- The unanswered Explainer questions
- The evolution of version resources – 32-bit version resources
- The evolution of version resources – 16-bit version resources
- Pacific Northwest storm recovery continues
- I bet somebody is looking to get a really nice bonus for that feature: Attention
- Some call it context, others call it reference data, but whatever it is, it's yours
- Do not write in-process shell extensions in managed code
- Why do user interface actions tend to occur on the release, not on the press?
- Computing listview infotips in the background
- Maybe if it had characters and stuff and different levels, it would be OK
- Displaying infotips for folded and unfolded listview items
- Jeanne Martinet teaches you how to survive a party where you don't know anybody
- A high waiter count on a free critical section may indicate a lock convoy
- What does an invalid handle exception in LeaveCriticalSection mean?
- Throwing things into a blender and seeing what happens
- Do not overload the E_NOINTERFACE error
- Okay, I changed my mind, I wrote a book after all
- The wisdom of seventh graders: What to do with a time machine (part 3)
- If you let people read a file, then they can copy it
- The wisdom of seventh graders: What to do with a time machine (part 2)
- How do I find all files with at least one space in their name?
- The wisdom of seventh graders: What to do with a time machine (part 1)
- The name WinMain is just a convention
- Nailing down what constitutes valuable consideration
November 2006
- It took two of us to keep up with one Bob
- A fork is an easy-to-find nonstandard USB device
- What went wrong in Windows 95 if you use a system color brush as your background brush?
- It's not surprising at all that people search for Yahoo
- Sometimes you need to recalibrate your progress reports
- Placebo setting: QoS bandwidth reservation
- The quiet dream of placebo settings
- What is the process by which the cursor gets set?
- Paradoxically, you should remove the smart card when logging on with a smart card
- It takes only one program to foul an upgrade
- The window manager moves the mouse; applications choose the cursor
- Using DIB sections to perform bulk color mapping
- Manipulating the DIB color table for fun and profit
- Keeping classic hardware alive through emulation
- Blitting between color and monochrome DCs
- New dessert lounge: Coco la ti da
- What do bitwise operations mean for colors?
- Converting an HRESULT to a Win32 error code: Diagram and answer to exercise
- A modest proposal: Solving the problem of steroids in baseball
- Why can't you use the Tab key to select items from the auto-complete drop-down?
- How do I test that return value of ShellExecute against 32?
- Aspiring to the wrong office on election day
- There's going to be an awful lot more overclocking out there
- Tonya and Nancy: The Opera
- On the importance of backwards compatibility for large corporations
- How do I convert an HRESULT to a Win32 error code?
- Make sure you disable the correct window for modal UI
- I bet somebody got a really nice bonus for that feature
October 2006
- So that's what daddy does at work
- Separated at birth: The Windows XP SP2 launch team
- Руками не трогать!
- Why can't I get my program to use more than 50% of the CPU?
- The great Polish Sea -or- We forgot Poland!
- Now it looks like I speak far more languages than I actually do
- Let the dead computer scavenging commence!
- For a brief shining moment, DirectX was more popular than another word that ends in x
- Non-resolution of the dead home desktop problem
- Offline mode silently prevents you from streaming media content
- Invalidating the null window redux
- More tales of dead computers: My home desktop
- Quick and dirty Hallowe'en costume for physics geeks
- Psychic debugging: Why doesn't my program show up when I call ShellExecute?
- Wired Magazine's report on that bizarro Ferarri crash
- How do I shut down a workstation via Remote Desktop?
- No good deed goes unpunished, part 2
- Dead Sea Scrolls lectures available online (or in person if you can get there)
- Don't require your users to have a degree in philosophy
- Answering phones at KUOW for their Fall 2006 pledge drive
- What does the letter "T" in LPTSTR stand for?
- Raymond's excursions into East Asian pop music, episode 4: Yuki
- 640 x 480 is still not dead
- Why do I see the same fake names in Microsoft samples over and over?
- Shifting fortunes at Airbus over the A380
- How do I prevent multi-line edit controls from eating the Enter key?
- Proto-Microspeak: The goat rodeo
- When something is available for the user, which user are we talking about?
- How Raymond learns languages (and why it's not working)
- A very brief return to part 6 of Loading the Chinese/English dictionary
- Why does Windows hide keyboard accelerators and focus rectangles by default?
- You can invent new adjectives too
- If only he'd known to offer to back up their PC instead
- There's a reason why envelopes have backs
- Any similarity to actual German or Swedish words is purely coincidental
- Does a dual-core processor count as one or two for licensing purposes?
September 2006
- Eating Belgian food at Brouwer's Cafe in Fremont
- Quotation marks around spaces aren't necessary in the PATH environment variable
- When you crash, make sure you crash in the right place
- Saturday is Museum Day, courtesy of Smithsonian Magazine
- IsBadXxxPtr should really be called CrashProgramRandomly
- News flash: The heart produces urine
- Isn't DDE all asynchronous anyway?
- Filming for The Battle in Seattle has begun
- Waiting until the dialog box is displayed before doing something
- Hand gestures for numbers
- Things you already know: How do I wait until my dialog box is displayed before doing something?
- It’s that season again: The Microsoft Company Meeting
- If you don't trust your administrators, you've already lost
- It is as if our leaders have not been educated in orbital space colonization
- Don’t forget to unregister your window classes when your DLL shuts down dynamically
- The tale of the radioactive Boy Scout
- Why doesn't the Shutdown dialog use Alt to get alternate behavior?
- Project Update 2: Voyage to Our Hollow Earth
- Sometimes my psychic powers are weak
- Disaster averted, thanks to international time zones
- Allocating and freeing memory across module boundaries
- The lost follow-ups: Products and people that appear to have vanished without a trace
- The danger of using boldface for Chinese characters
- Raymond's excursions into East Asian pop music, episode 3: Morning Musume (モーニング娘)
- Philosophical discussion on when to mark a method as virtual
- Grammar review: Verb+particle versus compound noun
- If you ask a Yes/No question, make sure the user also knows what happens when they say No
- Turns out you can't learn Mandarin Chinese by watching television
- Const pointers: Logical consequences
- What you don't apologize for is as important as what you do
- You have to free memory with the same allocator that allocated it: Logical consequences
- In case of fire, go to lunch
- You already know what your target architecture is (or at least you should)
- Just change that 15 to a 1
- I think I've just broken the internet
- You're white. Do you want to be in my friend's soap opera?
- On the unanswerability of the maximum number of user interface objects a program can create
August 2006
- The wisdom of seventh graders: Contributions to class discussion
- The dialog class goes under the sneaky name WC_DIALOG
- How do you wash soap?
- If you work at a company, it's not your computer any more
- As I recall, Germany did not ratify the United States Constitution
- How did "Start Me Up" become the theme for the Windows 95 launch?
- Try to avoid having BOOL function parameters
- We know it's insecure, but we want to do it anyway
- Moving a file does not recalculate inherited permissions
- Those folks from Birmingham talk funny, and I mean that in a scientific way
- Environment variable expansion occurs when the command is read
- Raymond's excursions into East Asian pop music, episode 2: China Dolls (中國娃娃)
- Who says there's only one? There can be more than one logon session
- [6] days since last monorail breakdown
- Sucking the exception pointers out of a stack trace
- We encourage everyone to pack gel-filled bras in their checked baggage
- Applications and DLLs don't have privileges; users do
- A modest proposal: On allowing mobile phones on airplanes
- Don't trust the return address, no really
- Computer monitors float, screen upwards
- Accessibility is not just for people with disabilities
- Cool web site: Bill Monk
- Do not change program semantics in the debug build
- The cultural anthropology of getting on a bicycle
- Why can't I see all of the 4GB of RAM in my machine?
- Exploiting the inattentive, episode 2: The unlabeled line
- Why does SetWindowsHookEx take an HINSTANCE parameter?
- Space scientist James Van Allen (1914–2006)
- One way people abused hooks in 16-bit Windows
- How were window hooks implemented in 16-bit Windows?
- A look inside WinInet's index.dat file and changes in IE7 and Vista
- Candidate for most obscure keyboard shortcut: Shift+F8
- Even more about C# anonymous methods, from the source
- The day Tully's ran out of coffee
- The implementation of anonymous methods in C# and its consequences (part 3)
- The implementation of anonymous methods in C# and its consequences (part 2)
- News Flash: Big houses also cost more to cool
- The implementation of anonymous methods in C# and its consequences (part 1)
- C# nested classes are like C++ nested classes, not Java inner classes
July 2006
- Christmas gift idea for your favorite glasses-wearing geek
- Just because I don't write about .NET doesn't mean that I don't like it
- The Seattle Monorail has two trains, and they collided
- The efficiency of ordinal-based imports while still being name-based
- Handy tip: If you're going to break into vehicles, the police vehicle service center is probably a bad place
- Index to the series on DLL imports and exports
- Names in the import library are decorated for a reason
- Real Madrid (i.e., proper football) comes to Seattle
- What happens when you get dllimport wrong?
- If you know German, the world is, well, slightly more confusing
- Issues related to forcing a stub to be created for an imported function
- Raise la lanterne rouge
- How a less naive compiler calls an imported function
- Floyd Landis stuns everybody on stage 17; Raymond less impressive
- I didn't realize that it was International Group B Strep Awareness Month
- Calling an imported function, the naive way
- Buy me some peanuts and a set of double-pointed 2's
- Rethinking the way DLL exports are resolved for 32-bit Windows
- The traffic gods are punishing me for bicycling
- Exported functions that are really forwarders
- How are DLL functions exported in 32-bit Windows?
- The day the peloton lost its way
- How were DLL functions imported in 16-bit Windows?
- How were DLL functions exported in 16-bit Windows?
- Glass houses are great places to throw stones
- Win $5000 every summer for life (some restrictions on your life apply)
- Pidls and monikers do roughly the same thing, just backwards
- News flash: Big houses have bigger heating bills
- Not everybody with a non-Windows partition type is a geek
- Wenn Ausländer Deutsch phonetisch singen
- Before you can learn to recognize what's wrong, you must learn to recognize what's right
- Mr. T prefers a double-shot of espresso with two graham crackers, go figure
- No, really, why is it 160×31?
- Nearly 20 percent of daily smokers say they exercise three or more times a week
- Is the maximum size of the environment 32K or 64K?
- Retail companies allegedly not collecting personal information as aggressively
- Things I've written that have amused other people, Episode 2
- How do you use the bike rack on a Metro bus?
- Security: Don't forget to initialize the stuff you don't care about
June 2006
- Congratulations, Montréal, on finally paying for the 1976 Olympic Games
- 2006 mid-year link clearance
- Generating tooltip text dynamically
- Multiplexing multiple tools into one in a tooltip
- … so it doesn't poop all over your office
- Using custom-draw in tooltips to adjust the font
- Look who bought my name
- Coding in-place tooltips
- The subtle usability considerations of conference nametags
- The continuing phenomenon of size inflation in fast food
- An auto-reset event is just a stupid semaphore
- It's still not a democracy, but at least other people have noticed, too
- Psychic debugging: Understanding DDE initiation
- Three-Minute Masterpieces (2006)
- A single-instance program is its own denial of service
- Announcements on the ferry, one self-explanatory, one not
- Why can't you programmatically reorder the items on the Start menu?
- Understanding what significant digits really mean
- It's a good idea to get somebody who knows the language to be your proofreader
- Window class properties apply to all windows that belong to the class
- Pitfalls of transparent rendering of anti-aliased fonts
- Lies and statistics: 600,000 Chinese engineers
- Fumbling around in the dark and stumbling across the wrong solution
- Remember what happens when you broadcast a message
- What happened to the traffic circle at the corner of 156th Ave NE and NE 56th Way?
- Why did the Add or Remove Programs control panel try to guess all that information?
- The forgotten common controls: The MenuHelp function
- Disaster averted, thanks to undisclosed government action, no really
- If you're going to try to simulate user actions, make sure the user can do them
- Apparently driving is messed up in a lot of countries
- The forgotten common controls: The page scroller
- Why can't you say </script> in a script block?
- What does the CS_CLASSDC class style do?
- What does the CS_OWNDC class style do?
May 2006
- Do it for Katie
- Mellifluous NPR reporter name: Ofeibea Quist-Arcton
- People are very sensitive to how the icons look
- Every discipline has its crackpots: Stories of mathematics
- Wordplay (the movie)
- Assaulting users with dialog box after dialog box
- Using Yoda on an x86 may be hazardous to your systems’ health
- Beware the C++ implicit conversion
- Raymond makes a psychic prediction for 2006
- That mysterious J
- How do I write a regular expression that matches an IPv4 dotted address?
- Raymond 1, Sidewalk 1
- Redirecting output can result in altered program behavior
- Making up new Winter Olympic events
- The redirection operator can occur in the middle of the command line
- Don't mention the war. I mentioned it once, but I think I got away with it all right
- Beware of digits before the redirection operator
- The real scoop on the the x64 calling convention on 64-bit Windows
- Command line redirection is performed by the command line interpreter
- The first word on the command line is the program name only by convention
- On languages and spelling
- When people mimic the display rather than the actual data
- Automatic messages when you're not in the office – the infamous OOF
- Solutions that don't actually solve anything
- Why doesn't Ethan Hunt have to wear identification?
- Subtle ways your innocent program can be Internet-facing
- Seattle boating season opens but never closes
- It rather involved being on the other side of this airtight hatchway
- What can I do with the HINSTANCE returned by the ShellExecute function?
- On the bogusness of reporting the winning word in a spelling bee
- Doing quick arithmetic from the command prompt
- The alertable wait is the non-GUI analog to pumping messages
- A cache with a bad policy is another name for a memory leak
- Tips from an American on on driving in Taiwan
- What's so special about bitmaps and DCs?
April 2006
- Grace period for Swedish currency conversion extended to the end of the year
- What does CS_SAVEBITS do?
- A new scripting language doesn't solve everything
- No good deed goes unpunished: Bug assignment
- Correctly spell xerophthalmia and the crowd goes wild
- No, really, you need to pass all unhandled messages to DefWindowProc
- Ich habe meinen Computer zu Deutsch gewechselt
- Troubleshooting tips are not formal product documentation
- Then again, it might not be overclocking after all
- More about the house in front of Microsoft's RedWest campus
- The 2006/2007 Seattle Symphony subscription season at a glance
- Adding a new flag to enable behavior that previously was on by default
- Maybe you don't sound like Carl Kasell, but you can have his job
- How to fill in that number grouping member of NUMBERFMT
- Merchandise your food with pride
- Locale-sensitive number grouping
- Where did start.com get its name?
- Chain tax preparers do not fare well in undercover investigation
- Where did the name for Microsoft Access come from?
- News for dummies in French and English
- Why is the Microsoft Protection Service called "msmpsvc"?
- What's the deal with the house in front of Microsoft's RedWest campus?
- The decoy display control panel
- You'd think it'd be easy to give away a ticket to the symphony
- Be very careful if you decide to change the rules after the game has ended
- News for dummies now available in podcast form
- Computing over a high-latency network means you have to bulk up
- Sometimes you just have to make a snap decision
- It's more efficient when you buy in bulk
- USER and GDI compatibility in Windows Vista
- Adding flags to APIs to work around driver bugs doesn't scale
- German adjectives really aren't that hard; they just look that way
- Spamming the event log doesn't make things any better
- What seventh-grade students want to be when they grow up
- Doing the best we can until time travel has been perfected
March 2006
- The network interoperability compatibility problem, first follow-up of many
- Diese Briefe wurden von unserem chinesischen Freund übersetzt
- How would you solve this compatibility problem: Network interoperability
- Inadvertently passing large objects by value
- The rise and fall of the German language
- Why are there two copies of Notepad?
- Public service announcement for Roman Catholics: Sunday is not a fast day
- Why doesn't the window manager just take over behavior that used to be within the application's purview?
- The simplified office
- Where technology names came from: WiFi and FireWire
- Before you develop a solution, make sure you really understand the problem
- Make sure to handle carcinogens safely before inhaling a different carcinogen
- Solving one problem by creating a bigger problem
- On the alert for expired food-handling licenses
- Why doesn't Windows File Protection use ACLs to protect files?
- Basic ground rules for programming – function parameters and how they are used
- You never know until you test it with real users
- Raymond's highly scientific predictions for the 2006 NCAA men's basketball tournament
- Why does the version 6 animation control not use a background thread?
- Really, college athletics is about education (not)
- Das Buch der verrückten Experimente
- On the fuzzy definition of a "Unicode application"
- Top ten things to do to make your application a Vista application
- Controlling resource consumption by meting out work items
- The social skills of a thermonuclear device, part 2
- A thread waiting on a synchronization object could be caught napping
- Betsy's interview tip: Wear pants
- Why does the size of a combo box include the size of the drop-down?
- If you ask for a window caption, you also get a border
- Reading the fine print, episode 3: What's in the bottle?
- Reading the fine print, episode 2: Portable headphones
- Why is there no message for disabling the Cancel button on a wizard?
- Raymond, you even pose like a girl
- The consequences of invalidating the null window
- Other things happen for a reason, too
- The ForceAutoLogon setting doesn't do what most people think
- The peculiar appeal of the Baseball Uncyclopedia
- Very late remarks on the original Chinese dictionary series
- Martha, Martha, Martha!
- Restating the obvious about the WM_COMMAND message
- Keep your eye on the code page, practical exam
February 2006
- Raymond, you so write like a girl
- Ry Jones seems particularly amused by things I've written
- Changing a window class affects all windows which belong to that class
- The Top Gear Winter Olympics 2006
- Why can't I disable the Cancel button in a wizard?
- That $9 you got from the PayPal settlement? Taxable income.
- Enumerating threads in a process
- Games give you hand-eye coordination and spatial intelligence together with map-reading skills
- The performance cost of reading a registry key
- In pursuit of the message queue
- In pursuit of Michael Cassini, "the king of con"
- How the study of languages influences one's appreciation of international competition
- Why does my program run faster if I click and hold the caption bar?
- Diving into kernel mode with Doron
- Not all team integrations go smoothly
- Because programmers were trusted to do the right thing, part 2
- Recycling old PCs and cell phones
- The "symmetric" in symmetric multiprocessing really means "symmetric"
- Studs from Microsoft
- Other things people do with beta versions of the operating system
- That's just super (and a note on baking)
- The dangers of sleeping on a UI thread
- Shifting from program management to programming also affects your social life
- Comparing writing specifications to writing code
- Apparently I can't take myself anywhere
- Viewing function composition as transformation of the domain
- You know you're in trouble when your channel loses to dead air
- Beware of redirected folders, too
- You can't even trust the identity of the calling executable
- Mysterious things Steve Yi has eaten
- The pornography of food
- Be careful when interpreting security descriptors across machine boundaries
- The per-class window styles and things really are per-class
- The military marriage of convenience
January 2006
- "I attack the kobold wearing the headdress made of human ears"
- Why does the Recycle Bin have different file system names on FAT and NTFS?
- Why does a corrupted binary sometimes result in “Program too big to fit in memory”?
- Liquefied NBA points apparently cannot be sold on eBay
- Waiting for all handles with MsgWaitForMultipleObjects is a bug waiting to happen
- Stephen Tolouse's reminiscences of Windows 95 RTM day
- Pumping messages while waiting for a period of time
- Welcome to the United States, unless you're a Canadian technologist who is an invited guest at a Microsoft conference, in which case, keep out
- You can call MsgWaitForMultipleObjects with zero handles
- Creepy messages in your baggage
- Performance consequences of polling
- There are two types of rebates, and you need to be on the alert
- If your callback fails, it's your responsibility to set the error code
- The vtable does not always go at the start of the object
- How air conditioning revolutionized competitive bicycling
- The cost of trying too hard: String searching
- From Doom to Gloom: The story of a video game
- The cost of trying too hard: Splay trees
- ReadProcessMemory is not a preferred IPC mechanism
- At least there's a funny side to spam
- Understanding what things mean in context: Dispatch interfaces
- France, she is, how you say, on sale!
- Why do words beginning with "home" get treated as URLs?
- When web sites rely on security holes
- The decoy visual style
- Beware the MSJ subscription scam
- When programs assume that the system will never change, episode 3
- Where do call signs come from?
- Why do image lists and tool bars use horizontal strips if vertical is so much better?
- Converting between LCIDs and RFC 1766 language codes
- The first rule about knit club…
- Don't underestimate the resourcefulness of people trying to be annoying
- Taxes: Detecting session state changes, such as a locked workstation
- Taxes: Remote Desktop Connection and painting
- The world's slowest RET instruction
- 2005 end-of-year link blowout sale
- On the abuse of properties
- There's more to calling a function than just getting the types to match
- If one certification is good, more must be better
- Why did the Windows 95 CD have extra fun stuff?