Sign up

The Old New Thing

Not verified No WebSub updates No webmention support Not yet validated

Practical development throughout the evolution of Windows.

Public lists
davewiner/hackerNewsStars
Fetched

The Old New Thing
Text • Raymond Chen

Sneaking into the auditorium for the Windows 2000 launch rehearsal

Wait, that's not him.

The post Sneaking into the auditorium for the Windows 2000 launch rehearsal appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

The Microsoft building that was reportedly haunted

Lots of rumors, little confirmation.

The post The Microsoft building that was reportedly haunted appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

The support case of a customer who said that all they could see was a black screen

Then again, that is what they asked for.

The post The support case of a customer who said that all they could see was a black screen appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

C++/WinRT overcorrection: Using make_self and immediately converting it to the projected interface

You are taking the scenic route.

The post C++/WinRT overcorrection: Using <CODE>make_self</CODE> and immediately converting it to the projected interface appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Why don’t we run the taskbar and Task Manager at high priority, so they can remain responsive?

Hurry up and wait.

The post Why don’t we run the taskbar and Task Manager at high priority, so they can remain responsive? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Puzzling out why a program doesn’t work when run from a batch file, but works when double-clicked from Explorer

Mimicking the operation more accurately.

The post Puzzling out why a program doesn’t work when run from a batch file, but works when double-clicked from Explorer appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Why didn’t we use the COM static store to clean up the unmarshalable delegate?

It cleans up at the wrong time.

The post Why didn’t we use the COM static store to clean up the unmarshalable delegate? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Why didn’t we use Co­Register­Initialize­Spy to clean up the unmarshalable delegate?

Looking more closely at the function's behavior and requirements.

The post Why didn’t we use <CODE>Co­Register­Initialize­Spy</CODE> to clean up the unmarshalable delegate? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Why didn’t we use Ro­Register­For­Apartment­Shutdown to clean up the unmarshalable delegate?

Too many requirements, some of which bring us full circle.

The post Why didn’t we use <CODE>Ro­Register­For­Apartment­Shutdown</CODE> to clean up the unmarshalable delegate? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Microspeak: Drain the slide, back-up slides

PowerPoint presentation jargon.

The post Microspeak: Drain the slide, back-up slides appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Why do we need ud2 when int 6 is right there?

An interrupt is not a fault.

The post Why do we need <CODE>ud2</CODE> when <CODE>int 6</CODE> is right there? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

C++ futures part 5: std::future and std::shared_future

Getting the results back out.

The post C++ futures part 5: <CODE>std::<WBR>future</CODE> and <CODE>std::<WBR>shared_future</CODE> appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

C++ futures part 4: What if I want an immediate on-thread std::async?

Providing the case that the C++ language won't do.

The post C++ futures part 4: What if I want an immediate on-thread <CODE>std::async</CODE>? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

C++ futures part 3: The mental model for std::async

Doing things later in different ways.

The post C++ futures part 3: The mental model for <CODE>std::async</CODE> appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

C++ futures part 2: The mental model for std::promise, std::packaged_task

Building things out of the state.

The post C++ futures part 2: The mental model for <CODE>std::promise</CODE>, <CODE>std::packaged_task</CODE> appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

C++ futures part 1: The mental model

Managing a value that is produced later.

The post C++ futures part 1: The mental model appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

One way of thinking about access specifiers in C++/WinRT implementation types

Mapping them to concepts from C# and the now-defunct C++/CX.

The post One way of thinking about access specifiers in C++/WinRT implementation types appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

If one anti-malware software is good, does that make two better?

Not always.

The post If one anti-malware software is good, does that make two better? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

How can undefined opcodes ud0 and ud1 have parameters? How undefined were they?

They weren't defined, not even as undefined.

The post How can undefined opcodes <CODE>ud0</CODE> and <CODE>ud1</CODE> have parameters? How undefined were they? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Why does the compiler sometimes use ud2 and sometimes int 3 for code that shouldn’t execute?

It shouldn't execute, but for different reasons.

The post Why does the compiler sometimes use <CODE>ud2</CODE> and sometimes <CODE>int 3</CODE> for code that shouldn’t execute? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

If somebody tries to hot-patch an already-hot-patched function, how do they avoid conflicts?

Hot-patching is for Windows, not for you.

The post If somebody tries to hot-patch an already-hot-patched function, how do they avoid conflicts? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Why is there no Windows hot-patching support for other architectures like 32-bit ARM and MIPS?

They either predate hot-patching or never needed it.

The post Why is there no Windows hot-patching support for other architectures like 32-bit ARM and MIPS? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Windows on Itanium also provided for hot-patching, in an even simpler way

Once again, the benefit of fixed-length instructions.

The post Windows on Itanium also provided for hot-patching, in an even simpler way appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Windows on AArch64 also provides for hot-patching, but it’s much simpler than on x86

Fixed-length instructions makes it a much easier task.

The post Windows on AArch64 also provides for hot-patching, but it’s much simpler than on x86 appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

As a general rule, calling product support while drunk is not recommended

Swearing is also poor form.

The post As a general rule, calling product support while drunk is not recommended appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

C++ reminder: Function-local static variables are initialized only once, even if it looks like they get initialized multiple times

Only on first execution.

The post C++ reminder: Function-local static variables are initialized only once, even if it looks like they get initialized multiple times appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Debugging walkthrough: Access violation on nonsense instruction, episode 3

Trying to figure out what the interloper was trying to.

The post Debugging walkthrough: Access violation on nonsense instruction, episode 3 appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

No, really, you need to pass all unhandled messages to DefWindowProc, part 2

Another example to add to the list.

The post No, really, you need to pass all unhandled messages to DefWindowProc, part 2 appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

When working with Win32 FILETIME, don’t forget that you have std::chrono now

Let the library do the math for you.

The post When working with Win32 <CODE>FILETIME</CODE>, don’t forget that you have <CODE>std::chrono</CODE> now appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

A brief history of Windows scroll bar shortcuts

Right-clicking and shift-clicking.

The post A brief history of Windows scroll bar shortcuts appeared first on The Old New Thing.