• 0 Posts
  • 240 Comments
Joined 2 years ago
cake
Cake day: August 3rd, 2023

help-circle
  • The basic problem is that identifiers can be either types or variables, and without a keyword letting you know what kind of statement you’re dealing with, there’s no way of knowing without a complete identifier table. For example, what does this mean:

    foo * bar;
    

    If foo is a type, that is a pointer declaration. But if it’s a variable, that’s a multiplication expression. Here’s another simple one:

    foo(bar);
    

    Depending on how foo is defined, that could be a function call or a declaration of a variable bar of type foo, with some meaningless parentheses thrown in.

    When you mix things together it gets even more crazy. Check this example from this article:

    foo(*bar)();
    
    

    Is bar a pointer to a function returning foo, or is foo a function that takes a bar and returns a function pointer?

    let and fn keywords solve a lot of these ambiguity problems because they let the parser know what kind of statement it’s looking at, so it can know whether identifiers in certain positions refer to types or variables. That makes parsing easier to write and helps give nicer error messages.










  • Another big factor is that every plant is effectively a completely custom design. Because of how few nuclear plants are constructed, every new one tends to incorporate technological advancements to enhance safety or efficiency. The design also has to be adapted to the local climate and land layout. This makes every single plant effectively one of a kind.

    It also tends to be built by different contractors, involving different vendors and electric utilities every time. Other countries have done better here (e.g. China and France) mostly due to comprehensive government planning: plopping down lots of reactors of the same design, done by the same engineers. Although these countries are not fully escaping cost increases either.

    You are completely correct that regulation is also a big factor. Quality assurance and documentation requirements are enormously onerous. This article does a pretty decent job explaining the difficulties.



  • I think holding more helium in a smaller space is the opposite of what you want. The lifting force is equal to the weight of the air being displaced, so you want as little stuff as possible in as big a volume as possible.

    Maybe if you went the other way round and compressed the atmosphere?


  • A system I work with gives all keys a string value of “Not_set” when the key is intended to be unset. The team decided to put this in because of a connection with a different, legacy system, whose developers (somehow) could not distinguish between a key being missing or being present but with a null value. So now every team that integrates with this system has to deal with these unset values.

    Of course, it’s up to individual developers to never forget to set a key to “Not_Set”. Also, they forgot to standardise capitalisation and such so there are all sorts of variations “NOT_SET”, “Not_set”, “NotSet”, etc. floating around the API responses. Also null is still a possible value you need to handle as well, though what it means is context dependent (usually it means someone fucked up).





  • VAT is a universal tax on goods. A tariff is basically a tax that applies only to imported goods. So a tariff distorts the market, making imports from a region more expensive relative to other regions, or domestic goods.

    Note that basically any tax is bad from an economic perspective. However for the government to function revenues must be raised. It is considered better for market efficiency to raise revenues in such a way as to least distort the market. Tariffs are a very distorting instrument, VAT is generally considered less distorting because it affects all parts of the market equally.



  • No magnetic confinement fusion reactor in existence has ever generated a positive output. The current record belongs to JET, with a Q factor of 0.67. This record was set in 1997.

    The biggest reason we haven’t had a record break for a long time is money. The most favourable reaction for fusion is generally a D-T (Deuterium-Tritium) reaction. However, Tritium is incredibly expensive. So, most reactors run the much cheaper D-D reaction, which generates lower output. This is okay because current research reactors are mostly doing research on specific components of an eventual commercial reactor, and are not aiming for highest possible power output.

    The main purpose of WEST is to do research on diverter components for ITER. ITER itself is expected to reach Q ≥ 10, but won’t have any energy harvesting components. The goal is to add that to its successor, DEMO.

    Inertial confinement fusion (using lasers) has produced higher records, but they generally exclude the energy used to produce the laser from the calculation. NIF has generated 3.15MJ of fusion output by delivering 2.05MJ of energy to it with a laser, nominally a Q = 1.54. however, creating the laser that delivered the power took about 300MJ.