A few days ago Teams got insanely slow when I was writing a comment on a Planner task. I ran a profiler and it seems like it was running some kind of sanitizer for every key press and that each call took over a second. They also seemed to get slower the more of them were queued up. Typing a sentence (blindly) would freeze the whole app for about five minutes before doing the first draw.
They have a monopoly. The quality of their products has become irrelevant to the short-term well-being of their stock, which is all that matters in our hyper-financialized economy.
The whole software world is writing shit software now. Microsoft, Google, Facebook, Amazon. Apple seems more immune but I don't use their products so I can't say for certain.
Despite arguably not having a monopoly, the competition is still just as bad so they get away with it. The entire society has forgotten how to make good software.
The industry managed to convince people that they are just bad at using computers, and when everything is slow and buggy then that’s what people expect.
And Apple is not immune but my impression is that they have more issues with intermittent bugs & annoyances and less with performance or overall stability.
I don't agree at all and have pretty extensive experience from writing different kinds of software professionally in different companies to back that up.
Most software out there has very little to do with algorithms, and the problems with it couldn't be solved algorithmically.
I'd place most of the blame at the feet of modern agile tbh (as practiced by the majority of actual software companies). it makes you pay the cost of agile (so much communication) and makes worse products than waterfall, because now nobody ever has the whole context when writing something. you have to focus on the tiny little ticket you've been given or face the wrath of the team and having to defend your decision to work on something else.
Once upon a time someone showed me an amazing demo of streaming over a million rows a second into a table in HTML.
I told him that was cool. I asked him where the screen was that could draw a million rows, and after my confusion was sorted it turned out there wasn't one and I probably should have guessed as much. The screen was a regular screen and could only display 60 or so rows legibly and that is life, so the other million (minus 60) were streaming "invisibly" into the bitbucket that was maybe the user will scroll this into view within the next second before the data is going to change again, but almost certainly won't, because well, a million a second is actually quite a lot.
So I thought for a minute and asked him why he didn't just send 60 and he quickly said well that wouldn't be as fast.
I don't know man, I really feel the difference when natively scrolling in a webpage that has everything rendered already, vs things that load and change as you scroll. I have a free-flying scrollwheel. Native feels much better, faster and responsive.
They've got a good trick: Send the velocity of the scrollwheel instead of what the client thinks its y-position is. Fast mice can give this to you at 100hz, but most USB mice are delivering data much slower. Remember the server knows what time it is and what the RTT is so it can compute the correct row number and send frames at frequency.
You can also send a little bit more than 60 lines to help hide the latency at the start of scroll, and if you need more you're probably scrolling so fast you wouldn't notice some deliberate motion blur.
I guarantee if the server can send a million rows a second, it can definitely receive one sample and send 100 rows 100 times a second no problem, and you know what? You can also scale that down under less-than-ideal network conditions trivially helping those users who would absolutely prefer to get the result on the screen faster once they've stopped scrolling than to be waiting for TCP buffers to uncork.
Post goes to a really roundabout way of finding whether the function is quadratic.
The civilized way of finding whether an unknown function is quadratic is to do a log-log plot; first verifying that it's a straight line, and then finding the slope of the line. If it's not a straight line, it's not of the form f(x) = x^n.
This works as as log(x^n) = n log x
If we also plot the x-axis with a logarithm, any polynomial will just be a straight line with the slope of n.
> Expected behavior: Explorer should rearrange the icons so that the conform to the new desktop layout and it should do this in no more than half a second.
He was talking about thousands of icons, half a second would still be overly excessive, that should be milliseconds at most
The article doesn't mention it, and a comment poses the same question, but does this still happen if you have "Auto arrange icons" and "Align icons to grid" disabled?
A few days ago Teams got insanely slow when I was writing a comment on a Planner task. I ran a profiler and it seems like it was running some kind of sanitizer for every key press and that each call took over a second. They also seemed to get slower the more of them were queued up. Typing a sentence (blindly) would freeze the whole app for about five minutes before doing the first draw.
What's up with Microsoft these days?
They love open source so much they'll push you towards it
They have a monopoly. The quality of their products has become irrelevant to the short-term well-being of their stock, which is all that matters in our hyper-financialized economy.
The whole software world is writing shit software now. Microsoft, Google, Facebook, Amazon. Apple seems more immune but I don't use their products so I can't say for certain.
Despite arguably not having a monopoly, the competition is still just as bad so they get away with it. The entire society has forgotten how to make good software.
The industry managed to convince people that they are just bad at using computers, and when everything is slow and buggy then that’s what people expect.
And Apple is not immune but my impression is that they have more issues with intermittent bugs & annoyances and less with performance or overall stability.
People who only learn leetcode are designing everything, it seems
I feel like this is the one type of thing grinding leetcode would prevent.
I'd say most skills needed to create quality software have very little to do with algorithms.
This kind of thinking is what got us where we are.
I don't agree at all and have pretty extensive experience from writing different kinds of software professionally in different companies to back that up.
Most software out there has very little to do with algorithms, and the problems with it couldn't be solved algorithmically.
Cutting corners for profits is the big issue.
I think it depends heavily on the software.
Agreed, I'm talking about most of it, I realize there are obscure corners where it's all about algorithms.
I'd place most of the blame at the feet of modern agile tbh (as practiced by the majority of actual software companies). it makes you pay the cost of agile (so much communication) and makes worse products than waterfall, because now nobody ever has the whole context when writing something. you have to focus on the tiny little ticket you've been given or face the wrath of the team and having to defend your decision to work on something else.
Once upon a time someone showed me an amazing demo of streaming over a million rows a second into a table in HTML.
I told him that was cool. I asked him where the screen was that could draw a million rows, and after my confusion was sorted it turned out there wasn't one and I probably should have guessed as much. The screen was a regular screen and could only display 60 or so rows legibly and that is life, so the other million (minus 60) were streaming "invisibly" into the bitbucket that was maybe the user will scroll this into view within the next second before the data is going to change again, but almost certainly won't, because well, a million a second is actually quite a lot.
So I thought for a minute and asked him why he didn't just send 60 and he quickly said well that wouldn't be as fast.
And I still think about that.
I don't know man, I really feel the difference when natively scrolling in a webpage that has everything rendered already, vs things that load and change as you scroll. I have a free-flying scrollwheel. Native feels much better, faster and responsive.
Do you play video games?
They've got a good trick: Send the velocity of the scrollwheel instead of what the client thinks its y-position is. Fast mice can give this to you at 100hz, but most USB mice are delivering data much slower. Remember the server knows what time it is and what the RTT is so it can compute the correct row number and send frames at frequency.
You can also send a little bit more than 60 lines to help hide the latency at the start of scroll, and if you need more you're probably scrolling so fast you wouldn't notice some deliberate motion blur.
I guarantee if the server can send a million rows a second, it can definitely receive one sample and send 100 rows 100 times a second no problem, and you know what? You can also scale that down under less-than-ideal network conditions trivially helping those users who would absolutely prefer to get the result on the screen faster once they've stopped scrolling than to be waiting for TCP buffers to uncork.
Like I said, I still think about this...
Post goes to a really roundabout way of finding whether the function is quadratic.
The civilized way of finding whether an unknown function is quadratic is to do a log-log plot; first verifying that it's a straight line, and then finding the slope of the line. If it's not a straight line, it's not of the form f(x) = x^n.
This works as as log(x^n) = n log x
If we also plot the x-axis with a logarithm, any polynomial will just be a straight line with the slope of n.
> Expected behavior: Explorer should rearrange the icons so that the conform to the new desktop layout and it should do this in no more than half a second.
He was talking about thousands of icons, half a second would still be overly excessive, that should be milliseconds at most
(2021)
Pretty sure I've seen this on HN at least once before.
Probably this discussion in 2021? (376 points, 111 comments) https://news.ycombinator.com/item?id=26152335
> quadratic.. are unacceptably slow for most real-world problems
Earley parser quietly smoking, and looking away
In many cases Earley parsers are linear though.
The article doesn't mention it, and a comment poses the same question, but does this still happen if you have "Auto arrange icons" and "Align icons to grid" disabled?