Yes! But for me it's very rare (< 1/yr) and I'm like a kid in a toy store every time I get to bust it out. My employer uses squash commits so that's not a problem for us, but you're right that commits far enough back will be unlikely to be in a buildable state.
It's working now (8.8.8.8) but definitely wasn't earlier. The substack subscribe popover says it was launched 5 hours ago (which seems odd since hn has links from 36 days ago and whois says it was registered 2 years ago) but maybe that's got something to do with it.
+1 on making video better. The janky video feature feels like such an afterthought compared to the impeccable screensharing/pairing feature. I've had to resort to using Tuple with Zoom just for the video sometimes because the webcam freezes for no reason.
I'll also offer one related piece of feedback: the "calling" metaphor for initiating a session is quite awkward. Compared to Zoom, where you share a link/code once and then you're free to join/leave the room, in Tuple you have to ask the other person to call you every time you drop; this in particular does not play well with the forced version upgrades -- you ask the other person to call you out-of-band, and you answer, except oops, you need to upgrade Tuple, so you upgrade and restart Tuple, and now Tuple has forgotten about the last call so now you have to ask the other person to call you out-of-band again! This is a UX wart that I'd love to see fixed!
It does read a bit absurd with the over-the-top proper nouns, but this being the author's description of their past beliefs led me to interpret this as their being self-critical about the less nuanced opinions they once held about their lifestyle, rather than seriously looking down their nose at the people who have chosen a different lifestyle.
I assume it's doing `(N-2)(N-3)/2 + 2N - 3` instead of `N(N-1)/2` due to overflow concerns? But couldn't `(N-2)(N-3)` also possibly overflow, just supporting a larger range of `N`?
In this assembly code it cannot overflow because N is a 32-bit integer and the multiplication gives a 64-bit result, which is converted to 32-bit only after shifting.
I can't figure out why it doesn't use the simpler formula (other than the optimizer being bad).
Just what it sounds like - there are objects in a picture and you need to spot them. You'd get a list of 10 objects(guitar, owl, hamper, etc) and you need to find them in a picture of a room. The objects frequently aren't hidden per se but are just hard to spit because there might be 100 objects in the picture.
At its core, sure, but then imagine taking that and making it the core mechanic of a larger experience, in the way that "moving between tiles and attacking in a direction" is the core of a roguelike.
You can add time pressure; things that only appear once you've found other things; hybridize the mechanics with those of other genres, like adventure-game-like puzzle minigames to combine or use objects; etc.
In some sense, any game where progression is gated by a threshold of gathered collectables—and where the hard part is detecting the collectable, not navigating to or otherwise retrieving the collectable—is a hidden-object game. Pokemon Snap is a hidden-object game—the objects are shot compositions. The Ace Attorney games are hidden-object games—the objects are literal evidence, but then during the trials they're evidence+opportunity pairings. "Hacking" games, where you detect vulnerabilities to exploit, are hidden-object games. Trade-war or Elite type games (i.e. inefficient-market exploitation simulators) are, on an abstract level, hidden-object games. :)
And, of course, games in other genres can employ hidden-object mechanics, too. Platform games have special coins in out-of-the-way locations, where the challenge is just inferring that that was a visitable place to begin with. RPGs have treasure that shows up as little often-hard-to-spot motes of light on the field rather than big obvious chests. Etc.