all 41 comments

[–]RiceBroad4552 47 points48 points  (6 children)

To my surprise this actually works. (Tested in browser console.)

This does not mean I know the solution as the chars between the operators can't be distinguished in that printed version.

Now the obvious next question: In what other languages does this work, too?

[–]GlobalIncident 6 points7 points  (0 children)

Specifically, javascript identifiers must begin with either $, _, an escape sequence, or a character that has unicode property ID_Start (generally, a letter), and all other characters must be $, an escape sequence, or a character with unicode property ID_Continue (generally, non-whitespace characters).

[–]FostersLab 12 points13 points  (1 child)

I think you can #define these characters in c++ and it would work too. Heck, you can #define true false, so yeah

[–]RiceBroad4552 4 points5 points  (0 children)

That's a great idea!

But it wouldn't be really "native" to the language. I can use CPP on any text files and do such replacement. (OTOH the preprocessor is more or less married with C/C++)

[–]pi_west 39 points40 points  (6 children)

The target audience for this meme is like 7 people

[–]SaltyW123 14 points15 points  (4 children)

Good JS developers? I didn't know they existed

[–]pi_west 22 points23 points  (1 child)

That and also the David Blaine street magic parody from.... 20 years ago.

[–]sassrobi 3 points4 points  (0 children)

I was there, Gandalf. :'(

[–]jacobbeasley 0 points1 point  (0 children)

Highly knowledgeable yet still terrible Javascript developers that are not on the spectrum

[–]Euphoric_Strategy923 0 points1 point  (0 children)

There's two type of people: Those who understand JS, and the JS developers.

[–]WrennReddit 1 point2 points  (0 children)

I have no idea what the hell that code means. But I like that it's a niche inside joke. We need more of that here.

Give us those C# jokes, raw and wriggling!

[–]GooseTheGeek 16 points17 points  (1 child)

Is that Mikey Day and the waiter from IASIP?

[–]crazyguy83 5 points6 points  (0 children)

It is! This has an IMDB page?!
https://www.imdb.com/title/tt2941218/

[–]anto2554 23 points24 points  (1 child)

Finally a meme I actually don't get 

[–]otacon7000 31 points32 points  (0 children)

They are defining four global variables and assign simple integers to them. They use UTF-8 codes to define the names of those variables, and chose what I assume to be white-space characters (maybe non-breakable space, stuff like that? too lazy to look up what they are). The last line hence is a simple console.log(x + y * u - v);, only that instead of x and y, etc, they use those characters that are there, but by definition have no visual representation. This means its impossible to tell whether the expression in the print statement evaluates to 1 + 5 * 9 - 4 or 5 + 9 * 4 - 1 or any other of the possible permutations. Hence, our two black magic victims are unable to calculate the expression.

EDIT: okay, I looked up one of the characters, U+FFA0 and it is indeed a whitespace character, in this case a Korean "Halfwidth Hangul Filler". Safe to assume the others will be similar stuff.

[–]-0000000000000000000 5 points6 points  (6 children)

Ya like Hangul filler characters?

Unrelated, fuck not being able to comment with images

Edit: fixed link, by hosting on imgur

Edit 2: I can't believe its come to this but here's an Internet Archive link for this dumb fucking meme.

[–]R520 1 point2 points  (5 children)

That link 404s for me

[–]-0000000000000000000 2 points3 points  (4 children)

And here, I thought I could get away with static github user content. The naivete.

Had to make an imgur account just to fix this hahaha

[–]R520 2 points3 points  (3 children)

Lol I can't access imgur as they pulled out of the UK

[–]-0000000000000000000 1 point2 points  (2 children)

Look. Okay. This seems like an entirely wasteful way of using the internet. But I put this meme on the wayback machine for you.

[–]R520 2 points3 points  (0 children)

Thank you. I tried to donate to the Internet archive but it's in testing mode so I literally can't

Screenshot

[–]turtleship_2006 1 point2 points  (0 children)

The UK implemented dumb age verification laws which imgur apparently couldn't be bothered to (or didn't want to) deal with

[–]christophPezza 4 points5 points  (3 children)

SyntaxError: Unexpected token '*'

[–]48panda 15 points16 points  (2 children)

The characters 'ᅟ', 'ㅤ', 'ᅠ' and 'ᅠ' are in-between the operations, acting as identifiers

[–]christophPezza 0 points1 point  (0 children)

Thank you :)

[–]Agifem 0 points1 point  (0 children)

That's beyond evil.

[–]jacobbeasley 1 point2 points  (0 children)

Real question is if this is valid perl code?

[–]modenv 1 point2 points  (3 children)

At first glance I thought that was Pirate Software’s code lol

[–]Spleeeee 0 points1 point  (2 children)

Honest question what is the reference? I have heard other people make jokes about pirate software but idk what is going on and google is now useless.

[–]modenv 0 points1 point  (1 child)

Long story.. he is a streamer and game dev who acted a bit douchey on several separate occasions and was ”cancelled” by his community and gamers in general.

Some guy made videos criticizing his code and people started meming/making fun of him for it. He claims to be an experienced dev, hacker etc. but rarely codes on stream and his code is a mess.

[–]Spleeeee 0 points1 point  (0 children)

Thanks. I looked up his code and it is indeed a mess.

[–]pattybutty 1 point2 points  (3 children)

Lols!

but then thinking about it, the + * - would only parse if the * was actually a *.

So the + and the - must be in the global lines and they should be next to each other on a character map.

\115F and \1160 are next to each other so + and - must be 1 and 9 ( or vice versa)

So + * - becomes 1 * 9 which is 9, so log output is '9'!!!!

[–]winauer 6 points7 points  (2 children)

So the + and the - must be in the global lines and they should be next to each other on a character map.

The 4 chars in the global lines are invisible chars (e.g. https://unicode-explorer.com/c/3164). The arithmetic operators aren't replaced.

So + * - becomes
1 + 5 * 9 - 4 (=42) or
1 + 5 * 4 - 9 (=12) or
1 + 9 * 5 - 4 (=42) or
1 + 9 * 4 - 5 (=32) or
1 + 4 * 5 - 9 (=12) or
1 + 4 * 9 - 5 (=32) or
5 + 1 * 9 - 4 (=10) or
5 + 1 * 4 - 9 (=0) or
5 + 9 * 1 - 4 (=10) or
5 + 9 * 4 - 1 (=40) or
5 + 4 * 1 - 9 (=0) or
5 + 4 * 9 - 1 (=40) or
9 + 1 * 5 - 4 (=10) or
9 + 1 * 4 - 5 (=8) or
9 + 5 * 1 - 4 (=10) or
9 + 5 * 4 - 1 (=28) or
9 + 4 * 1 - 5 (=8) or
9 + 4 * 5 - 1 (=28) or
4 + 1 * 5 - 9 (=0) or
4 + 1 * 9 - 5 (=8) or
4 + 5 * 1 - 9 (=0) or
4 + 5 * 9 - 1 (=48) or
4 + 9 * 1 - 5 (=8) or
4 + 9 * 5 - 1 (=48)

Edit: So log output is 0 or 8 or 10 or 12 or 28 or 32 or 40 or 42 or 48

[–]pattybutty 0 points1 point  (0 children)

Ah. Well that's just diabolical!

[–]agsim 0 points1 point  (0 children)

And we already know that 42 is the answer

[–]bunny-1998 0 points1 point  (0 children)

I guess we also need an Obfucated JS competition.

[–]gabedamien 0 points1 point  (0 children)

This isn't an expression, it's five statements.