• 10 Posts
  • 129 Comments
Joined 1 year ago
cake
Cake day: June 14th, 2023

help-circle





  • A problem that only affects newbies huh?

    Let’s say that you are writing code intended to be deployed headless in the field, and it should not be allowed to exit in an uncontrolled fashion because there are communications that need to happen with hardware to safely shut them down. You’re making a autonomous robot or something.

    Using python for this task isn’t too out of left field, because one of the major languages of ROS is python, and it’s the most common one.

    Which of the following python standard library functions can throw, and what do they throw?

    bytes, hasattr, len, super, zip



  • Oh, I’ll try to describe Euler’s formula in a way that is intuitive, and maybe you could have come up with it too.

    So one way to think about complex numbers, and perhaps an intuitive one, is as a generalization of “positiveness” and “negativeness” from a binary to a continuous thing. Notice that if we multiply -1 with -1 we get 1, so we might think that maybe we don’t have a straight line of positiveness and negativeness, but perhaps it is periodic in some manner.

    We can envision that perhaps the imaginary unit, i, is “halfway between” positive and negative, because if we think about what √(-1) could possibly be, the only thing that makes sense is it’s some form of 1 where you have to use it twice to make something negative instead of just once. Then it stands to reason that √i is “halfway between” i and 1 in this scale of positive and negative.

    If we figure out what number √i we get √2/2 + √2/2 i

    (We can find this by saying (a + bi)^(2) = i, which gives us (a^(2) - b^(2) = 0 and 2ab = 1) we get a = b from the first, and a^(2) = 1/2)

    The keen eyed observer might notice that this value is also equal to sin(45°) and we start to get some ideas about how all of the complex numbers with radius 1 might be somewhat special and carry their own amount of “positiveness” or “negativeness” that is somehow unique to it.

    So let’s represent these values with R ∠ θ where the θ represents the amount of positiveness or negativeness in some way.

    Since we’ve observed that √i is located at the point 45° from the positive real axis, and i is on the imaginary axis, 90° from the positive real axis, and -1 is 180° from the positive real axis, and if we examine each of these we find that if we use cos to represent the real axis and sin to represent the imaginary axis. That’s really neat. It means we can represent any complex number as R ∠ θ = cos θ + i sin θ.

    What happens if we multiply two complex numbers in this form? Well, it turns out if you remember your trigonometry, you exactly get the angle addition formulas for sin and cos. So R ∠ θ * S ∠ φ = RS ∠ θ + φ. But wait a second. That’s turning multiplication into an addition? Where have we seen something like this before? Exponent rules.

    We have a^(n) * a^(m) = a^(n+m) what if, somehow, this angle formula is also an exponent in disguise?

    Then you’re learning calculus and you come across Taylor Series and you learn a funny thing, the Taylor series of e^x looks a lot like the Taylor series of sine and cosine.

    And actually, if we look at the Taylor series for e^(ix) is exactly matches the Taylor series for cos x + i sin x. So our supposition was correct, it was an exponent in disguise. How wild. Finally we get:

    R ∠ θ = Re^(iθ) = cos θ + i sin θ













  • Not quite. Their “malicious” extension only got a few hundred installs. Using the data gathered by that extension and via other means they were able to locate other actually malicious extensions. Those total in the millions of installations.

    Through this process, they have found the following:

    1,283 with known malicious code (229 million installs).
    8,161 communicating with hardcoded IP addresses.
    1,452 running unknown executables.
    2,304 that are using another publisher's Github repo, indicating they are a copycat.