[-] wischi@programming.dev 1 points 6 months ago

I guess that's true and I certainly don't have anything against the concept of a constitution, but as someone not living in the US I find it pretty strange that so many Americans treat the constitution like some holy religious text.

[-] wischi@programming.dev 1 points 7 months ago* (last edited 7 months ago)

Desktop is a form factor not "software" and there are microwaves and refrigerators with "PC hardware" (in quotes, because it's actually a pretty ill-defined term), but they still are not "Desktops" even is you install Fedora on your fridge.

[-] wischi@programming.dev 1 points 7 months ago* (last edited 7 months ago)

The names are pretty clear and are about form factor. Desktop is something on top of a desk. Laptop is something on top of your lap. Hand-held is something you hold in your hand.

The steam deck is a hand-held game console - doesn't matter what OS is it uses. It's true that most stat tracking sites count it as "desktop" but not because it's a desktop computer but because the user agent looks similar to desktop user agents.

If I install Android on a tower PC it doesn't randomly become a smartphone even though all browser trackers would register it as a smartphone.

And Valve using a "typical desktop OS" on their handheld console doesn't magically turn it into a desktop PC.

[-] wischi@programming.dev 1 points 7 months ago

So your definition for "desktop" is if it's an x86 compatible architecture? Seems pretty random to me. Btw, there are x86 android device. IMO a desktop is something on the top of a desk to do typical "office work". PCs, Macs, Laptops, etc. but calling a SteamDeck game console "Desktop" is pretty dishonest I think.

[-] wischi@programming.dev 1 points 8 months ago

Franz Reichelt vibes

[-] wischi@programming.dev 1 points 11 months ago

Sounds promising

Does it? Sounds like the exact opposite.

[-] wischi@programming.dev 1 points 1 year ago

"recently", they are the standard for almost 25 years now.

[-] wischi@programming.dev 1 points 1 year ago* (last edited 1 year ago)

Just saw the image you posted and it's awesome :-) I'm part of the group that can't solve it, because I don't know the 🌭 function from the top of my head. I also found the choice of symbols interesting that 🌭 is analytical continuation of 🍔 and not the other way round 🤣

[-] wischi@programming.dev 1 points 1 year ago

Chat GPT's answer for me:

Certainly! The expression 6/2(1+2) is ambiguous due to the implicit multiplication. Let's solve it in both ways:

  1. Implicit multiplication with higher priority:

[ \frac{6}{2}(1+2) ]

First, solve the parentheses:

[ \frac{6}{2}(3) ]

Now, perform the division:

[ 3 \times 3 = 9 ]

  1. Implicit multiplication with the same priority as division:

[ \frac{6}{2(1+2)} ]

Again, solve the parentheses:

[ \frac{6}{2(3)} ]

Now, perform the multiplication first:

[ \frac{6}{6} = 1 ]

So, depending on the interpretation of implicit multiplication, you can get different results: 9 or 1.

I think it's funny that ChatGPT figured out 1 and 9 but has the steps completely backwards. First it points out what has high priority and then does the exact opposite, both times 🤣

[-] wischi@programming.dev 1 points 1 year ago

Exactly a/b*c equals (a/b)*c but I'd instantly reconsider my position if you can show me a single calculator that would handle that diffently (credible calculator, not the once that some students program for homework assignments).

Even though one shouldn't treat calculators as some kind of authority but if all calculators handle it that way (all calculators of the five major manufacturers, Google, MathCad, Mathematics, various open source CAS) it's probably a very good indictator that it's not ambiguous.

What I also mentioned in the article is that standards and guidelines are typically stricter than most conventions in the name of clarity. So some of them even forbid things like "a / b * c" even if practically everybody agrees how this should be interpreted, just to be "extra-safe"

[-] wischi@programming.dev 1 points 1 year ago

Regarding the parenthesis the C# static code analyzer can be set to remove unnecessary parentheses.

https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0047-ide0048

IDE0047 is the static analyzer rule for "Remove unnecessary parentheses"

The default for those rules is to enforce parentheses on binary operations (because most people aren't as familiar with the binary operator priorities as they are with regular math operator priorities) and remove unnecessary ones in other mathematical expressions.

Besides that I can't remember that I saw a standard that states to only use parentheses if needed but I think it's reasonable ro assume that most people would do that anyway. Writing ((((5+3)))*2) is obviously stupid even though I can't think of any style guide that would explicitly state not doing that.

What many style guides actually state is to use proper fractions (horizontal bar) where ever possible.

Regarding the ambiguity with the implicit multiplication and division. The division is indeed required to make it ambiguous but actually only some kind of trigger

Let's take 6(1+2)/2. Even though the priorities with weak and strong juxtaposition are not the same with respect to the implicit multiplication the answer would be the same but if you would think about the problem like a computer the way to get to the answer would be different (for example the calculators I mentioned in the article would do different things internally)

Strong juxtaposition: you solve the implicit multiplication first because it has higher priority than the division. After that you do the division. Answer is 9.

Weak juxtaposition: implicit multiplication has the same priority as division. You do them left to right and actually end up with the same result even when following different conventions.

So the implicit multiplication is the reason why there are two conflicting conventions (which are necessary for the ambiguity because if there would be only one widespread convention it wouldn't be ambiguous) and the division is required to trigger the ambiguity (show where the two conventions differ).

The LTR thing is actually a very wide spread convention. I'm not familiar will all cultures on earth but my guess is of you use Arabic numerals and + and - you will work left to right for multiplication/division and addition/subtraction.

If one has a bit of math experience you can actually solve multiplication/division and subtraction/addition in any order (if you know what you are doing) like I described here: https://programming.dev/comment/5661037

[-] wischi@programming.dev 1 points 1 year ago

It depends on what you mean by global agreement as there is no single source of truth but the left-to-right rule is pretty much default for multiplications/divisions and additions/subtractions. If you however have inline power notations with "^" symbol they are evaluated right-to-left. There are exceptions but those are typically well known in the industry. For example MathCad also evaluates powers from left to right, which is fairly untypical.

It's not wrong if you make clear what you are doing. You can for example in a diagram call the axis a and b, not really wrong but pretty untypical if everybody else uses x and y, so you should have at least good reasons when doing it differently.

view more: ‹ prev next ›

wischi

joined 2 years ago