In 2d electromagnetism splits light waves into TE and TM modes that don't couple to each others (until you add a dielectric). That is unusual to our 3d picture, but doesn't break electromagnetics.
And the generalization of the cross product, the wedge product works just fine in 2d. If you take the wedge of two 1-forms (vectors) in 2d you get a 2-form. In 3d that is equivalent to a (3-2)-form or in other words a (pseudo-)vector. In 2d you get a (2-2)-form or in other words a pseudo-scalar 0-form. That is of course nothing but the z component of the resulting pseudo-vector if you had done it in 3d. So EM in 2d might get flat landers started on weird group theory a bit early, but it is not fundamentally incompatible with life.
Magnetism doesn't use a cross product; it uses a wedge product[0]. It generalizes perfectly well to 2d, you just have <<xy>> instead of <<xy,xz,yz>>, just like you have <x,y> instead of <x,y,z>.
Edit: the reason 2d doesn't have a cross product is because you can no longer misinterpret a bivector <<xy,xz,yz>> as a (1-)vector <yz,xz,xy> by confusing each basis bivector with the basis vector[1] orthogonal to it.
1: Actually one of the two (positive or negative) possible basis vectors; this is why cross products have a right-hand-rule versus left-hand-rule ambiguity.
Maxwell did not use a cross product in his original publications. In fact, the development of the cross product was a response to the longer (quaternion based) formulation of electromagnetism equations at the time.
I'm confused by GP's reasoning. Is it valid to assume that since we have an equation that requires three dimensions to show how a force reacts, that if you remove a dimension that force doesn't exist?
Isn't it just as possible that there's a different equation for how that force would work in two dimensions (or to assume our current equation is a specialized version of a general equation that works in all dimensions)?
It just seems rather odd to assume that since our understanding doesn't extend to a circumstance that means something is impossible there. Or is there some aspect of this I'm missing?
Edit: Perhaps I was misinterpreting the GP contextually. Maybe they were just asking if we have an equation for it, rather than questioning how it could exist.
It's a bit complex for a comment, but electromagnetism defined in terms of differential forms generalizes nicely to all dimensions. There certainly is a 2+1D electromagnetism.
Aren't they meant to be solid masses with particular collision properties? In which case showing how they collide seems to me exactly want you'd want to show.
EDIT - I just watched it with sound. I suspect you didn't and misunderstood the subject matter.
One example is if suddenly you would require to inherit from the same object multiple times. Example - if you have a "team" object, you might at first inherit it from a list/set (as a team could be a list of members). However, later down the line, you might also want to model backups for your team. You can't inherit from list/set again, so what are you going to do? It it much cleaner in general to avoid inheritance as much as possible and only modelling the data as internal, not publicly-accessible state (by composing smaller state objects). Inheritance on the other hand (in most languages), can make your data model more visible from the outside.
This isn't to say there aren't valid use cases for inheritance (eg. runtime polymorphism), though if something can be accomplished through composition, it's usually the better approach as it only modifies inner details of an object, and not the external interface (of which the inherited classes are part).
The most certainty you are going to get is by taking an open source processor core, and run it on an FPGA with an open toolchain. You won't be able to check the actual FPGA chip, though the risk seems minimal on that front compared to ASICs with the ISA baked in.
You will pay dearly in cost, performance and pretty much every other metric that you care about though.
There's something that's unsatisfying about most of these examples which is that a sane person wouldn't write code that multiplies two objects and throws away the result, so people might think that if you added extra constraints to prevent depending on silly side effects, the issue would go away. This is definitely false, but it's not exactly obvious if you don't think about it too hard... I wish people actually paid attention to it when constructing counterexamples.
So, for anyone else feeling similarly unsatisfied, here's another example that might be more satisfying in that respect:
y = f(g<T, U>(x));
In conjunction with the fact that templates are already Turing-complete, we can see that detecting whether this is a call to a templated g or two comparisons is a Turing-complete question.
Also notice a similar parsing issue arises in C# as well, but I don't think generics there can be used to perform Turing-complete computation... though not sure.
You can use generics and overload resolution to solve satisfiability problems in C# and Java. But not in the way like templates in C++ allow for compile-time computation.
But you can very easily get the AST.
Obviously it may happen that you have to wait until the hell is frozen to get a result, but generally it doesn’t happen in code that you see day to day..
Though it might finally do away with the ever-persisting Windows error messages about "this file is already open" followed by a search through all of the processes that might have it open to terminate the offender.
That error is orthogonal to the filesystem in use. Every OS that provides exclusive locking, regardless of filesystem, will return an error if more than one process wants to acquire such a lock.
> Every OS that provides exclusive locking, regardless of filesystem, will return an error if more than one process wants to acquire such a lock.
Obviously.
The super annoying thing is when the OS doesn't try to tell you which process(es) keeps it open and doesn't even ship with built in tooling to let you find out on your own.
Certainly not a sensible solution like having a dialog button that gives you all the relevant information immediately and empowers you to solve the problem without a goose chase.
The way filesystem locking works on Windows is an intentional decision and not an NTFS thing. It's there for a good reason even if it's inconvenient. The alternative has some real downsides. "Two CMD windows have the same CWD but are showing different folders" is not a user-friendly experience.
I bet pretty much every Windows user would trade confusing command prompts in strange circumstances for not having to reboot for pretty much every single Windows Update (due to it being unable to update files that are in use)
It would be horrendous to even try to troubleshoot a system with a dozen different version of OS DLLs loaded because the system had not been rebooted for a dozen patches.
Or, imagine every copy of Word you have running is using a different set of binaries.
Yes, but you can't install a LIDAR over a software update. They've been promising full self-driving mode and getting closer by updating the software - the owners that already have the current car won't be to thrilled if they get cut-off from the state-of-the-art in Tesla's self-driving tech.
... particularly since they were charged up to three or five thousand dollars more for Elon's "promise" that some day (apparently this year) it will be available...
I've attempted to run it (not with this latest release yet though) and it appeared as if calling a numpy function essentially disabled the JIT for that function, which was not acceptable for us at that point. What did seem to help curiously was wrapping the numpy function in a python function and then calling that, which seemed to prevent the JIT being disabled in the calling function.
Some NICs are able to dump data directly into the (L3) cache (DDIO on Intel), so either the L3 will have to be encrypted or the IOMMU needs to contain the crypto functionality.
Or maybe the kernel would have to except some memory for MMIO from being encrypted. That way the PCIe bus gets access to the memory without needing the keys but also can't read what it shouldn't.
AIUI Intel TME sits in the memory controller, same for MKTME. Therefore memory protection as usual protects access, and any read/write requests made to the IMC will have it use the correct keys for en/decryption. The IMC doesn't care/tell where those requests came from.