How in the hell does this feature work?
-
No, in fact, I did not. That said...My god, are you running OCR on uploads or something?
-
@weng Watermark in the backgrounds, I believe.
-
@weng It's a faint pixel pattern in the background of Lounge, Mafia and mod-only (IIRC) notifications and topic titles.
-
IIRC @blubar introduced it after someone almost uploaded a screenshot showing they had access to a Mafia Scum thread.
-
So, yes, image processing in general, yes, OCR in particular, no.
Filed under: "Absurd implementations of absurd features for absurd people."
-
@vault_dweller said in How in the hell does this feature work?:
IIRC @blubar introduced it after someone almost uploaded a screenshot showing they had access to a Mafia Scum thread.
It was after someone posted a screenshot of notifications including "this person posted to the mafia scum thread"
-
@weng I am definitely an absurd person. But this feature was not for me.
-
Fun fact: If you take the low 2 bits of R, G, and B and decode it as 7-bit ASCII, you get a password related to the category!
-
Or, if you don't want to do that, you can look here for the plaintext versions of the passwords: https://github.com/boomzillawtf/tdwtf/blob/1f28eda91919a438c038c3bf19943b49e75fa1a1/plugins/nodebb-plugin-tdwtf-customizations/steganography.js#L66-L70
-
@ben_lubar said in How in the hell does this feature work?:
steganography.js
Flagged for cheating at Mafia
-
@hungrier said in How in the hell does this feature work?:
It's a faint pixel pattern in the background of Lounge, Mafia and mod-only (IIRC) notifications and topic titles.
@weng And of course someone then added an image with this pattern to their signature soon after.
Can't remember who.
-
@zecc I believe it was @anotherusername
-
@zecc said in How in the hell does this feature work?:
@hungrier said in How in the hell does this feature work?:
It's a faint pixel pattern in the background of Lounge, Mafia and mod-only (IIRC) notifications and topic titles.
@weng And of course someone then added an image with this pattern to their signature soon after.
Can't remember who.Yep, that was me. Go ahead, post a screenshot of my post...
/topic/22774/censor-sensitive-information-in-screenshots for more info
-
This is amazing. I think i'm in love.
-
@ben_lubar said in How in the hell does this feature work?:
and decode it as 7-bit ASCII
You monster! You know it's proper coding practice to use UTF-8 nowadays!
-
@anonymous234 said in How in the hell does this feature work?:
@ben_lubar said in How in the hell does this feature work?:
and decode it as 7-bit ASCII
You monster! You know it's proper coding practice to use UTF-8 nowadays!
That would have made the pattern an ENTIRE PIXEL wider! Think of all the screen real estate that would waste!
-
@ben_lubar Right, the best choice would obviously be UTF-7.
-
@ben_lubar said in How in the hell does this feature work?:
That would have made the pattern an ENTIRE PIXEL wider! Think of all the screen real estate that would waste!
Couldn't you just make your browser window like one pixel wider, though?
-
@ben_lubar Not to parade on your rain ... but is there a reason you have the outer loop over the payloads and the inner one over the image? This means that in the normal case (i.e., a non-protected screenshot), you'll iterate over the image's contents three times (assuming you don't add new categories).
Reverse the loops, and you'll have more checks in the loop, but only need to touch the data once. Which should make a fairly significant impact for large images.
-
@cvi Apart from CPU cache stuff, the difference between looping over X things Y times and looping over Y things X times is negligible.
-
@ben_lubar said in How in the hell does this feature work?:
Apart from CPU cache stuff,
Yeah, apart from what's probably the main bottleneck on a modern system, the difference is pretty negligible...
Besides, the innermost loop essentially extracts a few bits from each pixel channel and then compares it to some magic values (of which you can keep all three sets in the cache, incidentally). The first part (extracting the bits) is the same for each payload. You do it three times, but only need to do it once. (I'm assuming that the branch is taken relatively rarely.)
-
@cvi said in How in the hell does this feature work?:
@ben_lubar said in How in the hell does this feature work?:
Apart from CPU cache stuff,
Yeah, apart from what's probably the main bottleneck on a modern system, the difference is pretty negligible...
Besides, the innermost loop essentially extracts a few bits from each pixel channel and then compares it to some magic values (of which you can keep all three sets in the cache, incidentally). The first part (extracting the bits) is the same for each payload. You do it three times, but only need to do it once. (I'm assuming that the branch is taken relatively rarely.)
Well, we are talking web scale, where it's apparently dandy to consume 1.6GB of RAM to serve a mostly idle website, so inefficient loops are perfectly cromulent!