3 ms·
This is a horrible and yet not unexpected insight into the internals of Excel
by urbandw311er 4mo ago
This is a horrible and yet not unexpected insight into the internals of Excel
- Taniwha 4mo agoTo be fair this was Excell 25 years ago, may no longer be true. One of the other bugs (the Quark/ATM one) was also because of the programmers were worried about writing over stuff that hadn't been completely erased, the Quark guys wrote a string with 2 spaces at the end through a box that masked the end of the string, the ATM font renderer saw it couldn't fit the text so it split it in half and tried again so it drew N/2 N/4 N/8 ... strings. It spent all it's time in the 68k's multiply instructions figuring out how wide the strings (and substrings) were, our fancy 24-bit character rendering hardware was an afterthought
- sidewndr46 4mo agoNowadays Excel is a webapp that reflows the entire DOM 400 times per keystroke!
- bathtub365 4mo agoIn all of the software you’ve written, are you aware of how many on-screen pixels you’ve overdrawn?
- trelbutate 4mo ago> To be fair excel would erase places white that it wanted to write up to 9 times before it drew any black pixels I feel like I'm having a stroke trying to read this, what does it mean??
- sixeyes 4mo agobefore writing to some area, it would erase it (clearing with white) up to 9 times
- NSUserDefaults 4mo agoSeveral layers of white is what makes the black really pop. (Just kidding).
- b112 4mo agoIt means they were time travellers! Secretly, they came from an alternate future where everyone used e-ink displays, and wanted Excel to be ready!
- Taniwha 4mo agoWell all they needed to do was erase the screen with white and draw on it, but their app's internal logic meant that they erased it more than once. I was capturing QuickDraw library calls - the low level graphics primitives, to figure out where the graphics time in apps was going and found out sometimes excel did it 9 times Of course users didn't see it more than once, but our hardware made all that wasted time run faster
- HansHamster 4mo agoMaybe their CRTs had horrible burn-in and they had to erase everything 9 times before it was gone...
- canucker2016 4mo agoIt's more likely that one dev wrote the draw-cell code. Another dev who's fixing a bug, realizes if they call a certain function either directly or indirectly, their particular bug gets fixed. Oh, and as a side effect, the cell gets erased (again). A few more fixes/new features added like this and the code is inadvertently erasing the same cell multiple times. It takes a certain type of dev to step through in a debugger and Notice the app is doing way too much work and then to untangle the mess of code without causing regressions.
- _shantaram 4mo agoI think it could call (their equivalent of) clearRect up to 9 times on an already cleared region before drawing there?
- layer8 4mo agoIt’s necessary for erasing cat pixels.
- Xirdus 4mo agoThere's a good chance it was Excel's workaround for some other GPU's buggy behavior.
- Taniwha 4mo agothere were no GPUs at that time. What we were building in the late 80s/early 90s were the first generation of Mac graphics accelerators, really just glorified blit engines, a class of things that eventually grew into what we now call GPUs as people started to push CPUs into them
- Xirdus 4mo agoI see. I took "early/mid 90s" literally and thought you mean like 1991 through 1995, inclusive.