Ahhhhh. Thanks man. And totally nerding out here because YES. ANIMATIONS. Animations is why I fell in love with wanting to learn D3 in 2019. You can do things as you transition between data steps, that honestly, has been such a pain in the behind to try with anything else. I'm not a web developer. I'm a data guy.
Speaking of animations, I used D3 to build my first web video game, a little match-3 game: https://fwip.github.io/colormatch/
The whole game board is a single SVG.
It clearly has some bugs (like the score sometimes being NaN - no idea how I messed that up), but I haven't touched the code in over a decade, so it's a little time capsule.
Yaaasss. I think of it as being able to use a pencil to draw charts (and do creative stuff like Florence Nightingale's original polar area graph), instead of having a stencil that can draw things for you. It's a way to visually manipulate the DOM in a way if you're comfortable with data.
You can simply just use Tableau or Power BI and take screenshots otherwise.
Uh, there are arrow operators in JS. D3.JS in Action Third Edition exclusively uses arrow operators.
(Trust me. I don't know jack about JavaScript, I had to get through the MDN docs to understand what they were, and once I did, made a whole lot more sense).
The feature the person you're replying to is talking about is not arrow functions (`=>`), but what are called "threading macros" in other languages. In Clojure[1], the main one is named `->` and used as a way to thread a value through a series of functions that take it as a first argument, using the return value from the first function as the first argument to the second, and so on. It allows you to compose a series of plain functions to transform a value instead of (stateful) method chaining or nesting functions.
JS does not have a straightforward equivalent. The old and deprecated `with` keyword might seem similar but it's only a surface resemblance as it does not perform the return-value threading that makes the above pattern useful, it was meant for methods that mutate object state. There's a TC39 proposal[2] to add a pipe operator that would accomplish a similar thing to threading macros via an infix operator but it's still a draft.
Agreed. I fudged quite a lot in my post to make it accessible to the layman. Triee to explain to a UX designer I know that "D3 is a library for JavaScript that..." And I saw their brain switch off live in front of me.
This is very fair: I went for a metaphorical explanation, rather than a literal one. (For instance, I'd actually have had to write down the code for an SVG, and I was quickly writing this on my lunch break).
The `.selectAll().data().join()` data binding method (or `.enter()` on older versions) is very intuitive once you understand it, but for the layman coming in, it's inaccessible AF. I fudged a little in my explanation to make it more accessible. But hey. That's learning.
For sure, data joining (and enter/exit) is arguably the learning curve wrt D3. TBH since I've started using FE frameworks which handle the DOM, d3-selection (and having to think about data binding) has almost completely fallen off my radar. Now it's mostly using functions from d3-scale, d3-geo, d3-shape, etc then mapping over that output to manually render DOM nodes.
"The survey was designed to search for bodies with orbits that extend far above and below the plane of the Earth's orbit around the sun, part of the outer solar system that hasn’t been well-studied."
Christ. I didn't realise we hadn't looked at stuff not in Earth's plane. That's a tonne of space to explore, right in our own backyard.
Sun's rotation over time sort of aligns everything on that plane (or maintains momentum from accretion disk), galaxies are mostly also in disc forms. Pluto is a bit of an outlier, I wonder if due to some ancient collision or some other force.
So yes its a vast space (2D -> 3D), but should be rather empty no?
JWST has already challenged a lot of our perceived notions about the cosmos. Always worth checking more thoroughly and reexamining our theories as technology advances.
AFAICT most of the systems we've found with >1 exoplanet resemble our own system, where the planets are moving in roughly the same plane. If you look at this catalogue [0], the "i" value refers to the inclination of the orbit as viewed from Earth, since the parent star's rotation is often unknown. Still, it can be used to compare planets with others in the same system.
The closest I can find to your claim is some stuff from 2010 [1] (many exoplanet discoveries ago) claiming that a significant portion of "hot jupiter" setups are weird.
One theory is that interactions and collisions (all scales: gas, dust, comet, planet) are what cause the participants to align in the direction of the original net angular momentum, and the Oort cloud is just too sparse to that have happened as much.
Oort dust clumped up to comet-size objects for sure, but that tended to happen for the particles that were already roughly in the same orbit. Looking at all orbits in the Oort cloud, they remained more random.