@lauren First time I ever noticed overlap like that was in Bungie's *Marathon*. They used the most sci-fi generic hydraulic lift sound for big elevators, and it's pretty much everywhere. I think it's even in the first *Alien* movie.
@ocdtrekkie I think they discovered what I mentioned previously: letting people who want to be on the top just pay to be on the top (instead of paying SEO firms to put them at the top) turned out to be a win-win: companies that want to game can pay to play; tech-savvy users can skip the game by scrolling down.
In an ideal world, non-tech-savvy-users win also, but there's an adversarial-actor challenge that makes that difficult---if enough people *stop* clicking on ads, ad spend goes back into SEO spend and we're back to the bad-old days of explicitly-gamed SEO outstripping the engine developers' ability to handle it.
@ocdtrekkie I remember; you shared that document previously.
It's something like two decades old, right? Maybe they were just wrong.
(As a side-note: did the search in DDG for idle curiosity. Lower-density of information; the first organic result is Best Buy and is still way at the bottom of the page. But FWIW, I don't also see a Best Buy ad above it, so maybe DDG is still more ethical?)
@ocdtrekkie Why should a Best Buy organic search result be the best result for "new computer?"
(re-draft): ... as opposed to someone else? Because if the final arbiter for what the answer should be is "What Google says it should be based on their opaque algorithm," incentives are massive to game that algorithm, leading (as we saw in the past) to hard-to-use web pages and a generally bad web experience.
Ads let people who would spend the money on organic SEO spend it on ads instead, leaving the organic algorithm to do its thing. The result is win-win for the end user (modulo abuse, which (a) is something Google actively works to mitigate and (b) would happen in the absence of ads, just via abusers gaming organic search instead).
@ocdtrekkie That'd be the one that doesn't say "Ad" next to it.
@admin @lauren Nothing new there. Measure-countermeasure for keyword matching is older than computers.
The issue is more zero-tolerance than the algorithm, but at scale zero-tolerance is predictable (which is not to say that YouTube having a near-exclusive lock on sharable video hosting isn't a problem).
@urusan Tough problem. This is hardly ideal, but is it possible to break up the group of 10 fields into two or three groups of two or three fields each that are logically near each other and at least replace your 10 argument constructor with building a few substructures and then passing them in?
@SecurityWriter The hardest thing about infosec is promises and expectations mean nothing unless you commit to them and verify them. And that process can be inconvenient, but it's less inconvenient than getting your architecture owned because you had a good plan and then ignored it.
I think there's an analogy here to SLA maintenance. Google purposefully brings down internal systems periodically that exceed their SLA so that they can confirm that catastrophic impact doesn't result if people assume that a 5-9s SLA means "always up." This has resulted in a couple of vacations postponed and in at least one incident I'm aware of some moderate disruption to business as usual as people had to sort out an unexpected cascade failure.
But these outcomes are still considered preferable because without this testing, the cascade failure can happen in a time you don't expect it.
@urusan It really doesn't work for me, but I respect it works for other people.
I get frustrated when I write a bunch of tests mid-development and discover the API is busted and I need to re-work it. Much easier for me to sketch out the API, then a bit of implementation (while I think ahead on how it'll be used), realize there are holes and rework it, *then* write the tests.
OTOH, maybe that just means I'm doing TDD in my head.
@SwiftOnSecurity Biological security works this way too.
There's no one magic tool that the body uses to eliminate a pathogen. It's a defense-in-depth that amounts to "The space inside these walls *hates* you and wants you broken down into your constituent molecules, you *other*."
So I've learned that #Facebook / #Meta discontinued support for Portal by... my relative's Portal no longer allowing alarms to be set.
... As of yesterday.
Especially relative to Google's handling of shutting down #Stadia, this is embarrassing. No fanfare, barely any news, and the product is still advertised on Meta's website (and the built-in dashboard still lists setting alarms as a feature).
Terrible EOL experience and it really puts me off buying any future hardware from Meta.
By far my favorite special operator in #Lisp, `the` `(the value-type form)` is the operator declaring that `form` has type `value-type`, examples `(the number 3)`, `(the string (get-user-name))`.
Naively, one might assume this declares a value has a specific type. That is true, but not the way one might think. The formal definition is that *the program behavior is undefined if the value does NOT have that specific type*.
That definition means a given LISP compiler / interpreter is *allowed* to assert-and-crash if the types mismatch (because crashing is a valid undefined behavior)... But it also acts as an escape hatch for high-performance LISP engines to save resources by throwing the dynamic typing data away. In other words, `(the)` is the "paint this expression red to let the code go faster" special operator. ;)
@t0k To be clear, by "Google was building Trump's wall" we mean "Some third-party vendor chose to use Google Cloud for their tech needs while building a surveillance net along the Southern border."
@mattock Same. I have some students who are just getting started in JS and I don't want to hit them with modules (or my personal professional opinion of "Never use this language and just use TypeScript" ;) ) out of the starting gate.
... although one issue with bare JS is, unfortunately, that when done right (i.e. to hide symbols and create something like modules without modules) it looks goofy.
Teaching functional programming
@liyao I'm always a little surprised at how helpful learning functional programming was for using JavaScript.
As in, "knowing how this works in functional programming makes me understand how busted the original scoping rules are, so I can work around that if I'm stuck not using the modern closure constructs for some reason."
It's like someone handed me a map how how the trail should look that makes it easier to tell where the trail was washed out.
@lauren Oh, I *never* trust that. ;)
There are two flavors of programming anxiety: when all your unit tests break, and when *none* of them break. The latter is often an even stronger indicator that something just went wrong.
Career software engineer living something approximating the dream he had as a kid.