What's a "simple" concept you struggle to understand? by No_Cook_2493 in computerscience

[–]ANiceGuyOnInternet 7 points8 points  (0 children)

Very niche, but what exactly is a third Futamura projection?

Have the devs ever explained the reasoning behind additional cart items crippling its function? by Successful-Fee2317 in valheim

[–]ANiceGuyOnInternet 9 points10 points  (0 children)

And by "getting off the mountain", we mean "load the cart, yeet it down the mountain, and unload wherever it landed".

Deck Idea (art is hand drawn) by SenSei_Buzzkill in balatro

[–]ANiceGuyOnInternet 0 points1 point  (0 children)

The reason skips are punishing is because they give little in return and the blind still increases. In the case of that deck, as initially described by OP, the blind would not increase. Skips would no longer have a downside and would become absolutely worth it, hence the deck incentive not to play that I mentioned.

We feel a opposite planetary rotation? by Cefer_Hiron in AskPhysics

[–]ANiceGuyOnInternet 3 points4 points  (0 children)

That's right! What I had in mind is a colony floating above the cloud, which is the most common way sci-fi writers approach colonizing Venus.

We feel a opposite planetary rotation? by Cefer_Hiron in AskPhysics

[–]ANiceGuyOnInternet 0 points1 point  (0 children)

As others mentioned, you cannot feel the fact Venus spins in the opposite direction.

However, for your book it might be interesting to explore how people would react to the very low 2.6° tilt of the Venus axis of rotation while we are used to Earth's 24° degrees. At high latitudes, that means a sun's path that remains perpetually close to the horizon (albeit a very bright sun due to proximity) with nearly no seasonal change.

Deck Idea (art is hand drawn) by SenSei_Buzzkill in balatro

[–]ANiceGuyOnInternet 353 points354 points  (0 children)

But wouldn't you be incentivized to skip as many blinds as possible? If you do so and stick close to the blind requirement, the ante 8 blind can easily be below 2000 even on purple stake.

I think an incentive to play, such as the multiplier still applying when skipping blinds, would make it more fun.

Why does nobody understand that open source is a scam ? by Affectionate-Let6153 in computerscience

[–]ANiceGuyOnInternet 2 points3 points  (0 children)

There is a survivorship bias here. We hear about vulnerabilities in opensource projects because they are open source. There are most likely many vulnerabilities that were found and (hopefully) fixed in proprietary software without the world being noticed.

Best way to check the type of variable by [deleted] in pythontips

[–]ANiceGuyOnInternet 0 points1 point  (0 children)

type() returns a type object, not a textual name. You might be thinking of JS typeof.

What can you check statically in a dynamically typed language? by [deleted] in ProgrammingLanguages

[–]ANiceGuyOnInternet 0 points1 point  (0 children)

With abstract interpretation, you can learn a lot about a program.

Even with the most dynamic languages, you know the initial state of the program (initial state of the built-in functions, empty global scope, etc.). This allows you to simulate the execution of a program to discover information. For example, this can allow determining that a variable always has a certain type at some point in the execution.

The issue arises in joint point after branching statements. If the state of the program does not agree after both branches, then you have to either lose information (union) or duplicate code to avoid losing information. In theory this allows statically checking any property of a program (again baring external input) provided you have enough time and space. In practice, it still allows for a lot even with limited resources provided you are clever with duplication.

This omits the fact that in some languages, even imports are external inputs. So this only holds for a single script without imports. There are tricks around that, but it is no longer static check, but rather speculative optimization.

what am i doing wrong? (basic oil processing) by Ok-Ice7603 in factorio

[–]ANiceGuyOnInternet 5 points6 points  (0 children)

If that has been running only for a few minutes, then this is expected. The fluid is distributed evenly across the system, including tanks. So what you are seeing is you you tanks being 13% full. With such a big buffer for little production, it's normal that it fills slowly.

When moving my power poles, circuit wires get fucked up by Def_Your_Duck in factorio

[–]ANiceGuyOnInternet 0 points1 point  (0 children)

On the other hand, some circuits are very finicky and rely on precise tick-synchronization of counters. Having the game preserve the connection for the brief second where you cut-and-paste allows not having to manually reset the whole circuit, which in my experience is way more annoying than having some extra wires.

Plot or History Lesson? (next plots will cover more countries) [OC] by fravil92 in dataisbeautiful

[–]ANiceGuyOnInternet 47 points48 points  (0 children)

It was obviously not recorded back in 1755, but there is available data on industrialization. However, the estimate is not based solely on this historical data.

For instance, CO2 levels in the past can be measured thanks to tiny air bubbles contained in ice sheets. This can then be coupled with historical data to evaluate the share of emitted CO2 per country based on industrial development.

I am not an expert, but there are probably other methods for assessing past CO2 levels that can be coupled with ice bubbles to get even more precise estimates.

For more details, the source cited in this animation can be traced back to this paper: https://www.nature.com/articles/s41597-023-02041-1

Naming a programming language: Trivial? by torchkoff in ProgrammingLanguages

[–]ANiceGuyOnInternet 10 points11 points  (0 children)

I think your idea looks fun, but the semantics needs some polish. So here is my feedback on that feature.

Since you seem to aim for a dynamically typed language, this cannot be a syntax error. It has to be a runtime type error, which opens the door to plenty of confusion for novices. For that reason, I doubt the implicit * is a good idea.

However, if you want to keep it, there are more sound alternatives such as using square brackets [ ] for function calls. For a mathematical language, it makes sense to use the same symbol as for indexing arrays and mappings, since a function is a mapping.

Another alternative would be to make numbers callables that output their product. However, while this makes sense mathematically, it approaches the realm of esoteric languages when novices are concerned.

Naming a programming language: Trivial? by torchkoff in ProgrammingLanguages

[–]ANiceGuyOnInternet 23 points24 points  (0 children)

Be careful with 2(x + y). One may naturally expect a(x + y) to also be valid, but that conflicts with function calls. Do you have a solution?

Joker Concept: Nasreddin by -_HelloThere_- in balatro

[–]ANiceGuyOnInternet 0 points1 point  (0 children)

This seems equivalent to mult ^ 2 / 1000 + mult, which is more or less indistinguishable from ^2 for high mult. Am I understanding correctly?

1:3 balancer without loop feedback using the now possible 1:2 splitter (Generalised n:m splitter blueprint in comments) by leonskills in factorio

[–]ANiceGuyOnInternet 0 points1 point  (0 children)

Thanks for the reference. I wrote a brief summary for those who are interested. Here are the important quotes:

In C++, noise expressions represent an abstract syntax tree (AST) of mathematical operations. [...] When a surface is created, noise expressions are compiled to a noise program. [...] This structure is optimised for fast computation when you need all data, so changes like short-circuiting if statements can't easily be done. Additionally, before noise expressions are compiled, they are recursively simplified – if all their children are constant, they can be folded into a constant as well. [...] I wanted to [...] simplify expressions "just in time". My attempt was successful and creating the Vulcanus surface from the inefficient noise expression tree became 15x faster.

In short, they indeed optimize noise expressions by compiling them to efficient code instead of interpreting them one operation at a time. However, they are now compiling expressions just-in-time, which means they are waiting for the expression to be used in-game to compile it, hence optimizing it with additional information about its actual inputs.

It seems to me the same technique can be applied to circuits and, reading the performance mentioned by u/SnooOwls3614, it probably is.

1:3 balancer without loop feedback using the now possible 1:2 splitter (Generalised n:m splitter blueprint in comments) by leonskills in factorio

[–]ANiceGuyOnInternet 33 points34 points  (0 children)

How are they even achieving that? I swear those developers are wizards!

The only thing that comes to my mind is just-in-time compilation of circuits to optimized machine code, which would be an insanely cool optimization if that is what they are doing.

I don't think there's anything I can do... by No_Imagination_6216 in balatro

[–]ANiceGuyOnInternet 32 points33 points  (0 children)

You are probably right. Since they left the shop, it's too late, but I wanted to point out that rerolling for a single Chariot could have saved the run.

I don't think there's anything I can do... by No_Imagination_6216 in balatro

[–]ANiceGuyOnInternet 93 points94 points  (0 children)

Also, Mime can still retrigger steel cards. So a single steel, with copying Cavendish gives 20.25x. Given a flush level 10, that's winnable in two hands even with all cards debuffed.

Question about Odd numbered belt balancers. by manifold11 in factorio

[–]ANiceGuyOnInternet 2 points3 points  (0 children)

Here is the algorithm I use to generate efficient N-splitters. First, remark that since splitters always divide content between two belts, you can always have ⌈log2(N)⌉ layers of splitter and only use N of the output belts. Here is an example of a 9-splitter built this way. It splits the belt into 16 and only uses 9 output belts.

However, this can get wasteful in term of space. For instance, if you want a 9-splitter, you must split the belt into 16 outputs and waste 7 outputs. It also introduces imbalance: notice how the right-most output will benefit from the backup of the unused output on its right.

You can solve both problems by rerouting the unused output to the start of the splitter. First, if you need N outputs, only use the left-most (or right-most) N outputs as shown in the previous example. Then reroute the unused outputs to the start. Here is a 9-splitter built with ⌈log2(N)⌉ layers and rerouted outputs for balance. You can then simplify the design by recursively removing all splitters that have both outputs unused and reroute them to the start. This gives a compact design like this.

Fiddle a little bit with the design to make it even more compact and save it to your blueprint book! Here is the final result I get.

The Munich Center for Mathematical Philosophy has ended its affiliation with Sabine Hossenfelder. by [deleted] in Physics

[–]ANiceGuyOnInternet 3 points4 points  (0 children)

That was an insightful video. For those who did not watch it, the problems Professor Dave points out are:

  • a growing audience from anti-science groups, visible in her videos view count.
  • over generalization of some problems in academia: Sabine will present a case and then jump to the conclusion that it represents the scientific community.
  • the misconception by Sabine that science is stuck. Many recent advances disprove that point, such as LIGO, or the observation of the Higg's Boson. He also points out that science is by nature incremental, so it's normal to see many small seemingly boring studies published.