Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Now that computers have more than 4MB of memory, can we get seconds on taskbar? (devblogs.microsoft.com/oldnewthing)
33 points by paulmooreparks on April 12, 2022 | hide | past | favorite | 20 comments


> "So once a second, a hundred stacks would get paged in so that a hundred taskbar clocks can repaint."

See, this is why Windows users can't have nice things.

Every last "terminal" would be displaying identically the same seconds pixels, but Microsoft would render them a hundred times over.

They also don't blink their cursor for the same dumb reason (rather than because blinking the cursor is itself dumb).


> Every last "terminal" would be displaying identically the same seconds pixels

Playing Windows Engineer's advocate for a moment:

Yes, you could potentially render out the pixels in some shared buffer, and make that buffer available to every session, or perhaps copy it 100x.

That's data crossing security boundaries, so could perhaps be a vector for compromising a session.

Then there's the consideration for people with different font sizes for UI - say someone who needs large fonts or high contrast modes.

Don't forget different Region settings. Not everyone's dates and times are formatted the same.

Also different taskbar configurations - maybe they've got the taskbar snapped left/right, or have the taskbar height set differently.

You've rendered this pixel buffer, but Session N's UI thread has locked up because Bob is using this application written by a work-experience kid 10 years ago, and it uses the UI thread to do CPU intensive or IO work. So, while it's waiting for a response from a server on the other end of a congested ISDN line on another continent, it blocks everything on the UI from updating.

So now the central time rendering session might have to wait, causing everyone's time to stop updating, at best, or at worst, completely lock up.

Most of these things have solutions, I guess - but I'd say the MS engineers decided "Yeah, nah" on that.


It is obvious that making up a protocol to notify all the instances is a non-starter. Sharing a read-only memory page that has nothing but the pixels in it is trivial, decoupled, and provably not a security hole. Probably there are already such pages in use that the pixels could be added to. Any Terminal that has customized its seconds display would not be obliged to participate. And, there is no need to interrupt a busy core to update the seconds display; the update can wait until it is not busy.

In any case, they could each render the ten digits, or even 61 digit pairs, ahead of time, and blit them into place as needed.

But what keeps Windows users from having nice things is that they all, without exception, depend on the whims of those MS engineers (not to say hacks) who get to decide, "Yeah, nah" on their behalf.


Every user necessarily needs their own frame buffer. Or they’d all be looking at the same screen.


Obviously. But the seconds part is the same, unless they have customized its typeface or background.

So, it only needs to be rendered once, and then blitted in. Or, you can pre-render ten digits, and blit them up as needed.


Caching of the rasterization is already done at the font level. Attempting to cache the rendered seconds (even ignoring desktop preferences as you say, which is already a non-starter) seems like an engineering problem that massively outweighs saving the few dozen bytes for that portion of the screen


So animated mouse pointers are OK, blinking cursor in command prompt is OK, Teams starting with the system is OK, but counting seconds is overkill for Windows?

I would probably not display seconds anyway even if I had a choice, but this explanation seems strange.


That’s because it’s on the blog on which Raymond looks at a common annoyance on the Windows platform and makes up excuses for it. Sometimes they make sense, sometimes they might have made sense decades ago, oftentimes it’s just bullshit and the real reason is just an off-the-cuff decision by some random intern in the 80s.

Windows already has mechanism for streamlining the visuals when the desktop runs through RDP and updating one small rectangle on the real screen once every second costs basically no resources at all, especially considering the typical Windows use case where everything runs through multiple layers of virtualizations while the virusscanner is wasting as many resources as it can get away with.


KDE allows this, but I don't enable it not because of its (unnoticeable) detriment to performance, but because the extra visual stimulus is distracting.


I enable it in KDE, I don't find it particularly distracting, but I do make the font size smaller by displaying the date too.


The real question should be why would someone want to have something changing every second in his peripheric vision?


I have seconds in my status bar. It isn't distracting at all. My brain filters it out just the same when I'm focused on other stuff open on my computer


Timing is important for some things, and seconds matter sometimes. The option would be nice.


Eh, it's not that bad. i3 does it every five seconds by default, along with other status information, but to me that bar is small enough to not draw my attention if I don't need it. Actually I even often miss when it changes the color of some text to notify me of a critical situation, eg available memory dropping below 500mb.


> Any periodic activity with a rate faster than one minute incurs the scrutiny of the Windows performance team, because periodic activity prevents the CPU from entering a low-power state.

The power savings available in very low latency sleep states has improved a great deal in CPUs (even desktop and server ones since power saving ~= performance with DVFS and turbo modes). Such that 60s should be well beyond the knee of the curve. A few seconds possibly gets you the vast majority of saving (I'm less sure about PCI/GPU implications).

That said if it's an aspirational goal that's great. But I'm very surprised that windows would not have a lot of periodic activity at intervals below 60s. Even when you're talking about an unrealistic system that has no network connection or activity.


On Windows 10 or later you can turn it on though. I did this two days ago, you just need to add a registry entry.

https://www.groovypost.com/howto/make-the-windows-10-clock-d...


Such a weird argument for something that would obviously be opt-in. Also I doubt said timer would have a worse energy impact than having a browser open with a JS runtime all the time.


A browser tab alone doesn’t do much after initial page load, ignoring CSS animations, JS timers and dynamic media tags.


Just install 7+ Taskbar Tweaker [1] and check "Display seconds on the tray clock". As a side bonus you get full control of your taskbar. Works like a charm.

[1] https://tweaker.ramensoftware.com/


Strange article. I have seconds on my clock on the taskbar/panel. Have had for years.




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

Search: