10 ms·
It's a bit scary to see that one of the highest-voted answers to this question (188 points) is completely wrong. It says that the (0,0) hotspot simplified the c
by Stratoscope 3y ago
It's a bit scary to see that one of the highest-voted answers to this question (188 points) is completely wrong. It says that the (0,0) hotspot simplified the calculations for a cursor position update, because you didn't have to add any (X,Y) offset.
https://ux.stackexchange.com/a/52349/43259 https://ux.stackexchange.com/a/52349/43259
The problem with this idea is that the arrow pointer was never the only cursor. On the first Macintosh, there were many others including the text I-beam and a couple of kinds of crosshairs. And you could define any cursor of your own by providing a bitmap and transparency mask and the hotspot position.
You can see some of these cursors in the original Inside Macintosh Volume I and also in previous works from PARC.
https://web.archive.org/web/20230114223619/https://vintageapple.org/inside_o/pdf/Inside_Macintosh_Volume_I_1985.pdf https://web.archive.org/web/20230114223619/https://vintageap...
Page 50 of the PDF (page I-38 of the document) shows some sample cursors.
Page 158 of the PDF (page I-146 of the document) has the pixel detail and hotspot locations for several cursors.
Fun fact! The hotspot for the arrow cursor was not (0,0) but was (1,1).
Can anyone explain why? I think I used to know, but it has long since escaped my memory and I would appreciate a refresher.
This page also has the definition of the Cursor structure:
TYPE Bits16 = Array[0..15] OF INTEGER;
Cursor = RECORD
data: Bits16; {cursor image}
mask: Bits16; {cursor mask}
hotSpot: Point; {point aligned with mouse}
END;
Point is defined on page I-139 and is more or less what you would expect, a pair of vertical and horizontal coordinates.
To be clear, the scary part is not that someone came up with the idea that (0,0) saved a few instructions. In fact, the notion came up elsewhere in this HN discussion. It's a perfectly reasonable hypothesis, until you realize that there are many cursor shapes that require different hotspots.
The scary part is that 188 people upvoted this answer!
- zb 3y agoThe arrow has a white outline around it, so the hotspot is at the tip of the black arrow, at (1,1).
- reddalo 3y agoAnd if I'm not wrong, it still applies to today's Mac interface. The cursor still has a white outline all around.
- cqqxo4zV46cp 3y agoYup. You can even customise both the inner and outer colours as an accessibility feature!
- pmarreck 3y agoWhat??? TIL. A lot of the accessibility features are actually neat even to those without the need for them.
- eropple 3y agoYeah, it’s become super useful for me to color code the cursors between my work and personal Macs.
- bombcar 3y agoSeriously. Anyone over the age of about 18 should spend a bit of time going through them, there are many useful things (zoom part of screen is a powerful help on macOS for example).
- Stratoscope 3y agoBingo! Now that you jogged my memory, I can confirm this. The next question is why you need a white outline around the black arrow. This is easy to answer: if you didn't do that, what would the black arrow look like against a black background?
- justsomehnguy 3y agoSome DE solved that by having an inverse outline.
- bmicraft 3y agoI'm pretty sure even on windows there is the option of having the whole cursor be the inverse of the background
- whywhywhywhy 3y agoThe format has a special color for it, you can mix inverse pixels anywhere in a classic windows cursor IIRC
- jsjohnst 3y agoTook me a really long pause to think up what DE meant, so to save others from similar waste “desktop environment”
- kristopolous 3y agoYou can see similar things in the Apple Lisa source code as well: https://info.computerhistory.org/apple-lisa-code https://info.computerhistory.org/apple-lisa-code The linked SO page is a page of complete speculation. History isn't just a bunch of logical thought exercises, it's an assembling of documentation and evidence. As far as I can see, there is no contemporaneous documentation claiming intentionality so the question remains unanswered. A smoking gun would be a file with a name like cursor.bitmap or some code like "declare cursor_default = [ [ 1, 0 ... ] ];" from a major source (ms/xerox/apple) say, pre-1988 or so, with some comment above it explaining the rationale of why that cursor style in particular. I'd even accept a more minor source like Acorn, Digital Research, Quarterdeck, NeWS, VisiOn or MIT Athena (X). Finding something that talks about say, lightpens and then defends the mouse cursor style in that way is working backwards from a hypothesis. It's weak and doesn't preclude other possibilities. Let's be rigorous and get it right.
- Stratoscope 3y ago> A smoking gun would be a file with a name like cursor.bitmap or some code like "declare cursor_default = [ [ 1, 0 ... ] ];" from a major source (ms/xerox/apple) say, pre-1988 or so, with some comment above it explaining the rationale of why that cursor style in particular. The Inside Macintosh pages from 1985 I cited above may be what you're looking for. Especially page 158 (I-146). It doesn't give a longwinded rationale of why you need an X/Y hotspot offset, it does much better than that. It shows you several cursors with their hotspots, so you can see why a hotspot is needed. And it lists the data structure to support it.
- kragen 3y agobut that is 4 years later than the xerox optical mouse tech report, and from a different company which copied their default mouse pointer style from xerox. it doesn't bear on the question of whether xerox was implementing cursors without hotspot coordinates at the time that they adopted the left-leaning shape (i suspect xerox mouse cursors always had variable hotspot coordinates because it's, what, six microseconds extra in the screen update to subtract them? and i think smalltalk-76 mouse cursors have hotspots. but 01988 or even 01985 is way too late)
- jfk13 3y ago> The hotspot for the arrow cursor was not (0,0) but was (1,1). > Can anyone explain why? My assumption (not having an old Mac or documentation to confirm it...) is that the tip of the cursor had to be at (1, 1) to allow for a pixel's worth of mask around the outer edge of the tip.
- baxuz 3y agoI was just about to say that. There's an amazing video by Posy documenting mouse cursor history, and even provides his own cursor pack: https://www.youtube.com/watch?v=YThelfB2fvg https://www.youtube.com/watch?v=YThelfB2fvg http://www.michieldb.nl/other/cursors/ http://www.michieldb.nl/other/cursors/
- speff 3y agoIt's only scary at the beginning. Then you get used to it. Every single social media site - including HN - has uninformed people agreeing that a correct-sounding answer must be right. My friend the tax accountant gets downvoted for clarifying how taxes actually work. My wife the linguist gets downvotes for explaining no that's not how language works. It's not scary - it's typical.
- jodrellblank 3y ago[flagged]
- speff 3y agoTo be honest, I was debating on even posting my message initially. It was off topic but I figured it would've been ignored. If I knew it was going to derail the discussion about Stratoscope's analysis that much, I wouldn't've posted it. Edit: Also grammar nazi'ing has little to do with linguistics and more to do with being a jerk...usually.
- tcgv 3y agoIt is the Gell-Mann Amnesia effect, but on social media: > The phenomenon of people trusting newspapers for topics which they are not knowledgeable about, despite recognizing them to be extremely inaccurate on certain topics which they are knowledgeable about.
- spicyusername 3y agoIs it not possible to be both scary and typical?
- 0ckpuppet 3y agowhoe political movements are built on this kind of momentum
- deadbabe 3y agoHackernews is similar to ChatGPT in that regard. Lots of correct sounding answers that are really just a word salad.
- sobellian 3y agoThe second-highest answer is an incorrect just-so myth. It even includes a screenshot of the historically correct answer!
- jodrellblank 3y agoAs you said ten years ago https://news.ycombinator.com/item?id=7253841 https://news.ycombinator.com/item?id=7253841 The scary part is that you will likely be saying it again in another ten years and again and then you’ll die as “that weird cursor offset obsessed fanatic”.
- bombcar 3y agoWouldn’t be hard to get a cursor engraved on a tombstone. “Returned to origin (1,1)”.
- glitchc 3y ago> Fun fact! The hotspot for the arrow cursor was not (0,0) but was (1,1). Perhaps it's because cursors have a one pixel wide black border around them to enhance contrast, but users associate the cursor's position with the first bit of white (or color) at the tip. (0,0) is colored black for a typical cursor. Edit: ninja'ed further down.
- dukeofdoom 3y agoI think you touched on a wider problem. Peoples shallow understanding of the world, translates to a shallow world view and policies. It's kind of scary to me how much my high school sociology class, group projects, became political policy decades later. Simplistic reductions, when in real life even unclogging a toilet can have complictated steps, nuanced decisions, and many caveats.
- fsckboy 3y ago>the arrow pointer was never the only cursor. On the first Macintosh the first macintosh was very late to the party, there had already been GUI cursors for about a decade at PARC, and cursor styles had settled down to some standards. in the early days of GUI cursors on relatively low resolution displays (by today's standards), an important issue was to reduce the amount of calculation and squinting the human had to do to identify the hotspot so you could accurately select/swipe what you wanted to. the tilted arrow cursor points right at its hotspot quite effectively even if the tip pixel is blurred, as does the i-beam (whose vertical offset is not as important to know accurately) the five fingered hand for moving bulk selections also does not require accurate placement, although I think the hotspot is at the end of a finger. early GUIs let you edit your own cursors and hotspots.
- lupire 3y agoI was hoping that it would be lower than 188 when I clicked. It's not. (196):-(
- teaearlgraycold 3y agoIt’s obviously wrong, to me, because of how little latency performing two additions would actually add to the system.
- endgame 3y agoIt drives me up the wall! Permit me a digression: so much has been written about the early FPS era, but discussions of rocket jumping often skip straight to Quake and omit Rise of the Triad, despite rocket jumping being necessary to complete the game! ROTT's shareware release was the same day as Marathon, another game that does come up in these discussions.
- Doxin 3y agoAs I understand it the cursor angles are mostly a function of cursors originally being pixel art. In pixel art you need nice integer ratios to your angles or the line starts looking wobbly. If you then design your cursor to be nice and pointy so it doesn't obscure the thing you're trying to click too much you end up with two angles where if you bisect them you're no longer at an integer ratio angle. So some fudging for the cursor tail is required. Of course these days cursors are generally high resolution vector art, so none of the integer ratio angle concerns apply, but I assume most vector cursors originally got traced from their pixel predecessors. This is all from memory and I was quite young back when any of this was relevant, so caveat emptor.