Hacker News new | past | comments | ask | show | jobs | submit login
I wrote Task Manager and I just remembered something (reddit.com)
827 points by notRobot on May 25, 2020 | hide | past | favorite | 102 comments

More stuff like this needs to be recorded. It saddens me to think how much of this kind of stuff is already lost from earlier times in computing. A lot of interesting stuff like this is captured from the history of the Mac[1] and from Atari[2], but the "folklore" from so many other companies and products is being lost.

Who are others who are doing this kind of work?

[1] https://www.folklore.org/ [2] https://ataripodcast.libsyn.com/

There is a bit of "folklore" here but most of this post is program functionality that should be documented. Really only the details about the window class name and being fully resizeable without flicker are "folkore" details that go beyond the scope of good documentation.

Just opened Task Manager to confirm, the standard "Help" top level menu is conspicuously absent. Write those docs, everybody!

The Old New Thing blog [1] has a fair amount of Microsoft folklore.

[1]: https://devblogs.microsoft.com/oldnewthing/

And there was even more folklore in the comments but Microsoft killed them when migrating the blog content to a new platform.

I find the smugness of frequent "Airtight hatchway" posts somewhat annoying in the light of the numerous Windows security vulnerabilities though.

The point of those posts is how frequently people think they've got a security vulnerability report that isn't one which makes it harder to spot actual Windows security vulnerabilities signal in the giant noise of feedback sent to Windows and Windows adjacent teams. Many of those posts directly mention that someone on Windows took too much time (assuming "some time" is too much time), researching enough information to assure some paying support customer that the issue they found was not a security vulnerability.

I can't fault you for reading them as smug, and some of them objectively are, but the intended messaging is not making light of how many Windows security vulnerabilities happen, but of how much time is spent going in circles around non-vulnerabilities when teams could be better spent dealing with real ones.

This is a great one: https://www.filfre.net

He did an incredibly thorough nine-part series on the history of Windows from DOS through 3.1 and the antitrust cases. It was fascinating. There's tons of other stuff here too.

thanks for the link! i really liked the series, but forgot to bookmark it and couldn't find it after. the Windows series starts here: https://www.filfre.net/2018/06/doing-windows-part-1-ms-dos-a... honestly, it could probably be made into a Halt And Catch Fire-style miniseries, it's so good. actually i think i'll re-read it now :)

"New Tricks For An Old Z-Machine" was great too!

The entire blog is so good & almost unbelievably long and thorough - it feels like the kind of sites the web was made for. I have no idea how long it all is cumulatively but I wouldn't be surprised if it's longer than some famously long works of literature such as the combined length of all lord of the rings novels.

The Dream Machine by Mitchell Waldrop [1] is an exceptional book documenting the early times in computing. Being a scientific journalist (Science and Nature magazines), he provides an unbiased account—which is not an easy job, to distill from first-person recollections—from Alan Turing up to the Mac.

And you will read it like you don't know how it's gonna end. Because that's how things happened.

(Really appreciate Patrick Collison and Stripe Press for re-publishing it)

[1] https://www.amazon.com/Dream-Machine-M-Mitchell-Waldrop/dp/1...

There's a lot of stuff available but the problem is knowing what to look for.

For example, the book "Commodore: A Company on the Edge" chronicles quite a bit of Commodore lore, and there are numerous resources for both Amiga and C64 online. Too many to mention, really, and lots of them are heavily specialized. CSDb[0] for the C64 demo and cracking scene, for example.

I also recommend The Early History of Smalltalk[1] by Alan Kay himself and Mark Ferrari's talk[2] on creating pixel art for LucasArts games.

[0] https://csdb.dk/

[1] http://worrydream.com/EarlyHistoryOfSmalltalk/

[2] https://www.youtube.com/watch?v=aMcJ1Jvtef0

The On the Metal[1] podcast had some absolutely magical interviews for this sort of thing in their first season. I honestly loved them all and there are great stories in each of them, but purely for the folklore aspects I’d highlight the Jeff Rothschild and Tom Lyon episodes.

[1] https://oxide.computer/podcast/

A story about WordPerfect from an insider executive https://www.wordplace.com/ap/

Now I'd like to know why Task Manager got rewritten in Windows 8. I liked the old one better; it was lighter and faster than the current one.

Disclosure: I work at Microsoft, on the Windows accessibility team. But I didn't join until a couple years after Windows 10's initial release.

I'm tempted to reply it's because MS are spiteful tossers but actually (despite that being true) there's a bigger problem. MS used to be pretty good at interfaces - true, they really did - but on & after win8 they just forgot that UIs are not there to look 'cool' and 'awesome' but to simply to help users get shit done.

It's not exactly that the new stuff is even that bad - I do use some parts of it. It's that there's a really awkward shift in philosophy that the new UI engages with:

Old: Expose the hardware in a highly compatible way for developers. Help the user do productive work with their applications.

Old basically remains in the same paradigm through WinXP. But starting around Vista the concept changes, and that accelerates with Win8.

New: Help the user shop and consume content. Protect them from malicious software.

And this consumer focus leads in turn towards aesthetics and "wow factor". But it's Vista's shift towards heavy security prompting that I see as the precipitating element in this. It's the change from "they know what they're doing" to "they don't know what they're doing", and the attempt to continually reinvent the same thing but "easier." The UI changes are more like a reflection of the broader trend of aping whatever smartphones do.

And one thing I will credit modern Windows for is this - running on contemporary hardware it's really stable and doesn't blow up easily. But it's like running two operating systems at once, and the newer one is mostly unnecessary.

The absolute worse of this old vs. new split has got to be the two different settings interfaces (Control Panel and Settings) that have some overlap, but other features that are only in one.

Try changing the mouse pointer speed starting on Settings[1]. Or for a bigger challenge, try finding the place to change which Desktop icons appear.[2]


Answer key:

[1] Settings -> Devices -> Mouse -> Related settings [tiny text on the far right] -> Additional mouse options -> [opens old Control Panel mouse settings] -> Pointer Options -> Motion: Select a pointer speed.

[2] Right-click Desktop -> Personalise -> Themes [!?] -> Related Settings [tiny text on the far right] -> Desktop icon settings

>the two different settings interfaces (Control Panel and Settings) that have some overlap, but other features that are only in one.

All that's going to happen is we'll lose the control panel eventually, and get an inferior settings reimplementation instead.

That long scroll alone is really, really terrible.

Not being able to open more than 1 settings screen is dumb as well.

Yeah, this kind of thing pisses me off when the UI 'expert' thinks they know more about your workflow than you and wall bits off to help you.

I've seen this many times, the fresh team who have not worked with the old system but has a lot to say about it, starts redesign "properly this time", finds out bringing the new system to the level of the old one is surprisingly a lot of work (not even accounting the required new functionality), gives up redesign half way through or runs out of time, management cannot afford to admit the mistake and goes along with it, users refuse to switch to the new system, the old system is continuously forcefully deprecated.

A funny thing about the desktop icon setting - they are actually aware that it's hard to find so on one of those screens in Settings you get a link like "How do I change the desktop icons?". Clicking that does not take you to screen where you can change it though, instead it opens a help page in your browser that describes the awkward navigation steps to get there.

Don’t forget the genius move of: right click, personalize. Same link on the right about desktop icons that when clicked... ...does a Bing search for where to go to change your desktop icons.

Literally both are links on the right, both behave wildly differently.

Every. Single. Time. I get the bing link first.

>Try changing the mouse pointer speed starting on Settings[1].

Oh, thanks for that! I was looking for that recently and just gave up. From Windows 95 to XP (and maybe Vista?) I could find that setting in 2 seconds. Now? no chance.

To me it's more:

Stone Age (1985): Windows is a single-user graphical shell for the PC that is necessarily very close to the hardware.

Bronze Age (1993): Windows NT is launched as a multi-user secure applications platform. Hardware access is no longer direct. This is sold almost exclusively to businesses.

Iron Age (late 90s): "Hardware" is no longer fixed at boot. Computers are no longer islands. Users expect TCP/IP networking built in. USB arrives round about Win95OSR2 and complicates everything. Security problems start to matter. Windows acquires a rounded, "friendly" skin and the cheerful rolling hills of the default background.

Steel Age (2006): the security problems become untenable. Downloading anything from the internet is extremely risky. A decision is made to kill the "stone age" line of compatibility; everything derives from NT now, and the normal logged in user is no longer "root" all the time. UAC appears to guard the user against malicious executables.

Tablet Age (2012): the iPad is eating their lunch. Microsoft panics. Having had a tablet OS for ages that never took off outside of niches (Windows CE), they decide that Windows will be relaunched as a tablet-first OS with everything written in C# using their new flat graphic design style. The 99% of desktop users are disoriented by the tablet-first design. Windows phones are launched, then the burning platform sinks below the waves again, taking Nokia with it. Pity, the Nokia Lumia 1040 was an amazing phone.

Missing Era: there is no Windows 9.

Final Form (present): Microsoft go to version 10 then promise to stay there forever. Updates are now continuous and rolling. They've mostly backed off the tablet interface .. but never really finished the modernisation.

(As a Windows developer, the extinction lines in the fossil record that stand out across all the APIs are "Vista" and to a lesser extent "8". 10 is a consolidation with a drip-feed of additional APIs.)

Future? Well, Unixisation is creeping in again along with a friendliness to Open Source. At some point they may deprecate CRLF and try to change the percieved default path character to '/'.

> Missing Era: there is no Windows 9.

This is to avoid breaking software that checks whether the Windows version string starts with "9".

Seems like Win8 was them trying to push the mobile style UIs onto people even though they were using a Desktop/Laptop. I remember in Win8, the calculator would take up the whole screen, similar to the way it does on an IPhone. I could never understand how such a usability atrocity got past Redmond.

I think MS misread ipad popularity and the resulting "tablet computing" trend as a tidal shift to touch-based interfaces as the emerging "new normal".

It kind of made sense at the time, given the popularity of the Surface. The trend certainly seemed to be towards smaller form-factor, lower-power devices that sat nicely on the spectrum between a tablet and laptop.

Of course, that didn't mean they needed to completely overhaul the desktop experience though.

This is the sort of wisdom that leads a company to create macOS, iOS, iPadOS, watchOS, and tvOS. The recognition that some things are too dissimilar to ship in the same box.

Meh. I still think that is a mistake. Windows Mobile lost because it was late to market, and was not designed well the first two times.

Windows Mobile 10 was good, so was ability to develop for desktop, mobile and Xbox with one codebase. IMO Microsoft shut it down when it actually was becoming awesome.

Maybe Windows 10 ARM64 will still come back to phones though.

It's weird because Win8 looks like quite the opposite of "cool", at least in my view. And their interface is actually somewhat helpful on touch-based devices, but other OS's do a way better job of having a unified interface for 'touch' and 'keyboard+mouse' input.

> but other OS's do a way better job of having a unified interface for 'touch' and 'keyboard+mouse' input.

What are you thinking of? IOS? Android? GNOME? KDE? OSX?

Windows isn't perfect at this stuff, but it's honestly the best experience I've had with a 2 in 1 (Tablet with extra keyboard + touchpad). GNOME is close, but the UI arrangement is stupid (ok, it's worse on Windows, but I digress), pen right click doesn't work and the on screen keyboard is like from another universe (it also doesn't seem to be made for people with mice, but I digress again ...). On Windows I can set the keyboard to mini-mode (floats around in a small window) and slide on it with a pen, getting about the same input speed as when typing. It's quite amazing. It's just a shame that there's Windows around it.

Windows is good, yes. Especially for compatibility with standard desktop apps and new form factors like pen, handwriting, etc. But iPad with touchpad now is also good—better, perhaps, than the Pencil’s OS integration. Presumably the standardization of App Store categories means MacOS and iOS will align eventually as much as Windows modern and native apps can on the same (“desktop”) system. Both platforms and Chrome want app authors adapting new features, but developers generally implement what’s easiest/appropriate for their codebase, so... I think the next big leap in UI will be when AI recognizes and labels patterns in complex code for more advanced refactoring...

Wasn't Vista where they went all-in with animations and blurs, like Windows Aero?

First thing I did on pretty much every new computer was turn all of that off. And in windows 8 found some hack to restore something resembling a "start" menu.

Windows 10 hasn't bothered me enough in that regard to go digging for the settings to kill visual effects.

And the useless Windows Experience Index. Like they thought developers would ship software with a single WEI for minimum and recommended requirements.

>Now I'd like to know why Task Manager got rewritten in Windows 8

* displays multiple cpus better

* graphs autoscale, so the network utilization graph isn't stuck at showing everything in 1gbit scale

* multi process programs (eg. chrome) are grouped together, so it's easy to tell how much resources it's actuality using

* Adds GPU usage - this wasn't available even in details before.

* Adds graphs for disk usage and GPU usage (per GPU).

* Adds a few useful columns to the applications tab, including disk usage which wasn't possible even in details before.

* Applications tab has heatmap highlighting thing, which is a bit gimmicky but is actually useful.

* Merged in the good parts of MSConfig: Service Management and Startup Applications. (Is a better service manager in general than crusty old Services.msc; no longer need to wait for MMC snap-in and plugin loading.)

Why do you think it got rewritten? Obviously the UI has changed, but the reddit post indicating that it can run without shell32.dll makes me think it was rewritten with a nicely decoupled UI and that is what got updated in later iterations.

If you work at MS, it would be cool to find the last person to push a change to that code base and ask them. Or maybe we can reply to the reddit post.

I like new taskmgr more, it actually kills applications without having to go into detailed view and remember what the exe is called. Old taskmgr would bring up the “Application is not responding, what do you want to do about it?” screen, which is useless by time you bring up taskmgr and the app is hanging.

* >kills applications without having to go into detailed view*

For apps that are well & truly borked, the new app-driven interface often fails in this for me. But it does let me right-click and "go to details" and kill it there, so it's still an improvement.

Have you tried clicking the ‘End Task’ button twice? It’s arguably rather unintuitive, but in my experience the first click seems to send a ‘politely quit’ signal and the second results in the merciless massacre which hasn’t failed me yet.

Yep, sometimes after a few attempts a box will come up saying "this app is unresponsive" and it seems about even chance if that will end the task

Fits in with the rest of windows 8, and later 10. Lots of rewrites and new UIs, many of the replacements are not up to par with the original.

Somehow I had the impression that Task Manager was rewritten when the guys from Sysinternals joined MS (who had the excellent Process Explorer app).

And with that in mind, I actually think the new one is better.

Task manager (in my win2K8R2) is bloody great. It does what it's supposed to do, does it well in little space, is highly reliable, has plenty of good options usefully exposed, is sensitive to the user (if you right-click on a process in the process view, the updates that rearrange the view freeze so things don't change underneath you) and it runs permanently for me. The author should get a medal.

I curse the MS developer/s who wrote the peep show listboxes: those non-resizable scrolling list boxes that display long lists in a peep hole that is just a few items long so you have to scroll endlessly to find what you need. This UI element has remained in the OS since I had hair on my head.

The OP indirectly explains why those listboxes were non-resizable:

“TM is one of the apps I'm most proud of because it is probably the first app to ever be fully resizable in all dimensions without any flicker.”

Win32 didn’t have an automatic layout engine. Resizing meant drawing your content while new mouse events were firing rapidly. It was hard enough to do flicker-free that Microsoft preferred fixed dialogs where possible.

(To be fair, it’s not like resizing is a solved problem even in 2020. For example on macOS, brand new apps ported from iOS using the Catalyst runtime seem to have absolutely terrible resize performance.)

> I also wrote Space Cadet pinball

Talk about burying the lede!

I think it would be better described as a port.

Except he wrote the code from scratch and just used the assets. Not technically a port.

The proper term would be a remake, I believe.

"- There should be nothing that TaskMgr can't kill - it will even escalate privilege and (if you have it) enable debug privilege to attach to and kill apps that way if needed. If TM can't kill it, you've got a kernel problem."

I've seen stuff that taskmgr can't kill - I haven't ever seen it use any debugging privileges that I know of.

I suspect the author had moved on from MS by the time XPSP2 dramatically restricted security privileges in Windows.

I would guess that protected processes with at least Tcb level (which denies PROCESS_TERMINATE) can't be killed in this way.

like he said, kernel problem. Most likely a driver holding on to a handle opened by a process by not cancelling I/O properly. to my recollection the most common case, but could be similar other reasons.

I think it also used to be able to kill msmpeng.exe but it now fails with access denied. I assumed it was intentional because they don't want to kill antivirus. But it is a CPU hog, often at critical times, so I used to find myself killing it a lot in past releases.

In windows processes have an access control list, just like file permissions. MsMpEng.exe (and other sometimes other critical system processes and antivirus scanners etc) can't be killed because only system has permission, not administrators. Process Explorer allows you to view and modify a process access control list (if you have permission).

If you use psexec to run process explorer as system, then you can get into the access control list of these processes and add permission for administrator (or just kill them from there...)

I am ex msft. I have written windows code in kernel mode. I know that there are acls. I know about psexec too. I was not talking about any of that, but Task Manager as this thread was about.

Personally if I were killing with psexec I would try invoking taskkill.exe.

Ah, ok, sorry I was just trying to be helpful, I wasn't trying to teach you to suck eggs :)

But my main point was (that I implied, but I didn't say) is yes, I remember killing off early versions of microsoft security essentials (when that was its name) with task manager too. Logically, back then the process didn't have a restricted ACL, but it now does.

I didn't actually know you could specify the system user when killing a process with taskkill, thanks

I've had better luck killing such "unkillable" processes with taskkill.exe /f /im program.exe instead.

You forgot sudo

Suspended apps don't show up and have to be killed through wmic sometimes

That's one scenario where Task Manager can't kill a process. When a full screen game hangs, the graphic mode stuck as well. No amount of Ctr-Shift-Esc or Ctr-Alt-Del will bring Task Manager on to kill the process.

Switching to another virtual desktop (Win+Tab) can help if the graphics driver is still working normally. If the driver crashed, you have to wait for TDR to kick in and restart the driver (usually ~5s). That is, if it's able to recover.

When Task Manager is the active window you can control it with the arrow keys and view it with alt+tab. Typically the game has “Not Responding” next to it so it’s easy to select and kill using the delete key.

> Task Manager will load in reduced mode if resources are short, like only loading the Processes page if that's what's needed to get going. It's one of the very few apps that won't just "fail and bail" when things go wrong.

Nice example of how to degrade gracefully instead of simply crashing the process. These days most programs seem to assume memory allocation never fails. Some GNU libraries kill the process in those cases!

In most cases it doesn’t make economic sense to implement graceful failure. OOMs are rare (unless you are a Java programmer).

Is it good or bad that I remember most of these features from my days on Windows 95? We have come a long way, I hardly ever have to open Task Manager nowadays.

You must not have to put up with corporate cyber security professionals using tanium and HIPS to hump your hard drive for hours like a monkey on a football.

I use TM multiple times a day.

I left the corporate world right around the time when they started to take away my admin privileges to install spyware on my machine. Good times.

I've got it open 24/7. There's enough misbehaving stuff that I have to use day-to-day that spikes off the CPU or runaway leaking memory on a regular basis...

I miss the Vista/7 desktop widgets that you used to be able to use to keep an eye on this stuff without having TaskManager open.

That is lovely, thanks.

I thought the same but recently used Windows 95 and task manager was just a list of running apps you could switch to.

Resource meter was to track resource usage.

Suspect we suffer the same brain fade and the task manager we remember was either windows 98 or XP type timeframes.

Nice. I open task manager everyday. I wish this dude has written VSCode

I wish he'd been in charge of Metro, UWP, Univeral apps and all of its reincarnations. They'd have been fast, lean, worked better with keyboard (even keyboard only). And wouldn't have so much whitespace.

Wonder if he'd have made Explorer better.

Interesting factoid: David Bradley implemented the CTRL-ALT-DEL “three-finger salute” to aid in debugging the original IBM PC way back in 1980 so that he and the development team could soft-reset the machine without needing to endure the slow POST procedure every time.

Apparenly he first considered CTRL-ALT-ESC but rejected the idea because it would be too easy to accidentally press all three of those keys if somebody/something mashed the left-hand side of the keyboard, so he replaced ESC with somethin on the far right (DEL). His criteria were keys that that wouldn’t cause a character to print on the screen.

Seems like the implementer of Task Manager picked up wjere he left off and chose CTRL-ALT-ESC anyway. Whether it’s some kind of homage, a coincidence, similar thinking constrained by the three finger salute having already been taken, or something else, is anybody’s guess. I’d really like to know how he came up with that key combination (and whether he considered that it could be accidentally triggered more easily than CTRL-ALT-DEL though by this time BIOS calls could be intercepted thanks to 386 Enhanced Mode and therefore you wouldn’t simply instantly reboot your machine).

Task Manager uses CTRL-SHIFT-ESC to open, not CTRL-ALT-ESC.

You can also reset it to defaults by pressing CTRL-ALT-SHIFT beforing clicking on its taskbar icon.

You’re right, my bad, it even says so right there in the article!

As the sibling notes, it is Ctrl+Shift+Esc, which was probably chosen as a variant of the Ctrl+Esc that opens the Start menu.

I've always known about CTL-SHIFT-ESC as a muscle memory bring windows back command, but never really knew where it came from (or why I even knew about it for that matter). Interesting to hear it from the original dev!

He seems to put in a lot of effort in that little program! Well done.

> There should be nothing that TaskMgr can't kill - it will even escalate privilege and (if you have it) enable debug privilege to attach to and kill apps that way if needed. If TM can't kill it, you've got a kernel problem.

I've run into so many programs I couldn't kill with the task manager that I doubt if this is still true. Just today my laptop was idle and overheating because two different antivirus programs and cortana were each hogging 33% of my CPU... I couldn't kill any of those processes.

I think it's still not advisable to run two antivirus programs. They will keep competing for the same resources at the same time. I would suggest using just the "better" one.

Also, a lot of what AV software does goes through kernel. That's the only way to ensure that its work is not preempted and that it can maintain security of the system.

This makes me wonder if there's anything that can be made to behave this way on Linux? I had an issue with Gnome freezing on me 100% last night with seemingly no recourse than a hard reboot over and over until a full rebuild. Something deeply embedded like Task Manager would have been great to try and resolve the issue. Switching virtual consoles was broken too and as far as I know there's no way to cut through a problem like this.

Not really similar, but in some circumstances the Sys Rq commands may help:


> I also wrote Space Cadet pinball, zip folders, product activation, and some other stuff. I was in MS-DOS before that but I doubt anyone is still supporting MS-DOS!

Space Cadet pinball was not written by Microsoft, according to Raymond Chen. [0]

[0]: https://devblogs.microsoft.com/oldnewthing/20181221-00/?p=10...

I think someone in the comments of that thread said Maxis was the original publisher, and looking it up I do see Cinematronics listed as developers.

However, the taskman OP didn’t necessarily say that he wrote Space Cadet pinball, he said he “wrote/ported Space Cadet pinball, zip folders, . . .” My money is on him porting SC pinball, not writing it

Article was last changed 16 hours ago. For me, it reads "I also wrote/ported Space Cadet pinball […]".

I am replying 14 minutes after you. Please explain.

Wow that's super cool. It's really awesome reading stories like this. I've been using windows since 3.1 and still do occasionally when i have to. I didn't know most of those things about the taskmanager. A lot of those are pretty ingenious. On the other hand, some of those make me think, wow that seems like some weird quirky shit to have to work around.

Making a window to redraw gracefully when resizing it by its left or top edge is one true nightmare. Always has been, still very much is.

Great piece of history, glad it is being recorded somewhere. But why the posturing powertrip from the mod in the comments? "This is valuable info, even I (hurhur) didn't know it, so I'll leave it this time. However, it is irrelevant here, so I am within my rights to delete it."

The author asks for an upvote for more inside trivia. Excellent first hand source.

Mod responds, "Though this could be construed as a PSA, and thus in violation of Rule 8, it's got a lot of valuable info that even I have never seen before. Therefore, I'm going to leave it. /u/daveplreddit , please message the mod team or myself before making any more such posts, and we can discuss how to best move forward."

Solid moderation to offer a way to keep contributing. Kudos.

btw just noticed "...that even I have never seen before..".

The implication of his incredible knowledge makes his allowing the post by the author of Task Manager even more gracious! What a guy!

Of course they've seen everything, don't you know Tech Support are basically computer geniuses?

My thoughts as well. Awesome gate-keeping effort, give that mod a badge.

I was concerned that they would even consider removing it from a tech support subreddit.

Let me guess task manager could have managed the tasks better, i would have let it slide but if you call your program "task manager" in for a penny in for a pound.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact