WTF Bites


  • Notification Spam Recipient

    @Bulb said in WTF Bites:

    snap

    Oh yeah, it was the snap version initially that gets installed by default (apparently). Been several reboots because I also did updates which ("eventually") needed a reboot.

    I think there's likely a dynamically linked library somewhere that's crashing elsewhere that's not logged that somehow brings down the whole process without "technically" crashing.

    Oh well, can't investigate as I already delivered it, they don't use the PC to browse the web anyways.


  • Notification Spam Recipient

    @Applied-Mediocrity said in WTF Bites:

    just one more arcane command

    Be careful the arcane command is done right, otherwise you might end up needing a chain of them to get back to where you were before!



  • @Benjamin-Hall said in WTF Bites:

    @Arantor said in WTF Bites:

    @HardwareGeek it's becoming a less shit language each year.

    (Begin snark) At this rate, it might even become usable this millennium! (End snark)

    But really, yeah. I'd rather write modern PHP than straight JavaScript.

    In other news, another developer and I spent 30 minutes trying to figure out why checking if a C with classes pointer was null was throwing SIGSEV errors. Turns out we both missed that the monkeys who wrote the code initially didn't use braces for one line blocks, so adding logging to try to diagnose a different null pointer bug caused this one to both crash and not print the logs. :headdesk:

    I love code in the form of

    if (statement_longer_than_the_end_of_line) doSomething();
    {
        doMoreThings();
    }


  • @BernieTheBernie said in WTF Bites:

    I love code in the form of

    if (statement_longer_than_the_end_of_line) doSomething();
    {
        doMoreThings();
    }
    

    Does the death penalty still exist in your corner of Europastan?



  • @HardwareGeek No. So I could off created such smart code for my cow-orkers to be plagued with after me leaving the company.
    But anyway, I left them a few gems of intended :wtf:s mentioned in earlier messages.



  • @BernieTheBernie said in WTF Bites:

    I could off

    Abolishing the death penalty was a mistake.


  • Discourse touched me in a no-no place

    @BernieTheBernie said in WTF Bites:

    I love code in the form of

    if (statement_longer_than_the_end_of_line) doSomething();
    {
        doMoreThings();
    }
    

    That's why I use an enforced code style at work that requires a bunch of things that mitigate such problems. Such tools tend to be griped at by everyone when introduced... and then loved once people realise they also mean not putting up with everyone else's stupid style problems.



  • @dkf said in WTF Bites:

    That's why I use an enforced code style at work that requires a bunch of things

    :ralph: When ReSharper InspectCode was still active at InniTech, it showed some 20,000 violations of the coding style.

    and then loved

    :laugh-harder: :nelson:


  • ♿ (Parody)

    @Arantor said in WTF Bites:

    @topspin just use PHP and you won’t have this drama. :tro-pop-wave:

    M_PI_TRANSCENDENTAL
    M_PI_IRRATIONAL
    M_PI_REAL
    M_PI_CLOSE_ENOUGH


  • ♿ (Parody)

    @Bulb said in WTF Bites:

    Quite a while ago, they added a feature that stops the automatic upgrade from happening when the program is running, which is doubly weird, because updating packages of running programs normally works even for traditional packages and this is well isolated containers. Instead it pops up a notification that you should upgrade the app, but then there is nothing to notice you closed it, so you can't just restart Chromium or Firefox when the thing pops up, you have to trigger the update yourself or wait an hour or something for the periodic check to do it. Who the hell ever closes their browser these days‽ And browsers are the primary use-case for snap, and the point was keeping them up-to-dat

    Yeah, that's kind of annoying, but not nearly so much as that they didn't include the smart card libs in what they ship! And because it's all isolated, you can't just point the stuff at the libs you have installed.


  • ♿ (Parody)

    SELECT Posts.*, Channels.TeamId
      FROM Posts LEFT JOIN Channels ON Posts.ChannelId = Channels.Id
      WHERE
        Posts.CreateAt > ?1
        OR
        (Posts.CreateAt = ?1 AND Posts.Id > ?2)
      ORDER BY Posts.CreateAt ASC, Posts.Id ASC
      LIMIT ?3;
    

    Formatting a query like this makes me twitch. FTR, if I wrote this query it'd probably look something like:

    SELECT 
      p.id,
      p.ChannelId
      p.CreateAt,
      p.field_1,
      ...,
      p.field_n,
      c.TeamId
    FROM Posts p
    LEFT JOIN Channels c ON p.ChannelId = c.Id
    WHERE p.CreateAt > ?1
        OR (p.CreateAt = ?1 AND p.Id > ?2)
    ORDER BY p.CreateAt, p.Id
    LIMIT ?3;
    

    Eh...the content at the link is all pgsql specific, and fuck those guys, 'cause I only use DBs where the empty string is null. OK, OK, sometimes I have to use sql server. But only under protest.



  • @Tsaukpaetra said in WTF Bites:

    I think there's likely a dynamically linked library somewhere that's crashing elsewhere that's not logged that somehow brings down the whole process without "technically" crashing.

    That's kinda TheThing™ that snap Should™ be safe from, because it's a container that only has two layers—core22 and firefox—so it Should™ be easy to test. Well, it's not completely true, there is also some binding of the graphic driver (direct rendering) libraries going on and some other shenanigans, and I did already have to revert an update once because it was broken, so that's an option too.

    I still find an error in plugging the sockets somewhat more likely.

    @boomzilla said in WTF Bites:

    Yeah, that's kind of annoying, but not nearly so much as that they didn't include the smart card libs in what they ship! And because it's all isolated, you can't just point the stuff at the libs you have installed.

    Yeah, Mozilla (because the firefox snap is made by mozilla, not canonical) kinda has tendency to memory-hole some bug reports ☹.


  • ♿ (Parody)

    @Bulb fortunately google runs their own .deb repository so I can install a normal chrome and use smartcard authentication that way.



  • @BernieTheBernie said in WTF Bites:

    @dkf said in WTF Bites:

    That's why I use an enforced code style at work that requires a bunch of things

    :ralph: When ReSharper InspectCode was still active at InniTech, it showed some 20,000 violations of the coding style.

    and then loved

    :laugh-harder: :nelson:

    In a project a couple of years ago, someone suggested reformatting everything with clang-format and then enforcing it's kept formatted with a build-time check. Most developers said yes, because the formatting was really all over the place, it was approved, we got so far as to agreeing on a ruleset, writing it down and creating the appropriate build targets … and then it was never applied, because there were two forks of that codebase in two related projects and while everybody kept talking about doing a merge to bring them in sync, the merge was getting postponed and the formatting would have to be done during the merge, otherwise it would make the merge impossible in future. Sigh…



  • @boomzilla said in WTF Bites:

    Eh...the content at the link is all pgsql specific, and fuck those guys

    And it boils down to the PostgreSQL query optimizer being rather crappy. Because I'd totally expect an optimizer to realize that x > ?1 or (x = ?1 and y > ?2) being equivalent to (x, y) > (?1, ?2) and to optimize the query based on that understanding.

    Especially since PostgreSQL does not have an indexed by hint like some other databases.


  • ♿ (Parody)

    @Bulb yeah, I kind of came to that tentative opinion, but optimizing queries is weird.


  • 🚽 Regular

    @Bulb said in WTF Bites:

    the formatting would have to be done during the merge, otherwise it would make the merge impossible in future.

    😕



  • @boomzilla said in WTF Bites:

    @Arantor said in WTF Bites:

    @topspin just use PHP and you won’t have this drama. :tro-pop-wave:

    M_PI_TRANSCENDENTAL
    M_PI_IRRATIONAL
    M_PI_REAL
    M_PI_CLOSE_ENOUGH

    No, it actually is M_PI in PHP, contains 3.1415926535898.



  • @Arantor said in WTF Bites:

    @boomzilla said in WTF Bites:

    @Arantor said in WTF Bites:

    @topspin just use PHP and you won’t have this drama. :tro-pop-wave:

    M_PI_TRANSCENDENTAL
    M_PI_IRRATIONAL
    M_PI_REAL
    M_PI_CLOSE_ENOUGH

    No, it actually is M_PI in PHP, contains 3.1415926535898.

    3.141592653589793, but display precision may be less.



  • @Zecc said in WTF Bites:

    @Bulb said in WTF Bites:

    the formatting would have to be done during the merge, otherwise it would make the merge impossible in future.

    😕

    The three-way merge algorithm is line-based and does not understand the language. So if you change the formatting of one branch, radically, including joining some lines and breaking others, that side will be almost completely different from the base as far as the merge is concerned. Therefore all the changes on the other side will be conflicts. And the codebase was large enough that trying to manually resolve that would take ages and too many mistakes would be made in the process.

    The only way to do something like that is to merge with the original formatting, then format the result of the merge and propagate that to all the branches, because that merge will then be fast-forward (no changes on the other side, so no need to run the 3-way merge).

    This was compounded by the fact that it was still in the old TFS, which was part of the reason everybody was reluctant to try to do the merge. On the other hand it has a nice feature called “gated check-in” where changes would only be committed if they passed a build. Something that Should™ be easier to do with git, but none of the usual repository servers even tries to set it up by default.



  • @Watson said in WTF Bites:

    @Arantor said in WTF Bites:

    @boomzilla said in WTF Bites:

    @Arantor said in WTF Bites:

    @topspin just use PHP and you won’t have this drama. :tro-pop-wave:

    M_PI_TRANSCENDENTAL
    M_PI_IRRATIONAL
    M_PI_REAL
    M_PI_CLOSE_ENOUGH

    No, it actually is M_PI in PHP, contains 3.1415926535898.

    3.141592653589793, but display precision may be less.

    Well, I just went echo M_PI; and copy/pasta the result.

    But it gets weirder, because internally the source actually defines it as:

    const M_PI = 3.14159265358979323846;

    And then when it registers the constant into the PHP userland as a “double” it must lose something because it ends up being checked that it matches the value you have.



  • @Arantor said in WTF Bites:

    it must lose something

    Of course; standard IEEE 64-bit floating point format has about¹ 16 decimal digits of precision and the constant is declared with, if I am counting correctly, 21 decimal digits.

    Edit: Unless PHP double is actually the x86 80-bit “long double”, which does have precision² of 21 significant decimal digits.


    ¹ Of course it is actually 53 binary digits, so the values don't exactly line up, and there is fairly complicated algorithm to calculate the shortest decimal number that will read back as the given binary value, but roughly 10 binary digits correspond to 3 decimal digits of precision.
    ² 63³ binary digits
    ³ … because unlike the normal IEEE formats it doesn't use implicit leading 1.


  • Discourse touched me in a no-no place

    @Bulb said in WTF Bites:

    On the other hand it has a nice feature called “gated check-in” where changes would only be committed if they passed a build. Something that Should™ be easier to do with git, but none of the usual repository servers even tries to set it up by default.

    Philosophically, they prefer to put the gating on merges to the main branch(es) rather than commits (there's a few minor technical advantages to doing so). Some teams like pre-commit hooks, but they're not that common, especially for expensive checks.


  • Considered Harmful

    @Bulb said in WTF Bites:

    • Quite a while ago, they added a feature that stops the automatic upgrade from happening when the program is running, which is doubly weird, because updating packages of running programs normally works even for traditional packages and this is well isolated containers.

    Obviously that's an attempt to make people feel at home who are used to "cannot back up this Word document because somebody who went on vacation yesterday had it open on their workstation and just suspended instead of shutting down". But I'm afraid anything short of a forced reboot after a forced update is just not the original experience.

    ObWTF:


  • Discourse touched me in a no-no place

    @Bulb said in WTF Bites:

    Of course; standard IEEE 64-bit floating point format has about¹ 16 decimal digits of precision

    17 digits for all the nuances, of which 15 are accurate when using common "simple" rendering algorithms such as those in libc. Doing better tends to require things like bignums and scarily complicated algorithms that need a real expert to understand. I'm not such an expert. I can read what the code does, but don't grasp why it is a good idea for it to be doing the specific things it does in the way it does them.



  • @dkf said in WTF Bites:

    @Bulb said in WTF Bites:

    On the other hand it has a nice feature called “gated check-in” where changes would only be committed if they passed a build. Something that Should™ be easier to do with git, but none of the usual repository servers even tries to set it up by default.

    Philosophically, they prefer to put the gating on merges to the main branch(es) rather than commits (there's a few minor technical advantages to doing so).

    That's what I meant—the DVCS equivalent of CVCS check-in is push, not commit—and that none of the common repository servers does by default or at least easily.

    Basically in most of them it is easy to set them so that a pull-request cannot be merged unless that branch built, but not so that the result of the merge must build before it is actually pushed to the target branch.

    Some teams like pre-commit hooks, but they're not that common, especially for expensive checks.

    They are per-checkout, easily bypassed and get in the way of properly working with change stacks. No, I never meant those.


  • BINNED

    @Bulb said in WTF Bites:

    Quite a while ago, they added a feature that stops the automatic upgrade from happening when the program is running, which is doubly weird, because updating packages of running programs normally works even for traditional packages and this is well isolated containers.

    Except it doesn't.
    Around once a month I get a message of "Restart required" on the new tab page of Firefox, or alternatively, if I don't open a new tab to see that message, OWA just doesn't update anymore or I get a crash when I open the file picker.

    I also have the problem that I run a nightly build of some internal software and when I use the resulting binary directly and keep it open, I get a SIGBUS when it's overwritten. From what I read, this shouldn't happen, as Linux has no problem removing running binaries (Windows will just put an exclusive lock on it) and keeping the unnamed inode around as long as necessary, so I assume this is some stupid bug related to our NFS. But, of course, even without that you can still get a crash due to lazy-loading so's that have changed between builds.


  • Discourse touched me in a no-no place

    @Bulb said in WTF Bites:

    Basically in most of them it is easy to set them so that a pull-request cannot be merged unless that branch built, but not so that the result of the merge must build before it is actually pushed to the target branch.

    That sounds like a Github Pull Request build. Unlike the push-triggered builds, PR builds are done on a post-merge commit (on a temporary branch so the real branch tip isn't moved) so you can have a pretty good idea if they work. Unless you're doing :airquotes: clever :airquotes: stuff like reading the branch name directly from git and requiring that to be a specific thing for the build to work. Don't do that.



  • @topspin said in WTF Bites:

    @Bulb said in WTF Bites:

    Quite a while ago, they added a feature that stops the automatic upgrade from happening when the program is running, which is doubly weird, because updating packages of running programs normally works even for traditional packages and this is well isolated containers.

    Except it doesn't.
    Around once a month I get a message of "Restart required" on the new tab page of Firefox, or alternatively, if I don't open a new tab to see that message, OWA just doesn't update anymore or I get a crash when I open the file picker.

    That's weird, it's not that long since I last got the pop-up that I need to close Firefox to get it upgraded.

    I also have the problem that I run a nightly build of some internal software and when I use the resulting binary directly and keep it open, I get a SIGBUS when it's overwritten. From what I read, this shouldn't happen, as Linux has no problem removing running binaries (Windows will just put an exclusive lock on it) and keeping the unnamed inode around as long as necessary, so I assume this is some stupid bug related to our NFS. But, of course, even without that you can still get a crash due to lazy-loading so's that have changed between builds.

    NfsIsDifferent™

    Locally, the system will just keep the unnamed inode around and clean it up when the handle is closed, but IIRC NFS is stateless and does not actually keep track of whether the file is open, so there the server deletes it and if the client drops it from cache and needs to reload it, it'll fail and crash.


  • 🚽 Regular

    @Bulb said in WTF Bites:

    The three-way merge algorithm is line-based and does not understand the language. So if you change the formatting of one branch, radically, including joining some lines and breaking others, that side will be almost completely different from the base as far as the merge is concerned. Therefore all the changes on the other side will be conflicts. And the codebase was large enough that trying to manually resolve that would take ages and too many mistakes would be made in the process.

    Okay, I don't know if TFS allows the same kind of merge/rebase shenanigans git enables.

    I figured you could create an new version of your base branch with formatting applied, and apply formatting to each dev branch, then merge in the new formatted base while blindly ignoring any (whitespace-only) changes it introduces .

    Then all dev branches should have formatting applied while also having a common parent where formatting is also applied. Which shouldn't be worse than the original situation where you wanted to do the 3-way merge, right?


  • BINNED

    @Bulb said in WTF Bites:

    @topspin said in WTF Bites:

    @Bulb said in WTF Bites:

    Quite a while ago, they added a feature that stops the automatic upgrade from happening when the program is running, which is doubly weird, because updating packages of running programs normally works even for traditional packages and this is well isolated containers.

    Except it doesn't.
    Around once a month I get a message of "Restart required" on the new tab page of Firefox, or alternatively, if I don't open a new tab to see that message, OWA just doesn't update anymore or I get a crash when I open the file picker.

    That's weird, it's not that long since I last got the pop-up that I need to close Firefox to get it upgraded.

    I got the message just this morning.

    I also have the problem that I run a nightly build of some internal software and when I use the resulting binary directly and keep it open, I get a SIGBUS when it's overwritten. From what I read, this shouldn't happen, as Linux has no problem removing running binaries (Windows will just put an exclusive lock on it) and keeping the unnamed inode around as long as necessary, so I assume this is some stupid bug related to our NFS. But, of course, even without that you can still get a crash due to lazy-loading so's that have changed between builds.

    NfsIsDifferent™

    Locally, the system will just keep the unnamed inode around and clean it up when the handle is closed, but IIRC NFS is stateless and does not actually keep track of whether the file is open, so there the server deletes it and if the client drops it from cache and needs to reload it, it'll fail and crash.

    That is my understanding, too. Still seems like a flaw, as it breaks semantics of how the file system works. If NFS can't guarantee to give you the file back, it should not be used as backing store and thus the file never be dropped from cache.



  • @Zecc said in WTF Bites:

    @Bulb said in WTF Bites:

    The three-way merge algorithm is line-based and does not understand the language. So if you change the formatting of one branch, radically, including joining some lines and breaking others, that side will be almost completely different from the base as far as the merge is concerned. Therefore all the changes on the other side will be conflicts. And the codebase was large enough that trying to manually resolve that would take ages and too many mistakes would be made in the process.

    Okay, I don't know if TFS allows the same kind of merge/rebase shenanigans git enables.

    The 3-way merge algorithm didn't really change since the merge utility was written over 40 years ago, and the principle didn't change either. The difference is mainly in how well the merges are tracked for the purpose of finding the most recent common ancestor, in which e.g. subversion has some problems, but also some advantages over git (it can track cherry-picks). And then git makes it easier to work with the revision graph and is faster, because its author considers performance an important feature.

    I figured you could create an new version of your base branch with formatting applied, and apply formatting to each dev branch, then merge in the new formatted base while blindly ignoring any (whitespace-only) changes it introduces .

    Then all dev branches should have formatting applied while also having a common parent where formatting is also applied. Which shouldn't be worse than the original situation where you wanted to do the 3-way merge, right?

    The version control system won't usually let you use a pretend merge base. But what you can do is:

    • Merge up to the revision before the formatting.
    • Merge the formatting, but reject all the incoming changes and format the result of the previous merge instead.
    • Proceed from there.

    But everybody treated that version control system like a shitted stick, so nobody wanted to do that.



  • @topspin said in WTF Bites:

    @Bulb said in WTF Bites:

    @topspin said in WTF Bites:

    @Bulb said in WTF Bites:

    Quite a while ago, they added a feature that stops the automatic upgrade from happening when the program is running, which is doubly weird, because updating packages of running programs normally works even for traditional packages and this is well isolated containers.

    Except it doesn't.
    Around once a month I get a message of "Restart required" on the new tab page of Firefox, or alternatively, if I don't open a new tab to see that message, OWA just doesn't update anymore or I get a crash when I open the file picker.

    That's weird, it's not that long since I last got the pop-up that I need to close Firefox to get it upgraded.

    I got the message just this morning.

    I don't mean from Firefox though, I mean from snap, as a desktop toast notification. With firefox still running, at the old version, just fine.

    I also have the problem that I run a nightly build of some internal software and when I use the resulting binary directly and keep it open, I get a SIGBUS when it's overwritten. From what I read, this shouldn't happen, as Linux has no problem removing running binaries (Windows will just put an exclusive lock on it) and keeping the unnamed inode around as long as necessary, so I assume this is some stupid bug related to our NFS. But, of course, even without that you can still get a crash due to lazy-loading so's that have changed between builds.

    NfsIsDifferent™

    Locally, the system will just keep the unnamed inode around and clean it up when the handle is closed, but IIRC NFS is stateless and does not actually keep track of whether the file is open, so there the server deletes it and if the client drops it from cache and needs to reload it, it'll fail and crash.

    That is my understanding, too. Still seems like a flaw, as it breaks semantics of how the file system works. If NFS can't guarantee to give you the file back, it should not be used as backing store and thus the file never be dropped from cache.

    There are some network filesystems that copy open files locally, but the NFS client reads the files directly and cache just means the generic page cache, which can't be controlled at this level.


  • BINNED

    @Bulb said in WTF Bites:

    @topspin said in WTF Bites:

    @Bulb said in WTF Bites:

    @topspin said in WTF Bites:

    @Bulb said in WTF Bites:

    Quite a while ago, they added a feature that stops the automatic upgrade from happening when the program is running, which is doubly weird, because updating packages of running programs normally works even for traditional packages and this is well isolated containers.

    Except it doesn't.
    Around once a month I get a message of "Restart required" on the new tab page of Firefox, or alternatively, if I don't open a new tab to see that message, OWA just doesn't update anymore or I get a crash when I open the file picker.

    That's weird, it's not that long since I last got the pop-up that I need to close Firefox to get it upgraded.

    I got the message just this morning.

    I don't mean from Firefox though, I mean from snap, as a desktop toast notification. With firefox still running, at the old version, just fine.

    I don't have snap. My comment applied to "updating packages of running programs normally works even for traditional packages". Firefox gets updated, I need to close it or it refuses to work / crashes.



  • @topspin Well, yes, when the normal packages upgrade in background, you have to restart the software. But only after it upgrades, so you can simply restart it rather than having to additionally wait for the upgrade to happen.


  • Discourse touched me in a no-no place

    @Bulb said in WTF Bites:

    There are some network filesystems that copy open files locally, but the NFS client reads the files directly and cache just means the generic page cache, which can't be controlled at this level.

    The problem is the old distributed consensus problem (between server and all clients) and that's well known to be viciously difficult at best. It's fundamentally the same problem as locking in a networked filesystem; you can't stop the network from breaking nastily and that makes deciding when anything happens really really hard.



  • @Bulb said in WTF Bites:

    NfsIsDifferent™
    Locally, the system will just keep the unnamed inode around and clean it up when the handle is closed, but IIRC NFS is stateless and does not actually keep track of whether the file is open, so there the server deletes it and if the client drops it from cache and needs to reload it, it'll fail and crash.

    If that's true, what are the .nfs12345678901234567890 files I see when I delete open files? IIRC, these don't spontaneously disappear when the files are closed; they are normal files (with unusual, hidden names) and have to be cleaned up manually.

    Of course, if something tries to reopen it by name, it will either fail, if it was deleted, or get the new version, if it was overwritten.


  • Discourse touched me in a no-no place

    @HardwareGeek said in WTF Bites:

    If that's true, what are the .nfs12345678901234567890 files I see when I delete open files?

    Client OS artefacts. Zombie files, waiting in Limbo for the moment to truly shuffle off this mortal coil.



  • @dkf The OS knows that NFS won't keep the anonymous inode if it deletes the file, so instead it renames it to the zombie name. To NFS, it's just an ordinary (not deleted) file that happens to have a funny name. It's up to the OS to clean it up (or not) when it's closed.

    Is that right?


  • Notification Spam Recipient



  • Just another reminder of "I hate xcode"...

    So, I use an env variable in the xcode project (so I can easily switch between wxWidget versions). This has worked for years. (I'm now on Sonoma) Just installed an xcode update today. It no worky. Much cursing and hair pulling later...

    $WXWIN no longer works. But ${WXWIN} does.

    And more MacOS madness - just getting that WXWIN variable set. I have a file in ~/Library/LaunchAgents and in that there is a launchctl setenv WXWIN <path> command.



  • @HardwareGeek Yes. Except … it can only work if the same client that has the file open deletes the file. If one client has the file open and a different client deletes it, there is unfortunately no component that has all the information necessary to notice shit is about to happen and do something about it.



  • @dkf said in WTF Bites:

    That sounds like a Github Pull Request build.

    Hm, I haven't seen that used yet. Glad they added it. I'm just about to set up a new project at work that will be using github (customer's choice), so I'll be sure to try it.



  • The diameter of a softball is 3.8 inches, and the circumference can range from 11 to 16 inches.

    That's not how diameter and circumference work.



  • @HardwareGeek said in WTF Bites:

    The diameter of a softball is 3.8 inches, and the circumference can range from 11 to 16 inches.

    That's not how diameter and circumference work.

    Don't be too sure with our current education system...



  • @dcon said in WTF Bites:

    Don't be too sure with our current education system...

    Yes, but this isn't :trolley-garage:.



  • @HardwareGeek said in WTF Bites:

    @dcon said in WTF Bites:

    Don't be too sure with our current education system...

    Yes, but this isn't :trolley-garage:.

    👀 Oops...


  • Considered Harmful

    @HardwareGeek said in WTF Bites:

    The diameter of a softball is 3.8 inches, and the circumference can range from 11 to 16 inches.

    That's not how diameter and circumference work.

    The whole thing sounds like an LLM trained on Indian high school kids' term papers.



  • @LaoC said in WTF Bites:

    @HardwareGeek said in WTF Bites:

    The diameter of a softball is 3.8 inches, and the circumference can range from 11 to 16 inches.

    That's not how diameter and circumference work.

    The whole thing sounds like an LLM trained on Indian high school kids' term papers.

    Could be. I didn't read the actual page, just the search preview; that had the information I needed. (Looking for the diameter in comparison to hail occurring somewhere in the US Midwest. The diameter of the hail corresponds to the upper part of the softball circumference range, about 15" circumference, 4.7-4.8" (12 cm) diameter. That's big hail.)



  • @HardwareGeek said in WTF Bites:

    The diameter of a softball is 3.8 inches, and the circumference can range from 11 to 16 inches.

    That's not how diameter and circumference work.

    Come on. Would you expect jocks to understand that?

    (:pendant:: Jocks don't play softball, :faxbarrierjoker:, etc.)


Log in to reply