
Show HN: %%30%30: A Game - szhu
https://github.com/szhu/3030/tree/master
======
userbinator
You know you've been working with ASCII for a _long_ time when you can
automatically unescape the title... and then pause, considering whether to
unescape again.

I think reading the comments on that bug is also rather enlightening; points
of note include a _62-level-deep_ stack trace, comments to the effect of "we
don't know what the bug is/how this is supposed to work", and discussions
about whether escaping multiple times is the solution (absolutely not!)

[https://tools.ietf.org/html/rfc3986#section-2.4](https://tools.ietf.org/html/rfc3986#section-2.4)

 _Implementations must not percent-encode or decode the same string more than
once, as decoding an already decoded string might lead to misinterpreting a
percent data octet as the beginning of a percent-encoding, or vice versa in
the case of percent-encoding an already percent-encoded string._

Seriously, I'm quite surprised that basic URL handling is still a problem.
Making a game to bring this to the attention of a wider audience is certainly
a good idea.

~~~
X-Istence
Reading the bug report:
[https://code.google.com/p/chromium/issues/detail?id=533361](https://code.google.com/p/chromium/issues/detail?id=533361)
makes me sad. Recursing is definitely not the answer, yet it gets brought up a
lot.

Also, %00 shouldn't cause the browser to crash, and the fixes suggested so far
are just work-arounds :/

~~~
username223
> Recursing is definitely not the answer, yet it gets brought up a lot.

Speaking as someone with an apostrophe in his name, I'm not sure whether this
makes me want to chuckle and reach for the popcorn, or bang my head against
the desk. The answer to multiple (un-)escaping bugs is never recursion.

------
ps4fanboy
[http://github.com/%%30%30](http://github.com/%%30%30) pasting this in slack
also crashes Slack.

~~~
dshankar
Explanation for why this is occurring:

Slack's desktop apps are HTML5 webapps wrapped inside native desktop wrappers.
Specifically, Slack uses Github's Electron (formerly, Atom Shell) which is
basically Chromium. The desktop app is a webpage inside Chromium.

~~~
JoeAltmaier
Yeah, I strenuously object to the fad of calling wrapped web pages 'native
apps'. They get zero benefits that would normally accrue to real native apps.
They just launch 'as if' they were native.

~~~
gue5t
Thank you. People calling web-render wrappers "native applications" must not
realize how great it is when applications are mere coördinators on top of an
integrated _platform_ full of services designed to improve user productivity.

I guess if that demographic did, there would be less "unix philosophy"
cultism, as the efficacy of the unix shell is merely on par with that provided
by other relatively coherent software toolsets. The shell is really pretty
barebones compared to the rich semantics provided by many toolkits and object
systems on which user interfaces have been built: GObject and NeXT are two
modern examples.

[That said, where shell shines is by providing so few abstractions that
virtually any garbage has the same semantic depth as things which were
designed to be used in the shell. Bytes _are_ universal on the common
computing substrate.]

The web, on the other hand, is a platform "designed" by the erosive flow of
eyeballs during the 1st-nth browser wars, without much of a direction beyond
tacking on additional pretty features without breaking backwards compatibility
too much.

Attributes like a11y, embeddability, composability, and effective resource
sharing tend to simply fall out of well-designed platforms. The web has an
effective answer for none of these desirable concerns. Look at how screen
readers break on js-heavy and dynamic web pages, the ongoing security
disasters of XSS and iframes (and the complexity of login services like
Facebook's/oauth/openid), the disappearance of Google reader, and the half-
assed way CDNs offer partial, ad-hoc offloading of some resources via
surrender to centralization.

~~~
TazeTSchnitzel
> Attributes like a11y, embeddability, composability, and effective resource
> sharing tend to simply fall out of well-designed platforms. The web has an
> effective answer for none of these desirable concerns.

...what? The web is better than most native platforms in these.

The web is accessible. It has many features for screen readers and such, but
more importantly, it is inherently flexible and allows content's form to be
adapted to the reader's needs, thanks to the separation of content from style.
A single web page, unmodified, can work on a desktop PC with a mouse and
keyboard, a capacitive touch device the size of your palm, a stylus-input
device the size of a laptop, a printed page, a screen reader, a ten key mobile
phone from yesteryear, and more. The web lets users define custom styling that
meets their needs, lets users selectively remove content (ads, for example),
etc. No native platform is that flexible. Yes, some sites break screen
readers, but this is true of native apps as well.

The web is incredibly embeddable. Any web page can, with one line of code,
incorporate any other web page, and it "just works". You simply can't do that
with native apps.

The web is composable as well. Sites can load JavaScript from each other very
easily.

The web also supports resource sharing in various forms, but people don't
necessarily use them.

~~~
rimantas
Alas, all the benefits you list are just possibilities, not the reality.
"separation of content from style" was a big thing back when csszengarden.com
was making rounds, but that all is long forgotten in the name of
angularreactnodecrap. Accessibility? Give me a break, how many web sites do
even work without JS enabled? I am not sure about Android, but iOS has a great
accessibility support.

~~~
robin_reala
It’s a common misconception that Javascript precludes accessibility. JS can in
many ways help accessibility if done considerately.

------
scott_hardy
Amazing. I always love seeing these sorts of harmless, fun ways that bring
attention to these strange edge/corner case bugs.

~~~
szhu
[https://github.com/szhu/3030/issues/12](https://github.com/szhu/3030/issues/12)

"harmless"

oops.

------
anon4
Reminds me a bit of the doom variant that would kill a random process for each
enemy you killed.

~~~
tetrep
you're probably thinking of
[http://psdoom.sourceforge.net/](http://psdoom.sourceforge.net/)

------
tdicola
You probably want to make it more clear that you're supposed to mouse over the
dark lollipops and avoid the blue trees. I assumed the dark chars were the
walls I shouldn't touch and just about gave up on it after it was constantly
crashing. Then I read the description after the fold and figured it out.

Also why not just implement the game in javascript using mouse position events
and a canvas for drawing?

~~~
szhu
Dark lollipops? Blue trees? What operating system are you using? I'm on a Mac
and the lollipops are pink and the trees dark green. I'm considering making a
text-only version for people who have weird or no emoji support.

Of course I could implement the game in javascript, with nice graphics and
all, and perhaps gameplay that works in all browsers and doesn't crash Chrome,
but wouldn't that defeat the point of the game? :)

Happy to take PRs though!

~~~
staz
I'm on Chromium on Ubuntu. Also have Dark lollipops and Blue trees, guest it
depends on the font or something.

[https://imgur.com/Ffc3zcx](https://imgur.com/Ffc3zcx)

~~~
szhu
When was the last time you've had a black lollipop? Or seen a blue tree?
Thanks, Ubuntu.

Anyway fixed! The the instructions reads "Mouse your way through the map
without touching the /trees/!"

~~~
vacri
It's not ubuntu's fault. Ubuntu/FF here, and I'm getting green trees in FF,
blue in Chromium.

Blue trees can be seen in mountainscapes in certain light conditions. Or in
the Blue Mountain... well, the trees themselves aren't blue, but they're
covered in a blue haze... but still, the emoji is ever _green_ _tree...

------
cremno
Poor CloudApp Support:

[https://github.com/szhu/3030/issues/3#issuecomment-141854443](https://github.com/szhu/3030/issues/3#issuecomment-141854443)

------
ps4fanboy
I must admit my tab crashed before I figured out what was going on lol.

~~~
szhu
hm, looks like that bug has been reported already:
[https://github.com/szhu/3030/issues/1](https://github.com/szhu/3030/issues/1)

~~~
r3bl
That's the whole point of the "game". To show this bug.

------
deckar01
My inspector even crashes when trying to hover over the link node!

------
infinita740
The game doesn't "work" on microsoft edge but the brower doesnt recognize the
Stanford links[0] , it is not possible to copy them by right clicking. Going
directly to the page by copy/pasting the url doesn't even load the website. IE
doesn't seem to understand the url as well.

The only brower I've tried that manages to get a page is firefox[1]

[0][http://www.stanford.edu/%%30%30](http://www.stanford.edu/%%30%30)

[1][http://i.imgur.com/nEDgBrq.png](http://i.imgur.com/nEDgBrq.png)

~~~
vor0nwe
Old Opera 12.17 (last version that still allows specifying a different proxy
than the system one, afaics) shows the same page as Firefox. Elinks does as
well.

------
fidz
This is a beautiful experiment.

To OP: i wonder, how did you find this bug?

~~~
szhu
It's actually all over the news right now:
[https://www.google.com/search?q=chrome+url+bug](https://www.google.com/search?q=chrome+url+bug)

I found it because someone posted about it in a school Facebook group I am in.

------
bobajeff
This works in Chrome on Android as well. Of course it's way easier than on
desktop.

~~~
ikeboy
Not for me: [https://i.imgur.com/bzScUUn.png](https://i.imgur.com/bzScUUn.png)

~~~
bobajeff
Try it in landscape mode.

------
k_bx
I like how this crashes Twitter app's "preview" browser with app itself.

------
mrcncpt
This weirdly makes my external monitor flash black when I open this tab.
What's going on here?

[https://vid.me/dWW7](https://vid.me/dWW7)

------
kodingana
You can jump over the wall by scrolling your mouse! :D

------
spacesword
Works with Opera 32 as well.

~~~
Mithaldu
Of course. It is just a chrome fork with minimal changes.

------
kyberias
Crashes my Chrome (Windows) when I move mouse pointer over the game area.

~~~
cosarara97
That's the point.

------
scotty79
Nice. It crashes my Chrome on hover over trees.

------
rjuyal
Aw snap! Always.

------
lbebber
Hahah, clever.

------
andersonmvd
Creative. Nice project.

------
zobzu
hah, another chrome-only thing

------
rigaspapas
This game has free graphics upgrade if you use "Emoji Input by EmojiStuff.com"
extension

