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

std::call_once vs. std::async

Simple vs complex machinery.

The post <CODE>std::call_once</CODE> vs. <CODE>std::async</CODE> appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Magic statics vs. std::call_once

They sort of do the same thing, but differently.

The post Magic statics vs. <CODE>std::call_once</CODE> appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Why do Microsoft job levels start in the high 50’s instead of starting at a sane number like 1?

It used to start at 1, but that was the old system.

The post Why do Microsoft job levels start in the high 50’s instead of starting at a sane number like 1? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Why didn’t Read­Directory­ChangesW provide a way to correlate the two sides of a rename operation?

Perhaps it wasn't necessary, or perhaps it didn't occur to them that this a problem.

The post Why didn’t <CODE>Read­Directory­ChangesW</CODE> provide a way to correlate the two sides of a rename operation? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Why is the x86 undefined instruction called ud2? Why 2?

It came after ud0 and ud1.

The post Why is the x86 undefined instruction called <CODE>ud2</CODE>? Why 2? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

How can I remove the Close button from my window caption?

Not through normal means.

The post How can I remove the Close button from my window caption? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

What algorithm did Windows XP use to choose your initial user picture?

It's random, really.

The post What algorithm did Windows XP use to choose your initial user picture? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

A sample use of the winstart.bat file in Windows 95

For a driver that needs high resolution mode only in Windows.

The post A sample use of the <CODE>winstart.bat</CODE> file in Windows 95 appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Why don’t we allow stacks to be sparse, instead of forcing them to be contiguous?

Imagining how to report a memory allocation failure for a sparse page.

The post Why don’t we allow stacks to be sparse, instead of forcing them to be contiguous? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

What happens if you change a window class’s GCL_CB­WND­EXTRA?

You're changing the value for future windows.

The post What happens if you change a window class’s <CODE>GCL_<WBR>CB­WND­EXTRA</CODE>? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

The case of the progress callback that never got called when progress happened

Are you talking to the right guy?

The post The case of the progress callback that never got called when progress happened appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

The perils of binding to value types in XAML

Loss of identity.

The post The perils of binding to value types in XAML appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Microspeak: Funded / unfunded

People are our most valuable asset.

The post Microspeak: Funded / unfunded appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

AWE does not require PAE, though PAE makes it much more useful

All dressed up with nowhere to go.

The post AWE does not require PAE, though PAE makes it much more useful appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

On forcing all derived classes to implement a specific non-virtual method, part 2

Explicitly denying that you implement the method.

The post On forcing all derived classes to implement a specific non-virtual method, part 2 appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

On forcing all derived classes to implement a specific non-virtual method, part 1

Don't implement a stub. Just don't implement it at all.

The post On forcing all derived classes to implement a specific non-virtual method, part 1 appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

In the product end game, every change carries significant risk, episode 2

The smallest perturbation.

The post In the product end game, every change carries significant risk, episode 2 appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Why didn’t the Windows Entertainment Pack just run the MS-DOS version inside an emulator?

It wouldn't be a Windows Entertainment Pack then, would it?

The post Why didn’t the Windows Entertainment Pack just run the MS-DOS version inside an emulator? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Comparing the two holograms on the Windows 95 box

Filling in with your imagination.

The post Comparing the two holograms on the Windows 95 box appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Reducing C++ template bloat by factoring out the type-dependent portions of the function, practical exam

Applying our principles.

The post Reducing C++ template bloat by factoring out the type-dependent portions of the function, practical exam appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Reducing C++ template bloat by factoring out the type-dependent portions of the function

Looking for consolidation points.

The post Reducing C++ template bloat by factoring out the type-dependent portions of the function appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

On wrapping a callable in a lambda that just calls it with the same parameters

Just use the callable directly.

The post On wrapping a callable in a lambda that just calls it with the same parameters appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Why did the Microsoft Entertainment Pack for Windows have a special sticker announcing that it also had Tetris?

A contingency plan.

The post Why did the Microsoft Entertainment Pack for Windows have a special sticker announcing that it also had Tetris? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

How do functions like alloca allocate memory from the stack?

The usual probing.

The post How do functions like <CODE>alloca</CODE> allocate memory from the stack? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Forcing an ARM64X executable to run as a specific architecture

You can request the target machine architecture.

The post Forcing an ARM64X executable to run as a specific architecture appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

A little helper class for managing LPPROC_THREAD_ATTRIBUTE_LISTs

Another RAII-style wrapper.

The post A little helper class for managing <CODE>LPPROC_<WBR>THREAD_<WBR>ATTRIBUTE_<WBR>LIST</CODE>s appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

The comments that go into code versus those that go into the pull request description

Understanding the temporal relevance.

The post The comments that go into code versus those that go into the pull request description appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

The little-known winstart.bat batch file

It had been there long before Windows 95, but nobody remembered.

The post The little-known <TT>winstart.bat</TT> batch file appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

How can I perform a Copy­File&shy in unbuffered mode?

Try one of the fancier alternatives to Copy­File.

The post How can I perform a <CODE>Copy­File&shy</CODE> in unbuffered mode? appeared first on The Old New Thing.

The Old New Thing
Text • Raymond Chen

Creating a fake agile wrapper that is technically agile but is not useful outside its home apartment, part 5

Cheating with std::unique_ptr.

The post Creating a fake agile wrapper that is technically agile but is not useful outside its home apartment, part 5 appeared first on The Old New Thing.