@Luhmann Are you sure they're not underwater? They're clearly under a lot of watermarks...
Best posts made by Medinoc
-
RE: Internet of shit
-
RE: Microsoft debuts Bosque โ a yet another pointless programming language
(sees functions applied directly to collections)
So it's not a language without loops, it's just a language where the loops are hidden. Today's journalism in a nutshell.
-
Microsoft's Cl---ic mistake
The comments in Microsoft's "reference source" mention a
I wrote to them some time ago about it, but have so far noticed no change.---- condition
in some multithread libraries.
-
RE: WTF Bites
This reminds me of the Apple WTF which led my company to decide "Nope, we won't guarantee compatibility with Safari":
- Apple stopped making Safari for Windows in what seems to be 2015
- Apple's TOS forbid having, or even emulating, macOS on non-Apple hardware.
Needless to say, no one in their right mind wants to shell out for Apple hardware just for the sake of Safari users, so screw 'em.
-
RE: Mouse and Keyboard: And never the twain shall meet (aka: fuck you Microsoft's UX team)
It's that goddamned option invented to avoid scaring computer-illiterate people with underlined letters.
It was born either in Windows 95 OSR2, or Windows 98, and at the time it was called something like "Hide underlined letters until I press ALT". And initially, I think it defaulted to unchecked.
Then, in later windows versions such as Windows XP, it defaulted to checked (for the same principle as hiding file extensions: The kind of people who want them are the kind of people who are capable of finding out how to enable them, but those who DON'T want them will never find the option to disable them -- and whether they should be trusted with a computer in the first place is still up in the air)
And in Windows Vista and above, the option was inverted and moved to the Keyboard section of the Ease-Of-Access center: It's now the checkbox "Underline keyboard shortcuts and access keys", which defaults unchecked.
These two options are among the first I change whenever I land on a new computer.
Edited to add: Implementation-wise, I guess menus and controls call
SystemParametersInfo(SPI_GETKEYBOARDCUES)
and if set, they pass theDT_HIDEPREFIX
flag to theDrawText()
function. Well, except when some keyboard navigation is taking place. I wonder how they determine that, though... (Edit2: I found how. Thanks Raymond!)PS: Oh, and additional WTF: The documentation of DrawText does not underline the "normal" text properly in its examples.
-
RE: Wow! "NEW" Microsoft Teams!
I have been sent an image through Teams (here, it's the "old" Teams).
- I right-click the image, and select "Copy Image".
- Then I open Paint, and... Paste is grayed out.
- Uh? DId it copy the image as a file instead? I open Explorer, and... Paste is still grayed out.
- Then I open a clipboard viewer program, and it turns out... the contents is text.
<img src="data:image/png;base64,(anonymized;base 64 goes here)" alt="image" iscopyblocked="false">
Teams copies images as HTML with a data URL (which Paint can do nothing with), and not as actual images. -
RE: Youtube vs ad blockers
@jinpa "Contest losers will be robbed of their intellectual property. Contest winner will get a small cash prize... and be robbed of their intellectual property."
-
That thrice-damned "Schemas are users" nonsense
This horror is causing no shortage of problems on our application, because it uses multiple schemas to get some semblance of order in our databases. Works fine on SQL Server, but on Oracle, we get this absurdity:
>CREATE TABLE SOME_SCHEMA_NAME.someTable AS SELECT (stuff) --Result: OK dude no prob, your table is created. >SELECT COUNT(*) FROM SOME_SCHEMA_NAME.someTable --Result: I'm sorry Dave, I'm afraid I can't do that.
I just created the table! Why have I no right on something whose creator I am? And if you tell me "that's because you created it in someone else's pocket", then why did you let me create it in the first place?
-
RE: UI Bites
Just a little shout-out to Microsoft for deciding that most people don't actually want to easily know where a window ends and the neighboring one begins, a making that an optional feature disabled by default.
-
RE: A fool and his not-really-money are soon parted
It seems the most cryptocurrencies I learn the existence of, I only learn of when they crash and burn.
...
And I wouldn't have it any other way. -
RE: A fool and his not-really-money are soon parted
@boomzilla NFTs Worth $
1.8M0.00 That Some Fool paid $1.8M for Seized by UK Law Enforcement for the First Time -
RE: UI Bites
It took Microsoft years to finally add the asterisk to Notepad's title bar when the file contains unsaved changes... And in the Windows 11 version, they took it away when they replaced the titlebar with tabs:
-
RE: Helpful error message
Today I tried uninstalling Oracle Client 11g to update it, and got this magnificent error message. And before you ask, no, Ctrl+C in the messagebox does not work.
-
RE: A fool and his not-really-money are soon parted
"Runs on blockchain, what does that even mean" reminds me of invitations to
dock.io
I received recently. The e-mail says "dock.io is the professional network of the future built on blockchain" at which point my buzzword alarm trips and I stop reading.What would a "professional network" even need blockchain tech for?
-
RE: Teams is directionally challenged
A few weeks ago I was in an audio-conference with (among others) a guy in the same room as I. So I tried the "mute" button next to his icon, to avoid hearing him in "double".
... And accidentally discovered that it mutes him for everyone, not just me. In Teams, you can arbitrarily mute or unmute someone else. Whose bright idea was this? -
RE: WTF Bites
Just a quick venting at Adobe for the recent Flash update, because their installers still delete themselves on completion. Including when they fail.
-
RE: WTF Bites
That juice topic reminded me of this I've found at a couple hotels:
"For our juice dispenser we should have a touchscreen to select juice. Now how do we solve this problem?"
"I know, let's use an iPad! It's literally the only touchscreen of an appropriate size that exists!"
"BRILLANT!"Because you totally need to get a $400 tablet just for the touchscreen. Because there's NOT A SINGLE cheaper tablet that could do the job equally well, or even just a plain touchscreen connected to whatever logic controller the device is using. Idiots.
Reminds me of a vending machine I found in a train station last week. Through its window I could see that, for once, it had a product I liked. But when I tried buying it, I found that the touch-screen menu didn't feature said item. The machine had the thing in stock and didn't allow people to buy it!
-
RE: WTF Bites
I actually just got a mail that includes the phrase "do the needful".
Also bonus WTF: Even with Google with site:thedailywtf.com, I can't find the original Daily WTF article that made this phrase memetic (all I can find is comments and forum posts from after it became memetic).
-
RE: C# try/catch/finally
@Jaloopa said in C# try/catch/finally:
@error if enough people rely on the side effects they become de facto contractual
And Raymond will hate you for it. One day he's going to snap, hunt you down and force you to debug poorly written code.
-
RE: Hacking News
@Gustav said in Hacking News:
@LaoC said in Hacking News:
It cannot be the same as the stack-based ones because you won't overwrite any return addresses by simply going higher and higher - which is what virtually every overflow ACE exploit relies on.
There are open source exploits for Heartbleed, for Shellshock, for that Log4j thing, and many more. Not all exploits are embargoed. There must be the source code for a heap buffer overflow ACE exploit if such thing is possible at all. So until I see one - or someone explains the exact method it could be achieved - I'm going to assume it's not in fact possible and all the "may lead to ACE" you see in CVE descriptions are just the usual security researchers' fearmongering who abuse the fact you can't prove ACE isn't possible.
You cannot* overwrite a return address with a heap buffer overflow, but you could overwrite the vtable pointer or a nearby C++ (or some other OOP language) object that happens to have a vtable.
*I'm sure in some planetary-alignment-grade circumstances you could possibly have a heap buffer overflow that goes all the way up to the stack without encountering a non-writable page first...
Speaking of heap buffer overflows, apparently there's one in libwebp that was recently patched out in most browsers. -- this time with a confirmed ACE exploit in at least one program that used libwebp.
https://www.bleepingcomputer.com/news/security/google-assigns-new-maximum-rated-cve-to-libwebp-bug-exploited-in-attacks/ -
RE: A fool and his not-really-money are soon parted
Oh, you know what would be deliciously awful in its shining hypocrisy? Captain Planet NFTs.
-
RE: Pressure to upgrade to Windows 10 ratchets up. AGAIN.
Oh, and remember what I said here?
@Medinoc said in Pressure to upgrade to Windows 10 ratchets up. AGAIN.:
An hilariously bad thing about Microsoft Edge is that there is no option to "always ask where I want to download the file". They actually removed this feature from late IE versions, and never put it in Edge.
Which has the side-effect of making drive-by download attacks much easier, since all files can now be downloaded without user confirmation!
I actually submitted it as a bug like yesterday. Whithin a day is was closed as "by design" and deleted. Microsoft actually wants Edge to be vulnerable!
-
RE: A fool and his not-really-money are soon parted
@DogsB said:
NFTs Are Now Worthless
(with apologies to the forumgoer who first posted this, and
whom I'm currently ripping offwhom I right-clicked) -
RE: WTF Bites
A bot correcting a bot correcting a correction
That said, I find this mistake irksome enough to be worth correcting thrice.
Edit: Also, it fills my heart with warm and fuzzy feelings to learn that there are not just one, but several bots dedicated to (goose) stomping this single mistake out of existence.
-
RE: After reading some UX stuff on Medium
@Lorne-Kates Problem is, if your bathroom door has a knob that must be pulled by hand from the inside, it's already bad UX. A good bathroom door can be opened with your elbows. A great bathroom door doesn't even need that (e.g. it can be opened by pushing from either side, etc.)
-
RE: A fool and his not-really-money are soon parted
@loopback0 said in A fool and his not-really-money are soon parted:
We don't take Itchy & Scratchy money.
-
RE: WTF Bites
@hardwaregeek Assuming these placeholder names are replaced with something reasonable IRL, the former sounds perfect for me (at least as title; if it's the entirety of the bug report, someone's not doing their job right).
Also, please tell me the quoted text sentence is not yours. Because the required action is quite obvious from context: "Make the foo succeed at frobnicating the widget".
-
RE: Wow! "NEW" Microsoft Teams!
Teams just forcibly switched me to New Teams.
More accurately, it offered me the choice between "switch now" and "switch on exit", with no way to close the popup.
Then the toggle was still visible in New Teams, so I reverted back to working Teams immediately. -
RE: WTF Bites
Today we've been trying to update our version of a library.
... and it won't load, because the release ZIP contains a 32-bit DLL in the middle of the 64-bit ones. And yes, it's linked through the import table, so it can't be some intentional run-time dynamic linking shenanigans.Edit: Oh, and then we downloaded the sources to try and build a 64-bit version of that DLL. Of course, it fails.
Edit2: Turned out I was The Real WTF: The bitness mismatch wasn't the problem.
-
RE: WTF Bites
@Gern_Blaanston The oldest still-standing bridge in Paris is the pont neuf ("new bridge").
-
RE: WTF Bites
@cvi Yup, nowadays when there's an UB in the source, the compiler does whatever it pleases.
And as I learned from some article, it's even retroactive: The moment you're in a code branch that leads unconditionally to a UB, the compiler decides the whole branch is UB, therefore it can do whatever it pleases:void SomeFunction(int* somePointer) { if(somePointer == NULL) { puts("Oops!"); fflush(stdout); *somePointer = 0; //UB here } puts("Yeah!"); }
Since there's an UB in the if block, the whole block is UB, so you may never see the
Oops!
printed.The compiler may even decide that "whatever behavior it pleases" is the same as the "other" behavior, and "optimize" the function to this:
void SomeFunction(int* somePointer) { puts("Yeah!"); }
At least, that was what the article said. So I'm not surprised by the behavior you observe.
-
RE: A fool and his not-really-money are soon parted
@benjamin-hall said in A fool and his not-really-money are soon parted:
@lorne-kates Or maybe they're triggered by you saying
who were
e
ffectedwhen it should be
a
ffected? That might just be me (but I didn't downvote).(but I actually agree with you)
-
RE: UI Bites
Microsoft recently updated Outlook.com.
The toolbar changes seem mostly good, with one exception: The up/down arrow buttos for switching to the next and previous mail.
They changed them into buttons explicitly labeled "previous" and "next". "previous" always goes up in the list, "next" always goes down in the list.
...Even when mails are sorted by descending order of arrival. Especially when mails are sorted by descending order of arrival, I want to say, because AFAIK it's the order 90% of people use.Now, your once-unambiguous Up arrow button is now a button labeled "Previous" which in most cases takes you to the next mail, and vice versa.
I know, this is far from the first webmail to have this problem (my ISP's webmail had the same problem for years). But it's the webmail that used to eschew this misfeature, only to add it in yesterday.
-
RE: Product naming rant
@anonymous234 said in Product naming rant:
I get that CPUs are actually complicated and it might make sense here because most users don't usually see it and all that. But when you go to a consumer store and everything is "HP 15-AY117NS", "Asus F540SA-XX445T", "Acer ES1-523-237" (these are actual laptop names btw).
Is there a point to that? Does confusing your customers actually make more sales, or are their marketing people just terribly incompetent?
It allows retailers to proudly proclaim that they'll refund you the difference if you find the same make cheaper at another retailer: What they don't tell you is that they're the only one who sell a Brandยฎ Model 12345Cโข because that make was created specifically for them; go to a different retailer and you'll find a Brandยฎ Model 12345Dโข instead.
-
RE: CodeSOD collection
@bobjanova said in CodeSOD collection:
@BernieTheBernie said in CodeSOD collection:
How does [ Task.Run(() => CheckBlah(someParameter)).Wait(); ] differ from
[ CheckBlah(someParameter); ]In the simple case CheckBlah will be run on the current thread. In the Task.Run case, it will be run on another thread (one in the executor's thread pool, assuming a normal config), and the current thread will wait for it to finish (including waiting for it to get pipelined, if the thread pool is limited and busy).
It's hard to see any situation where that difference would be useful. You're still blocking the current thread, and you're also adding load into the thread pool and some OS thread switching/monitoring overhead. Your coworker almost certainly did not mean to do it. But there is a difference.
If the
CheckBlah
tasks does anything that can accept incoming events (like, say, show a modal message box) there is a big impact: The message box introduces reentrancy if it executes on the same thread (because a new event could come in while the message box is up, etc.). Using a task and Wait() would make it "truly blocking" for the calling thread.I know this because, well... WTF confession time! I had that exact problem with a program for a college project. Of course, the reason I had message boxes in the first place was because of another sin: I was indulging in
printf
-debugging my network application with message boxes. As events would come, dialog boxes would pile up (leading to wackiness if closed out of order)... So I resorted to this method to make my boxes "truly blocking". Which of course, hard the unfortunate side-effect of making the main thread unresponsive.I think I cleaned all that up by the end of the project (the program needed to work without requiring user intervention every second, after all), and there is a happy ending to this: I drew the lesson of never attempting to show any modal UI in response to events not in the user's control (like network events).
-
RE: WTF Bites
Some months ago, my old Windows Vista computer took several days to perform Windows Update. Now it takes several days and then BSODs without updating, which means Windows Update is now irretrievably broken on it. Ended up disabling it on that computer... Which means now, instead of having the balloon notification that there are updates waiting, I get the balloon notification that Windows Update is disabled. Sometimes you just can't win.
-
RE: Hacking News
I heard Apex Legends players were hacked through a vulnerability in the game's kernel-mode anti-cheat program (which makes their entire Windows install thoroughly compromised).
This kind of shit is (part of) why I don't play MMORPGs. If your game needs to run a Big Brother with admin access or worse, that's vulnerabilities waiting to happen. -
RE: WTF Bites
Today's WTF reminded me of how to declare DTOs in C# for various protocols:
- SOAP with XML: You write normal classes with all members public and slap a few XML-related attributes on them.
- SOAP with JSON: You write normal classes with all members public and slap a few JSON-related attributes on them.
- WCF: You write normal classes with all members public and slap a few WCF-related attributes on them.
Suddenly .NET Core drops all of these, and tells you the future is...
- gRPC: Welcome to the world of custom string types, custom date&time types, and I think even custom integer types if you want to make them optional! Oh, and you have to declare them in another language with its own dedicated compiler.
Thank
Godthe community for CoreWCF. -
RE: A fool and his not-really-money are soon parted
- Upload the same image at separate URLs
- Generate an NFT on each
- Sell to suckers
- Profit!
-
RE: From the department of forgetting to renew certificates
To me it looks like they didn't merely forget to renew a certificate, but also forgot to have their signed extensions timestamped, which exists precisely to avoid this problem (having a signature timestamped by a timestamping authority makes it stay valid after the certificate expires).
-
I knew Microsoft hates the C standards, but they claimed to like the C++ ones...
Today I discovered their hate extends even to the C parts of the C++ standard.
Take a look at this page: https://msdn.microsoft.com/en-us/library/tcxf1dw6.aspx
It says "Thehh
,j
,z
, andt
length prefixes are not supported."This page is specific to Visual Studio 2015, and even after fifteen fucking years (or if we're generous, five), they don't support size specifiers that were introduced in 1999 and were added to C++ in 2011. Someone ought to remind them that <cstdio> is still part of the C++ standard they claim to want to abide by.
-
RE: WTF is happening with Windows 10? And nothing else
By the way, in Windows 10 and 11 alike, what's the first thing you notice when you check this box?
That the Settings app utterly ignores it, of course!
As do the Calculator, and, well, pretty much all Metro apps, really.
And, as my latest programming pet peeve, MAUI apps. -
RE: WTF Bites
@sebastian-galczynski It took the second mention of the name for me to understand that Kafka is actually the name of a software.
Whose bright idea was this? While not outright Titanic-II grade, this is on par with naming a brand of condoms after a people infamous for letting in something they shouldn't have...
-
RE: The ultimate ide
@Tsaukpaetra said in The ultimate ide:
I tried to download the installer, but Windows apparently doesn't know what a "Jar Files" is out of the box. I think its broken.
It's a test. "If you can't install Java or don't know the command line for launching a JAR on it (
java -jar p:\ath\to\jarfile.jar
), you have no business using an IDE". -
RE: WTF Bites
This deprecation/non-standard thing reminds me of Microsoft's move to rename all functions of its C Run-Time Library that aren't part of the C standard, e.g. from
open()
to_open()
. Can't say the intent was bad (though I at least hope it's disabled when compiling for WSUS), but the actual job was a bit heavy-handed:All such functions get the same warning, that says
The POSIX name for this function is deprecated. Use (underscored name) instead
, even for functions that are not, and have never been, part of the POSIX standard (such as getch()). And yes, they're all deprecated with the same macro,_CRT_NONSTDC_DEPRECATE
, which means for Microsoft, everything in their CRT that's not part of the C standard is POSIX. -
RE: Secret Ransomware Ransoms
The rumor is already here, since we're surprised paying worked...
-
RE: WTF Bites
@cartman82 said in WTF Bites:
Swallowing the real error message, returning that awful hardcoded text message.
I'd suspect that this is a publicly displayed error message. In that case, that's actually the only correct thing to do.
As a developer, I prefer when the actual error appears on the screenshot the user sends us. Our application does have a "user-friendly" mode that hides the scary error messages, but I view it with equal contempt as Windows Explorer's "user-friendly mode" that hides the scary file extensions.
-
So Windows 11 Paint supports layers now...
Except you can't easily save them.
- None of the formats supported by "Save As..." support layers, so each of them will give you a warning that saving will flatten the image
- The layer list has a context menu, but that menu has a "Save Layer As..."-shaped hole in it.
- The only way I've found for saving the layers involves hiding all layers, showing one, saving the pic with "Save As...", and moving on to the next (Don't Ctrl+S, or you'll overwrite your previous save instead).
They couldn't even be bothered to add any saving format, not even something basic like "a dumb zip with all layers as PNG files in it".
ETA: Oh and GIF support is still broken. Still shows the "this might degrade color quality" when the actual number of colors used in your image is less than 256 (my test pic had a grand total of two colors, without gradient), and even with the new transparency support, saving as GIF will simply make the background white.
-
RE: I'm about to pick on an indie game, so prepare to hate me
Necroing this because I got the print spooler problem in another Game Maker game, which means Yoyo Games still haven't patched their product to avoid this weird conflict (or that they simply don't bother to patch showstopper bugs in older versions)