Readit News logoReadit News
eutectic commented on Why it's so hard to build a jet engine   construction-physics.com/... · Posted by u/mhb
mppm · 6 months ago
One important aspect of modern jet engines that the article only mentions on the periphery are the materials engineering problems in the hot section. There are many metals (not to mention ceramics) that can survive 1000C temperatures, but there are not many that can permanently resist creep at these temperatures under high tensile loads. The only really viable class of materials at the moment are Nickel-based single-crystal superalloys that contain rare metals like Rhenium and Ruthenium. This comes with serious supply limitations and rather complex manufacturing, where the molten metal is solidified directly in the shape of a turbine blade from a single seed crystal. Fun stuff, in other words :)
eutectic · 6 months ago
Silicon carbide fiber reinforced silicon carbide is also being increasingly used.
eutectic commented on A dictionary of single-letter variable names   jackkelly.name/blog/archi... · Posted by u/todsacerdoti
bluerooibos · 10 months ago
I'd prefer i to be a description/name of the thing that is being iterated.

If your array is named cars then you can safely assume i will be a car, but depending on the complexity of the code it just adds another step for me to parse, when I could have just named it car to begin with.

That's a simple case where the data being iterated over is clear. When the data is complex, it becomes even more useful to descriptively name i so that you can more easily see what you're working with.

eutectic · 10 months ago
But 'i' is not a car, it is the index of a car.
eutectic commented on Einsum for Tensor Manipulation   swe-to-mle.pages.dev/post... · Posted by u/peluche_
jimsimmons · a year ago
Einsums are the regexes of tensor programming. Should be avoided at all costs IMO. Ideally we should be able to write native loops that get auto-vectorized into einsums for which there is a CUDA/PTX emitting factory. But for some reason neither PyTorch nor JAX/TF took this route and now we are here.

Some of the einsum expressions I have seen for grouped multi headed/query attention is mind-boggling and they get shipped to prod.

eutectic · a year ago
I like einsum, it's concise and self-explanatory. Way better than multiple lines of nested for loops would be.
eutectic commented on Show HN: Vapi – Convince our voice AI to give you the secret code   blog.vapi.ai/show-hn-vapi... · Posted by u/jordandearsley
codetrotter · a year ago
Try this one!

https://gandalf.lakera.ai/

I made it past all the first levels, but the bonus level has been impossible for me no matter what I’ve tried

eutectic · a year ago
I got to level 8 by asking in rot13. I think I beat the bonus level too but I can't remember how.
eutectic commented on Solving the minimum cut problem for undirected graphs   research.google/blog/solv... · Posted by u/Anon84
ColinWright · a year ago
Unless I'm missing something (which is entirely possible, I have a cold and might not be thinking straight) ...

Max-Flow runs on directed graphs. These are undirected graphs.

eutectic · a year ago
Also, the problem is to find a global min-cut, which requires all-pairs max flow.
eutectic commented on Visualizing Attention, a Transformer's Heart [video]   3blue1brown.com/lessons/a... · Posted by u/rohitpaulk
mjburgess · a year ago
No issue with transformers -- the entire field of statistical learning, decision trees to NNs, do the same thing... there's no mystery here. No person with any formal training in mathematical finance, applied statistics, hard experimental sciences on complex domains... etc. would be taken in here.

I'm trying my best to inform people who are interested in being informed, against an entire media ecosystem being played like a puppet-on-a-string by ad companies. The strategy of these companies is to exploit how easy is it to strap anthropomorphic interfaces over models of word frequencies and have everyone lose their minds.

Present the same models as a statistical dashboard, and few would be so adamant that their sci-fi fantasy is the reality.

eutectic · a year ago
Different models have different inductive biases. There is no way you could build GPT4 with decision trees.
eutectic commented on Low Cost Robot Arm   github.com/AlexanderKoch-... · Posted by u/pbrowne011
mtreis86 · a year ago
I started working on a similarly sized arm. I've got a use-case, long time friends with a glass blower. I was thinking of using it to make faceted glass pendants. They've got a faceting machine but it is manually operated.

The hard part is repeatability. You need tight tolerances and each joint in the arm adds inaccuracy the further you get from the base. If the base has 1mm of wiggle, the 20cm arm has 4mm wiggle at the end, and the arm beyond it has even more.

You also, for faceting purposes, need much finer resolution than an ungeared servo will have. Gearing it is tricky because you want backlash to keep the join tight, but not so much that it has high friction when moving. You don't really want to use a worm gear because they're both slow and overly rigid. So a cycloidal gear is the best bet for the gears in the arm. You also need real servos with some amount of feedback because grabbing at glass is sketchy at best.

I was estimating 1-2k build cost, bulk of that is in the gearboxes.

eutectic · a year ago
Is it not possible to compensate for inaccuracy, if you have a sufficiently precise measurement at the hand?
eutectic commented on History of Uniform Random Number Generation (2017) [pdf]   informs-sim.org/wsc17pape... · Posted by u/pncnmnp
camel-cdr · a year ago
I wouldn't recemmend that without a 128 bit variables. The truncation is required to make the generator non predictable, otherwise you leak to much state.

Alternatively, you can just call the 32 bit one twice and build a 64 bit value from the results.

Edit: I didn't see that you changed the algorithm more than removing the truncation. It is honestly suprizingly good for exposing that much state, but it fails PractRand after 16 GB.

It is honestly suprizingly good and hasn't failed PractRand yet (I'm at >64 GB).

eutectic · a year ago
Your edit is confusing me. Which variant fails and which variant passes?
eutectic commented on History of Uniform Random Number Generation (2017) [pdf]   informs-sim.org/wsc17pape... · Posted by u/pncnmnp
camel-cdr · a year ago
I like how the earliest and easiest PRNGs are making a comeback:

First middle square method, just add a weyl sequence to it, and all statistical tests stop failing [0]

    uint64_t x, weyl;
    uint32_t msws(void) {
        x = x * x + (weyl += 0xB5AD4ECEDA1CE2A9);
        return x = (x >> 32) | (x << 32);
    }
And now Collatz, just add a weyl sequence to it, and all statistical tests stop failing [1]

    __uint128_t x;
    uint64_t a, weyl;
    __uint128_t CWG128_64(void) {
        x = (x | 1) * ((a += x) >> 1) ^ (weyl += 0xB5AD4ECEDA1CE2A9);
        return a >> 48 ^ x;
    }
The fun part is that the constant used in the weyl sequence is pretty much arbitrary, it just needs to be odd and not too regular.

The more state of the art xoshiro, pcg, Romu, sfc64, tylo64, ... are still faster and probably safer tp use, but I like how especially the middle square weyl sequence PRNG can be very easily memorized: Square + weyl sequence, swap upper and lower bits, and return the truncated result. The weyl sequemce constant can be created with a rule of thumb: try choosing mostly destinct hex digits and make it odd.

[0] https://arxiv.org/abs/1704.00358

[1] https://arxiv.org/abs/2312.17043

eutectic · a year ago
Here's a variant which gives 64-bit output:

  uint64_t x = 0, w = 1;
  uint64_t msws64(void) {
      x = x * x + (w *= 0xe9acc0f334e93bd5ULL);
      return (x = (x >> 32) | (x << 32)) ^ w;
  }

eutectic commented on History of Uniform Random Number Generation (2017) [pdf]   informs-sim.org/wsc17pape... · Posted by u/pncnmnp
camel-cdr · a year ago
I like how the earliest and easiest PRNGs are making a comeback:

First middle square method, just add a weyl sequence to it, and all statistical tests stop failing [0]

    uint64_t x, weyl;
    uint32_t msws(void) {
        x = x * x + (weyl += 0xB5AD4ECEDA1CE2A9);
        return x = (x >> 32) | (x << 32);
    }
And now Collatz, just add a weyl sequence to it, and all statistical tests stop failing [1]

    __uint128_t x;
    uint64_t a, weyl;
    __uint128_t CWG128_64(void) {
        x = (x | 1) * ((a += x) >> 1) ^ (weyl += 0xB5AD4ECEDA1CE2A9);
        return a >> 48 ^ x;
    }
The fun part is that the constant used in the weyl sequence is pretty much arbitrary, it just needs to be odd and not too regular.

The more state of the art xoshiro, pcg, Romu, sfc64, tylo64, ... are still faster and probably safer tp use, but I like how especially the middle square weyl sequence PRNG can be very easily memorized: Square + weyl sequence, swap upper and lower bits, and return the truncated result. The weyl sequemce constant can be created with a rule of thumb: try choosing mostly destinct hex digits and make it odd.

[0] https://arxiv.org/abs/1704.00358

[1] https://arxiv.org/abs/2312.17043

eutectic · a year ago
What if you don't truncate? I fell like it might still be OK.

u/eutectic

KarmaCake day839October 6, 2014View Original