HN user

eiriklv

165 karma

www.vullum.io

Posts20
Comments82
View on HN
en.wikipedia.org 8y ago

Zeigarnik Effect

eiriklv
1pts0
medium.freecodecamp.com 9y ago

It's Time to Raise Awareness About Automation

eiriklv
3pts0
www.theguardian.com 9y ago

In an age of robots, schools are teaching our children to be redundant

eiriklv
15pts4
gist.github.com 9y ago

Exception Free JavaScript?

eiriklv
1pts0
www.npr.org 10y ago

Before You Judge Lazy Workers, Consider They Might Serve a Purpose

eiriklv
3pts0
developer.telerik.com 10y ago

Native code is bad for you

eiriklv
2pts8
www.nytimes.com 10y ago

Diet Advice That Ignores Hunger

eiriklv
80pts161
github.com 10y ago

Show HN: React Masonry Component

eiriklv
1pts0
www.screenfetch.me 11y ago

Show HN: Full Webpage Screenshot to Dropbox with a Bookmarklet (beta)

eiriklv
1pts0
blog.vullum.io 11y ago

Node.js and JavaScript Flow (part 2) – Fibers and Generators

eiriklv
2pts0
blog.vullum.io 11y ago

Running Average Implemented with Node.js Streams

eiriklv
1pts0
blog.vullum.io 11y ago

Node.js Flow – Callback Hell vs. Async vs. Highland

eiriklv
1pts0
www.vullum.io 11y ago

Show HN: Programming Languages Timeline

eiriklv
21pts24
github.com 11y ago

Show HN: Metafizzy Packery Mixin for React.js

eiriklv
2pts1
github.com 11y ago

Show HN: Standalone Masonry Mixin for React.js

eiriklv
12pts4
blog.vullum.io 11y ago

React and Masonry

eiriklv
1pts0
volatile-msg.herokuapp.com 11y ago

Show HN: Volatile messaging (self hosted and open source)

eiriklv
5pts2
www.simpl.info 12y ago

Simplest possible examples of HTML, CSS and JavaScript.

eiriklv
1pts0
www.youtube.com 12y ago

Official Rock Simulator 2014 Trailer

eiriklv
1pts0
www.infoworld.com 12y ago

Node.js is the latest security risk for developers

eiriklv
5pts1

A bit on the side:

Stream processing of data is nicer using a declarative approach. Though I've found that describing control flow is often more intuitive using an imperative approach. It's a shame that redux-saga got tied to react/redux, because the idea of generators and declarative effects are universal - useful on both backend and frontend.

I feel you - Python has much better (more flexible) argument support than JavaScript in this case. Converting the entire set of arguments into a keyed object is usually what happens, but then it wouldn't look like PyTorch anymore.

Edit: Great work! I'd love to have a nice alternative to PyTorch in JavaScript :)

Edit: formatting

Making JavaScript look like Python in this case could potentially bite you in the ass.

From the example:

    const torch = require("js-pytorch");

    // Instantiate Tensors:
    x = torch.randn([8,4,5]);
    w = torch.randn([8,5,4], requires_grad = true);
    b = torch.tensor([0.2, 0.5, 0.1, 0.0], requires_grad = true);

And:
    class Transformer extends nn.Module {
      constructor(vocab_size, hidden_size, n_timesteps, n_heads, p) {
        //.....
        this.b1 = new nn.Block(hidden_size, hidden_size, n_heads, n_timesteps, dropout_p=p);

For both `requires_grad` and `dropout_p` you wouldn't be able to change the ordering + you're creating global variables.
    /**
     * All of the arguments for this function are positional
     * and cannot be provided in a different order than defined
     */
    function performOperation(values, arg1 = false, arg2 = -1) {
        //....
    }

    /**
     * This works, but only because of the order
     */
    const result = performOperation([1, 2, 3], arg1 = true, arg2 = 10);

    /**
     * This does not work
     */
    const result = performOperation([1, 2, 3], arg2 = 10, arg1 = true);

    /**
     \* What is actually happening
     \*/
    arg1 = true; // global variable
    arg2 = 10;   // global variable

    const result = performOperation([1, 2, 3], 10, true);

I had the exact same issue and spent a lot of time figuring out why this was a problem for me, as I would alter between my old 15 inch and new 16 inch and feel the difference each time.

Long story short, I found a solution that removed all my issues;

- Use the accessibility «contrast» feature set to level 2

- Use an app[0] that applies a gamme filter to adjust the white level down to account for the contrast increase

- (optional) use an srgb color profile that disables temporal dithering of colors

This reduces you max brightness level to the same amount as the old 15 inch (I don’t need the extra brightness) but allowes you to keep the backlight at max output, minimizing the pvm strobing effect[0] that some people seem to be sensitive to.

[0] https://michelf.ca/projects/gamma-control/

[1] https://osxdaily.com/2021/05/14/workaround-pwm-oled-iphone-i...

Another lefty here - same issue. Did the pre-order long ago. I’m back to pen and paper as I could not tolerate it. It would be great if it was possible to calibrate it somehow, by hack or not. I’ve kept it in case such a solution surfaces.

Hooks are both a blessing and a curse.

The most telling difference after starting to use hooks when working with both junior developers and more seasoned ones is that code that seemingly (and intuitively) behaves in one way actually does something slightly different, or worst case - something entirely different. Most often the culprit is a combination of the hooks themselves, the rules and the more general issue of the dependency array and lack of built-in immutability in the language.

This happened before hooks as well, but the class syntax and lifecycle methods felt like a thinner layer on top of JavaScript. Hooks is a much more proprietary concept that tries to solve a much wider problem - having stateful functions, except they make no sense outside the realm of react as they exist right now. Maybe some form of implementation using generators would bring it closer to the language, but that would most likely introduce it’s own set of challenges.

Don’t get me wrong - I enjoy working with hooks, but it just doesn’t feel quite right that they are so tied to some «magical» implementation that requires a large set of rules to behave as expected. It helps to look into the implementation, and especially to reimplement a simple version of react with hooks yourself - but that’s just not a realistic option for many.

Kudos to all the innovation coming from the React team and community though - I’m sure they think about this stuff all the time.

So many people (including doctors) seem to be set on the idea that serotonin makes you happy and therefore is the solution to depression. This is only half true, and not in the way that most think. Serotonin (if high) makes you numb [1]. But that might be the lesser of two evils when it comes to depression [2], which is why it’s become popular as a mechanism to treat it. It not a solution, it’s just masking the underlying problem by replacing one set of symptoms with another.

[1] https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2989833/

[2] https://www.health.harvard.edu/depression/is-your-antidepres...

As nhpatt notes you're not actually calling obj.method here, you're passing it as an argument, which will be called at a later time.

Looking at a possible implementation of setTimeout makes it clearer:

  function setTimeout(func, delay) {
    // wait for the delay to complete..
    func();
  }
Here you can see that when the function is called there's nothing to the left of it.

Simple(r) explanation; this is whatever is "left" of the function call (i.e - obj.method() => this === obj inside the called method), unless you've used .bind/call/apply which explicitly sets what this should be via an argument.

If you're doing a direct function call like myFunc() there is nothing "left" of the function call. But you might think of it as actually doing window.myFunc(), which again explains why this === window. In strict mode this behavior has been "fixed" so that this === undefined.

It's all about how a function is called.

I'd like to go even more back to the fundamentals. Hopefully finishing SICP, building a JavaScript interpreter/compiler and other fun experiments to get a better understanding of the foundation that we're building everything on top of today.