looklookatme
Do you have any insights into why this is the case? What areas of simulation or tooling are difficult to work with?
Disclaimer: I'm on the Havok team and worked on the Babylon.JS integration.
I spend an enormous amount of time _reading_ code and I want to move up and down quite a lot, but C-U/C-D move too fast (losing mental context) and C-E/C-Y are too slow and RSI-inducing; the wheel very easily allows you to encode an additional "velocity" dimension that the keyboard simply doesn't have.
When reading code, the mouse also allows you to navigate reasonably effectively using only one hand, leaving the other hand free for sipping coffee and taking notes.
> Why can't the W-'s kinetic energy be smaller...
That W- is a virtual particle - it can have any energy (according to some probability distribution) and you're correct that it doesn't _have_ to observe conservation of energy as long as that violation only happens for a very short period of time, which is precisely Heisenberg - there are other numbers it must conserve, such as electric charge.
> (b) quantum uncertainty (Heisenberg, tunneling, etc.) should still mean that bound neutrons should still decay once in a while
We do see this; this is what beta decay is.
> (c) a neutron next to a proton might randomly "swap" places once in a while
In general, this is correct. With limitations on what quantum numbers need to be conserved, these events are all constantly happening all the time. When writing out the equations for the system, you don't really have a term describing a proton and a term describing a neutron; you have a complicated mess of _all possible_ interactions and each elementary particle is described as a sort of "mix" of all the things it could be. So, in that sense, a bound neutron and proton is it's own thing - there's plenty of examples of these quasiparticles throughout physics and the definition of "stable" is quite application specific.
Inside the free neutron, that's what happens, too. A down quark interacts with a W- to transform itself into an up quark; the neutron is now a proton, with the W- carrying away some of the mass and electric charge.
However, neutrons and protons are more complex than just quarks. They're also big bundles of gluons, exchanging colour charge amongst each other. These gluons have mass and you need energy to create them. They actually account for most of the mass of a neutron/proton. A bound neutron and proton are exchanging these gluons amongst each other, too.
Suppose you had a bound neutron and proton. If the neutron were to decay into a proton, the electric charge of the particles (now both +1) would cause them to repel; you can imagine either of two things might happen: the protons will now move apart _or_ they'll stick together. In the former, you need kinetic energy and in the latter, you're going to need more gluons to hold the whole thing together. Both of those cases requires more energy (==mass) than the neutron would "lose" by converting to a proton.
So, if you can imagine the potential energy landscape, the bound neutron is at a local minimum (lower than a free neutron)
Do you have any tips or resources on how to get to a competency level where you get to decode arbitrary digital signals you find from a scan?
I've read through all the GNU Radio documentation, along with the examples on their wiki and have even written my own blocks but keep finding that opening a grc file that someone else authored, there will be a critical block I've never seen before (and likely, never see again) which hampers experimentation. As soon as I attempt to decode a real-life signal, it feels like I dove in too fast -- there's too many unknowns, since the end result is [presumably] not going to be a nice, human-readable string. However, occasionally, I find challenges like [1] which are great, since you have the expectation that the signal _can_ be decoded; it's just that I've found examples like these to be quite rare.
[1] https://www.gnuradio.org/blog/2018-02-21-gnu-radio-challenge...
Obviously, auto-correct mitigates this somewhat but for the amount of frustration and lost time, I'm betting it's probably worthwhile just purchasing a new keyboard.
Normally, when using auto-indent/smart-indent, pressing '#' on a blank line will change the column to zero, deleting any existing whitespace. By typing a character and deleting it, you override this behavior, allowing you to have comments at the same indentation level as the rest of the code.