WTF Bites
-
Why didn't they even do a basic test of “yeah, that looks OK” is a separate question.
@Zerosquare said in WTF is happening with Windows 10? And nothing else:
"QA is expensive, let's
go shoppingfire the testers and let the users find the bugs themselves"
-
Why didn't they even do a basic test of “yeah, that looks OK” is a separate question.
The Discopocalypse thread is
Are you suggesting MS fired QA because the engineering team got mad at how many bugs they were finding?
-
@Gąska The QA team was "not welcome here"
-
Why didn't they even do a basic test of “yeah, that looks OK” is a separate question.
When the impacted version of Excel was released (Sept 2017), Catalina was 2 years from release (Oct 2019).
-
@loopback0 oh. That changes everything.
-
Why didn't they even do a basic test of “yeah, that looks OK” is a separate question.
Maybe that version of Excel shipped before Catalina was in existence?
edit: 'd
-
@cvi that’s basically just Shannon coding.
-
@anonymous234 said in WTF Bites:
How on earth does that even happen?
Fucked up transformation matrix, and that's probably there so that they can pretend that the origin of the window is in the same place it is in Windows.
That wouldn’t explain why it happens on Catalina only. Must be some OS change.
-
Fucked up transformation matrix, and that's probably there so that they can pretend that the origin of the window is in the same place it is in Windows.
It does not affect the whole canvas though, just the textboxes, each separately, and not even all of them as the graph labels and the two rows at the bottom are upside up.
… it actually can be a transformation matrix. It might be that Microsoft used a transformation matrix in some unusual way on the text and the OS update broke it in just some corner cases that affect this particular use.
-
It might be that Microsoft used a transformation matrix in some unusual way on the text
Thinking about it a bit more (and given that I've done work with fancy font rendering in both Windows and macOS) I think the problem is that:
- MS are using the transformation matrix to put the effective window origin in the top left (the macOS drawing layer uses the bottom left, same as Postscript, and has done for a long time).
- The transformation matrix is supposed to affect the font as well, but somehow MS had found an edge case where it wasn't, and in Catalina that bug was fixed (so things worked like documented) by Apple. Great… except that code that used that old method now breaks.
The problem is somewhere in the code to draw text within a bounding box. Note that the overall positioning of the text is correct; it's just flipped about its centreline. Usually when you screw up transformations with text the mess is far worse to work with.
-
I don't know if it's Firefox's fault, or Tampermonkey, NodeBB, Linux or what, but in the past few days I've been seeing my userscripts error out because they can't find
$
. The problem goes away after refreshing a couple times, but eventually comes back until I refresh again.
Filed under: Fuck you, give me $
-
I don't know if it's Firefox's fault, or Tampermonkey, NodeBB, Linux or what, but in the past few days I've been seeing my userscripts error out because they can't find
$
. The problem goes away after refreshing a couple times, but eventually comes back until I refresh again.
Filed under: Fuck you, give me $
I'm gonna blame FF. I can't paste images into edit edit box. And pasting urls into Facebook causes that edit window to vanish (only fix is refresh, yes leave the fucking page and lose everything I typed)
-
Well well well, what have I got here:
bool process(int line_nr, char* action) { switch (autogenerated_xml_parser_global[line_nr - 1]->action) { default: case ns2__action__I: (void)strcpy(action, "I"); break; case ns2__action__U: (void)strcpy(action, "U"); break; case ns2__action__D: (void)strcpy(action, "D"); break; } return true; } ... std::string action; bool success; action.reserve(20); success = process(line_nr, reinterpret_cast<int32_t>(action.data)); if (success) { if (action == 'I') { command.action = action_insert; } else { if (action == 'U') { command.action = action_update; } else { if (action == 'D') { command.action = action_delete; } else { success = false; } } } }
There is a suspicion that there is a bug in this code or in the code around it...
-
Well well well, what have I got here:
bool process(int line_nr, char* action) { switch (autogenerated_xml_parser_global[line_nr - 1]->action) { default: case ns2__action__I: (void)strcpy(action, "I"); break; case ns2__action__U: (void)strcpy(action, "U"); break; case ns2__action__D: (void)strcpy(action, "D"); break; } return true; } ... std::string action; bool success; action.reserve(20); success = process(line_nr, reinterpret_cast<int32_t>(action.data)); if (success) { if (action == 'I') { command.action = action_insert; } else { if (action == 'U') { command.action = action_update; } else { if (action == 'D') { command.action = action_delete; } else { success = false; } } } }
There is a suspicion that there is a bug in this code or in the code around it...
Exactly. It is missing something:
case ns2__action__F: (void)strcpy(action, "F"); break; ... if (action == 'D') { command.action = action_delete; } else { if (action == 'F') { command.action = action_frist; } else { success = false; } }
-
success = process(line_nr, reinterpret_cast<int32_t>(action.data));
Ok, it's C++, so
bool process(int line_nr, char* action)
implicit
int
→char *
cast shouldn't even compile, no?
-
@Bulb Oh, yes, the "process" function is wrapped in an 'extern "C"'
-
This post is deleted!
-
@Bulb Oh, yes, the "process" function is wrapped in an 'extern "C"'
Even if I wrap it all in
extern "C"
, both compilers still complain that it's not a valid conversion.Of course the
[-fpermissive]
note attached to the g++ error indicates that a sufficiently ancient version of it would accept it.
-
@Bulb Ah, I see it now. In the header file it is declared 'int32_t', but in the implementation it is 'char*'.
-
In the header file it is declared
int32_t
, but in the implementation it ischar*
.Of course it is. It's a good thing that all computers have those two types the same size!!!
-
@Bulb Ah, I see it now. In the header file it is declared 'int32_t', but in the implementation it is 'char*'.
… and it threw an undefined symbol error and instead of trying to understand what is going on the author simply wrapped it in
extern "C"
. Now…
-
success = process(line_nr, reinterpret_cast<int32_t>(action.data));
Ok, it's C++, so
bool process(int line_nr, char* action)
implicit int→char * cast shouldn't even compile, no?
action
is astd::string
, andstd::string::data()
is a member function and not a member variable. GCC helpfully points out:error: invalid use of member function (did you forget the '()' ?)
Or, to quote your follow-up post:
-
@cvi True; I checked the int → char * part and didn't check the other half. And, um, yes, that does not compile even with permissive, so which effing broken compiler ever accepted that?
-
@Bulb Ah, I see it now. In the header file it is declared 'int32_t', but in the implementation it is 'char*'.
Also, how does the compiler not complain that the definition does not match the declaration? It is in extern "C" block, so it isn't an overload.
-
-
@cvi Cool. But I anonymised the code a bit and apparently made a small mistake in that. The real code doesn’t make that mistake.
And the bug turned out to be in a wholly other subsystem, so the code I tripped over does actually work, horrible as it is.
-
@Bulb Ah, I see it now. In the header file it is declared 'int32_t', but in the implementation it is 'char*'.
Also, how does the compiler not complain that the definition does not match the declaration? It is in extern "C" block, so it isn't an overload.
I've only skimmed some of the posts so I may be missing something, but if it's in
extern "C"
block there's no name-mangling (besides the underscore), so the compiler doesn't see that the different TU defines it differently and for the linker both have the same name. I think...
-
Helpful hints:
-
-
Cigna doesn't let me select primary doctor until I disable ad blocker.
-
Ask your doctor to write a statement saying you're severely allergic to ads.
Then forward it to your insurance company, with a letter claiming their website is not accessible to people with your disability, and thus illegally discriminating
-
Cigna doesn't let me select primary doctor until I disable ad blocker.
That’s the most American thing I’ve read... let’s say all day.
-
Cigna doesn't let me select primary doctor until I disable ad blocker.
I wonder if that's intentional, "accidental", or accidental
-
@sloosecannon definitely accidental. It tries hard then gives a generic error "you can't select PCP at this moment, please try again later", and the console contains some errors about missing objects and failed CORS requests.
-
@sloosecannon definitely accidental. It tries hard then gives a generic error "you can't select PCP at this moment, please try again later", and the console contains some errors about missing objects and failed CORS requests.
Ah. So their page is fragile enough to blow up when ads are blocked. Lovely.
-
you can't select PCP at this moment
Well, expecting your insurance to cover usage of recreative drugs is a bit excessive...
-
@Zerosquare American doctors are big on opioids.
-
@sloosecannon said in WTF Bites:
@sloosecannon definitely accidental. It tries hard then gives a generic error "you can't select PCP at this moment, please try again later", and the console contains some errors about missing objects and failed CORS requests.
Ah. So their page is fragile enough to blow up when ads are blocked. Lovely.
Why are there ads, anyway?!
-
@topspin I think it's "just" tracker scripts, not actual ads. Tracker scripts that are somehow mixed with functionality-critical code so that disabling them makes the page almost-but-not-quite usable.
-
Tracker scripts that are somehow mixed with functionality-critical code
Because tracking is business-critical, dontcha know. Welcome to Web 2020.
-
Setting up development proxy on Angular project, to some 3rd party API somewhere. The documentation says:
If you need to access a backend that is not on localhost, set the changeOrigin option as well.
So we set it. And get a 403 back. Yes, the authentication header is there and it works with it from postman. So on a hunch we delete that option. Suddenly it gets expected 202 status. So they allow
http://localhost:4200
as origin? No, if we add that to postman, we get 403 as well. What really happens is that the proxy will remove theOrigin
header by default, and rewrite it to same as the server with the option. Do you think the documentation says? No.I guess such quality of Angular documentation surprises nobody, does it?
-
Cigna doesn't let me select primary doctor until I disable ad blocker.
Also may adblocker has some false positives - just have some "ad" some where in the URL (may even happen with a guid in the URL, since "a" and "d" are hexadecimal characters) ...
-
@BernieTheBernie said in WTF Bites:
Cigna doesn't let me select primary doctor until I disable ad blocker.
Also may adblocker has some false positives - just have some "ad" some where in the URL (may even happen with a guid in the URL, since "a" and "d" are hexadecimal characters) ...
Unlikely. Blocking
*ad*
is a good way to block a lot of perfectly cromulent things. In my experience the broadest blocking is domain level, andhttps://us1.ad.cache.global.adsense.com
is unlikely to be used for much other than ads
-
@HardwareGeek said in WTF Bites:
Tracker scripts that are somehow mixed with functionality-critical code
Because tracking is business-critical, dontcha know. Welcome to Web 2020.
Since courts keep forcing them to actually pay for what they say they cover, they've gotta make their money somewhere!
-
@sloosecannon said in WTF Bites:
In my experience the broadest blocking is domain level,
I love
https://someonewhocares.org/hosts/
-
@sloosecannon said in WTF Bites:
In my experience the broadest blocking is domain level
By using a proxy.pac script, I do block what.thedailywtf.com/ads/ without blocking other things on what.thedailywtf.com/.
-
@BernieTheBernie said in WTF Bites:
Cigna doesn't let me select primary doctor until I disable ad blocker.
Also may adblocker has some false positives - just have some "ad" some where in the URL (may even happen with a guid in the URL, since "a" and "d" are hexadecimal characters) ...
I see that we still haven't learned from clbuttic mistakes...
-
Get fucked. What an idiotic length restriction on a memorable word.
edit: This is a credit card company.
-
@loopback0 You mean that's not satire?
Filed under: Security Poe or Noe
-
@loopback0 Well fuck. I can't have abacab?
edit: guess that depends on the definition of consecutive - any or all?
keyboard sequences. Hm. Guess they're only after US people with qwerty keyboards...