7 ms·
It seems to be a pattern with (not just) Microsoft products to hang the UI while waiting for some remote API, usually talking to the home base. Happens a lot to
by martin_ky 4y ago
It seems to be a pattern with (not just) Microsoft products to hang the UI while waiting for some remote API, usually talking to the home base. Happens a lot to me with Office desktop apps - they freeze sometimes for a good second or so while starting and more surprisingly also when closing. One time it bothered me so much, that I recorded an ETW and unsurprisingly the time during the hang was spent waiting for some http request. I noticed that often the online version of these apps (namely Outlook) are more responsive than the desktop counterparts.
Edit: My experience with Excel - https://twitter.com/martin_ky/status/983019737729916930?s=20 https://twitter.com/martin_ky/status/983019737729916930?s=20
- rightbyte 4y agoI use Win10 at work and the Calc app lags for like 10s when opening before I can type in it. I firmly remember it started to do that after some reboot update ...
- 0cf8612b2e1e 4y agoThe new calc app has always been a travesty. Taking at least a full second or more to load, with an obnoxiously large interface. The original calculator opened instantly and had a completely functional ui. I get angry every time I need to launch calculator on a machine I have not configured with SpeedCrunch. Almost better to use Excel.
- iggldiggl 4y agoIt's also worse for mixed keyboard and mouse operation [1], because some of the buttons (2nd, the trigonometry, functions and history submenus) now retain input focus after clicking on them, so pressing Enter operates that button again instead of completing your calculation. [1] If you can't remember the shortcuts for some of the more obscure functions – never mind that they're also badly documented and you have to find the list of shortcuts by searching for them yourself on the web. I have a memory that way back – possibly not even in Windows 7, but only XP – the calculator included an offline help with all the keyboard shortcuts listed. Nowadays the Windows 10 calculator doesn't include any sort of help at all, not even a link to the online help.
- rightbyte 4y agoI open the full bloody GNU Octave instead. I just timed it. Calculator: 13s Octave GUI: 5s The worst thing is that the calculator pretends to be running after like 2s but is unresponsive.
- ridgered4 4y ago> The worst thing is that the calculator pretends to be running after like 2s but is unresponsive. I can't stand this and it happens in a lot of places. It seems like pure metric chasing. We made it load faster boss. Well, no you can't use it but it yet but you should have been more specific! If I open word doc over the slow VPN Word forces itself to the foreground only to show me a file loading dialog.
- 0cf8612b2e1e 4y agoI will gladly hate on the calculator redesign, but 13 seconds feels like there is some other underlying issue.
- rightbyte 4y agoYe, probably architectural problem that somehow surfaces on my work laptop. I googled abit and there seems to be people that have problem with load time of these system UWP apps. "I just tested out the calculator again. Took 7 seconds to be usable."
- IIsi50MHz 4y ago> Almost better to use Excel. Ouch! I hope you mean Excel 2010 or earlier; all the later ones are so slow to launch or open document that I tend to leave Excel and files (that I'll need to access quickly) open until something forces a reboot or until I bork Excel's state by QAing or triaging somebody's unfortunate VBA (sometimes even mine, too; shhh!). This remained true on a performant gaming computer while working from home. It was always a delight, remoting into somebody's machine that still had a functional Excel 2010 on it.
- tupac_speedrap 4y agoI hate the slow right click menu too, why is there a forced delay? I think visual design peaked a few years ago and now we are deliberately overcomplicating every piece of UI for no apparent reason.
- rightbyte 4y agoMy favourite scapegoat is the agile dev process. It takes away freedom and agency for devs which makes small things also suck where mainly complex things needing multiple programmers did without agile. Since agile is so process heavy. I imagine there are no dev owner of calc.exe anymore at MS. They ruined paint.exe too btw.
- layer8 4y agoI always install tne old calculator: https://win7games.com/#calc https://win7games.com/#calc
- TremendousJudge 4y agoThat site is an amazing resource, thank you. I was having trouble finding a solitaire for my grandfather's new laptop
- layer8 4y agoSee also https://winaero.com/ https://winaero.com/ for general Windows UI tweaking.
- rightbyte 4y agoTy. It is depressing to read that list actually. Windows felt so much more fresh with those innocent apps like Minesweeper and Paint. "Microsoft has removed the classic calculator app starting in Windows 10 and replaced it with a new UWP app that receives updates from the Store." Ah I see. Remote code execution. Maybe it was a Store update that broke it for me, not Windows update.
- grishka 4y agoI wonder how much improvement can be had by installing an application firewall and restricting everything that doesn't need networking for its primary functionality.
- vladvasiliu 4y agoWouldn't that make things worse? Those applications usually expect to be able to make these calls. So now, instead of lagging once in a while when the home base is having troubles, it will lag all the time.
- tablespoon 4y ago> Wouldn't that make things worse? Those applications usually expect to be able to make these calls. So now, instead of lagging once in a while when the home base is having troubles, it will lag all the time. Not necessarily. The lag may be waiting for the remote server to respond to a request, and the app may move on quickly if it can't open a connection at all. It's not totally uncommon to work totally offline (e.g. on an airplane), so there's a decent chance the test that scenario.
- tdrgabi 4y agoIn my experience, each time a firewall is blocking a connection, you experience it as a timeout, so the app tries to connect and finally times out. Which would take longer. I haven't tried though
- iforgotpassword 4y agoNo, it usually results in an immediate connection refused.
- tsukurimashou 4y agoit won't wait for a timeout if the connection is explicitly dropped by a blocking rule
- 4y ago
- type-r 4y agohappens a bunch on mobile for me too. if I'm on unreliable wifi / cellular, it's easier to go into airplane mode than wait for Spotify to try to complete a remote call when searching my library
- samplatt 4y agoGeneral question for the class... Is there any way to stop this? Is there some entries we can add to the hosts file so that Windows and Office will instantly return as failed, rather than timing out?
- iforgotpassword 4y agoIf you want to put in the effort you can sniff the hostname lookups and if it's done halfway dedicated name, as an entry for 0.0.0.0 to the hosts file.
- A4ET8a8uTh0 4y agoHosts file would be your first way assuming you trust MS to honor that convention. You can always consider using a way that is not reliant on Windows goodwill ( for example, Pihole would allow you to limit various unwanted IPs based on your custom list; technically, your router should be able to do it too, but it varies wildly by mfctr/model ). That said, I am not that familiar with that functionality in Excel and it is not a given that it would fail gracefully if it is actually stopped from calling mothership.
- samplatt 4y agoI've been running a PiHole for a couple of years now and love it. It's hard to go on anyone else's network.
- EVa5I7bHFq9mnYK 4y agoI use W10Privacy. It blocks all MS servers except those needed to get updates and antivirus definitions.
- samplatt 4y agoThat looks like exactly what I was looking for, cheers. Windows auto-identifies the download as a virus, but I see the author has a page about this frustration on the website.
- iforgotpassword 4y agoI guess it's because in web context, it's easier to do web calls async than sync. While it's perfectly possible to do async web calls in something like C++, or at least move stuff to a different thread, people just somehow don't. Maybe out of lazyness since the first Google result was sync, or because lifecycle management is harder if raw pointers are involved, or whatever else.
- kaptainscarlet 4y agoI'm guilty of this. Back when I was writing Java apps using Swing, I'd perform heavy blocking IO operations in button event handlers synchronously. Looking back, I realise how much haram I was committing.
- acdha 4y agoIn some cases I wonder if the Office team had internal coding policies against threading because they aren’t sure about thread safety on some legacy structures. I remember reporting the issues Outlook had blocking UI waiting on network calls in the Office 97 beta (oh, was I an optimistic teenager) and multiple decades later that’s still affecting users.
- fluoridation 4y agoIt's because the default program structure in C and C++ makes functions blocking, with the caller assuming that if the callee returned it completed. Jamming a non-blocking program structure smack in the middle of a blocking system is never pretty, and most people prefer not to deal with the additional complexity. For the same reason, even though Windows has overlapped IO and other asynchronous IO mechanisms, most people prefer to use the synchronous functions.
- iforgotpassword 4y agoFor disk IO you usually get away with it, especially now with SSDs. For networking you don't even have to use overlapped IO, sockets can be used with window messages, winhttp can be used async, etc. I think "it's more involved" is a really shitty excuse, especially if we're talking about a Microsoft product, not some obscure shareware software a guy is developing in his shed in the middle of nowhere.
- barbazoo 4y agoThat exchange with the Microsoft support account is just such a facepalm.
- kevincox 4y agoThis is actually one of the things that I appreciate from React. Because the view is synchronous you need to explicitly bail out on loading states (`return <ProgressSpinner/>`). In general you are presented the option to do something while the async work is running and other parts of the UI almost always work.
- albrewer 4y agoThe option exists in C# / WPF, too, so not handling it and just blocking the main thread is bad programming.