HN user

pretodor

16 karma
Posts2
Comments6
View on HN

The default behaviour is not to shadow variables. If you want to shadow a variable, you have to do so explicitly with the 'let' keyword.

Here is a NodeScript snippet and its equivalent in Python:

    // NodeScript
    
    x = 10
    function outer() {
        y = 20
    
        function inner() {
            x = 100
            y = 200
        }
    
        inner()
        console.log(x, y)
    }
    
    outer()


    # Python
    
    x = 10
    def outer():
        y = 20
    
        def inner():
            global x
            nonlocal y
    
            x = 100
            y = 200
    
        inner()
        print(x, y)
    
    outer()

Regarding the semicolons, due to the insertion mechanism JavaScript uses, lines starting with '[', '(', or '`' will get merged with the previous statement. So the example in the repo will get parsed in JavaScript as:

    x = 10;
    y = 20[x, y] = [y, x];
Your assumption is correct. NodeScript defaults to let-declarations. This leaves you with a block-scoped language and prevents leakage of global variables. If you want to make a global variable, you will have to explicitly write it as a property of the global object.

Thanks for the kind words. I really appreciate it.

I also really like Mac OS, even with it's thorns, because its design is much better than whatever version of Linux I would use (not a big fan of Ubuntu's Unity).

I would love to hear your thoughts on the Cinnamon DE. Genuinely curious.

Here is the full text:

1/ The key to finishing projects on time is to start every single step as late as possible (exactly the opposite of what most PMs do)

2/ First, because only progress on the critical path matters for final delivery, therefore all other starts are distractions

3/ It would be like spending hrs on a huge dinner prep by making all the side dishes, only to realize u forgot to pre-heat oven

4/ Second, starting early doesn't mean you'll finish early. Parkinson's Law: the task simply expands to fill the extra space

5/ Third, even if u do finish a step early, that gain will be wasted: next person won't be ready

6/ Starting a step early actually has all sorts of negat conseq, which is why procrastination is evolutionarily & logically a good strategy

7/ Starting early increases likelihood u don't have all info and prereqs, making rework likely (i.e. estimate blowout)

8/ Starting early increases the surface area for interruption attacks (internal & external), since u "have plenty of time"

9/ Starting early explodes the amt of lead time not spent actually working (i.e. Touch time)

10/ 70-99% of task lead time is waiting time, queueing, pending confirmation, waiting on approval, learning, rampup, setup, etc

11/ Ppl complain about estimation being hard, but it's not "uncertainty". It's them starting things early due to supposed uncertainty!

12/ But maybe the worst effect of starting early is that ppl start late anyway. Who actually begins a step before they have to?

13/ So you get worst of both worlds: a LONG plan with huge lead times, which are ignored as ppl do everything last minute. Vicious cycle

14/Last reason early starts suck, is they give illusion of safety. But Murphy doesn't hit everywhere evenly, he concentrates chaos at 1 spot

15/ Irony is this is self-reinforcing: did you hit the deadline because u executed well, or because you had excessive safety (100-200%)?

16/ So person who adds the most excessive safety is rewarded for "hitting their estimate," as if estimating and executing are independent

17/ Late starts fix all this: when the step is "released," they have barely enough time to finish if they go at full speed

18/ This pressure helps them focus, get into flow, ignore distractions/interruptions, optimize for 1 thing, get it done!

19/ Procrastination isn't an issue, because they're already behind, since u also cut their estimated lead time in half (oops!)

20/ If they finish on time it's actually a cause for celebration, and the next person can actually take advantage of the time gained

21/ The PM knows what to focus on, since u start with few steps (critical path ones) and only gradually begin new ones as late as possible

22/ Another benefit: once crit path person passes hot potato, they're free! U don't assign them new work, that would be punishing perform.

23/ Late starts also help with resource contentions (the same person doing 2 steps), esp important in cross-funct creative teams

24/ Instead of "start everything NOW!" You're saying "U must not start anything until the last poss moment. Focus on the current task!"

25/ This helps ppl not multitask, since they only have one task at any given time, and it's late!

26/ Ppl are generally happier: focus + flow + roadrunner mode (only 2 speeds, 100% & 0%) + fast results = happiness for both emp & co

27/ ANOTHER benefit of late starts: u have much better estimation data, since lead time now more closely approximates touch time

28/ 3 main results of all this: throughout (output x sales) explodes, lead time per project plummets, and huge excess capacity is revealed

29/ U read that right: earlier u start steps, the later u deliver projects, the more excess capacity you're likely to have

30/ Why? Because the almost universal response to late projects is "we need more capacity!" False. U need to use what u have

31/ The busier everyone in your co seems to be, the more confident I am that you have tremendous, double-digit excess capacity

32/ To add insult to injury, emps in such companies also say they're "too busy to invest in productivity." Speed up the hamster wheel!

33/ BUT to use late starts, u also need buffers. Bec some steps do in fact go late, just not as many and not as late as u think

34/ And I don't mean buffers as a general concept, u need very precisely placed and sized buffers divided into zones, updated daily

35/ There is a buffer for every purpose: project buffers, feeding buffers, iteration buffers, bottleneck buffers. Gotta know which 1 to use

36/ The PM's job becomes easy: just watch the buffer penetrations. No need to do anything until it gets to Zone 3 or 2, all else is noise

37/ If u want to know where all this comes from, Critical Chain Project Mgmt: https://en.wikipedia.org/wiki/Critical_chain_project_managem...