

Javascript secrets of Bret Victor's homepage - creamyhorror
http://www.arcfn.com/2011/12/javascript-secrets-of-worrydreamcom.html

======
creamyhorror
Bret Victor seems to be the sort of guy who makes things for the sheer joy of
it. They may not always work brilliantly, but you have to respect the
creativity and effort that went into them. When I saw his page I was surprised
by how it was achieved without Flash. I think that was the point of him making
it: to show that surprising things could be done.

This harks back to those showoff pages at the dawn of the Web, which showed
surfers things that surprised and intrigued, and did it without adhering to
common design conventions. The sort of page that you raised your eyebrows at
and bookmarked right away, because that sure was some genius and artistry
behind it there. It's nice to come across these things, especially today when
mostly everyone uses major platforms, templates, plugins, and conventions.

------
mekwall
Not related to the article. Seems Bret doesn't care much about us Windows
users. It's more or less impossible to scroll with your scroll-wheel with that
custom scroller. Personally I think he's trying too hard with worrydream.com.
I feel it's hard to navigate, with bad responsiveness and clunky, even on
Chrome. I believe the bad UX comes from the skeuomorphic design. I've never
seen such design work good for a software UI.

That aside, Bret Victor is a genius and I love most of is work. He's a great
inspiration to me, and should be to anyone involved in any form of software
development.

~~~
robmcm
This is more of a show of expression that creating a usable site.

Again this reminds me of the Flash days, where people were doing things
because they could rather than because they should. CSS text rotation is a
great example of this.

Still I think sites like this are a great playground, and show what can be
done.

~~~
ygra
More so, in stark contrast to Flash, his site is accessible to screen readers,
search engines and older browsers.

~~~
robmcm
As others have said most flash sites of this kind did the exact same hack and
provided an HTML fallback that used JS to replace the fallback div with the
correct Object/embed for the browser.

------
lloeki
I have a couple quibbles with the article, notably:

> _Special support for Ajax URLs_

being raised as an industry standard and a best practice, whereas it's a
Google hack of a solution.

HTML5 history.pushState[0] is the proper standard solution, with a nice
polyfill[1]

[0]: [https://developer.mozilla.org/en-
US/docs/DOM/Manipulating_th...](https://developer.mozilla.org/en-
US/docs/DOM/Manipulating_the_browser_history)

[1]: <https://github.com/balupton/history.js>

------
bhattisatish
If I remember correctly the website is actually implemented via openlazlo
(<http://www.openlaszlo.org/>). I remember coming across Bret's site as an
example while working through openlaszlo documentation.

------
hatu
I really like his articles but the website is awful. Everything is blurry and
the scrolling is broken. On HN when I scroll down once, it goes to the next
comment, on this site it literally scrolls 1 pixel down.

------
klibertp
To everyone complaining about UX on his site: please don't. Don't even look at
the effects, don't think about how it _looks_ , it's irrelevant. Instead, go
read the code. And if you want to complain about how it's written, it's ok -
paste example snippets and talk about them. Show how you'd optimize this or
that transition, what you'd do better. I find your complaints - without these
snippets and rationale - annoying and missing the point.

~~~
CodeMage
Wait, what?

 _Don't even look at the effects, don't think about how it looks, it's
irrelevant._

No, it's not. On the contrary, it's not only relevant, it's the central issue.
Otherwise he wouldn't have made the site look like that.

 _I find your complaints - without these snippets and rationale - annoying and
missing the point._

The site is awfully slow to scroll on my machine. I can't use the keyboard to
scroll it, either. Right clicking on one of those icon thingies behaves the
same as left clicking, which surprised the heck out of me. So did the fact
that you can scroll the site by dragging the background, with left or right
click; you can imagine what that did for my mouse gestures.

If you think I have to present snippets of code to validate these complaints,
then you're the one missing the point.

Just in case: the point is that while the site is behaves like a nifty tablet
app, it breaks both the widespread _expectations_ of how to interact with a
web site and several significant interaction _mechanisms_ that a lot of people
rely on. To distill the point even further, it would be a pretty nice mobile
app, but as a site it's about as nice as using blink and marquee tags was back
in the day.

~~~
klibertp
> No, it's not. On the contrary, it's not only relevant, it's the central
> issue.

Ok, I'm sorry, I presented my point of view and shouldn't have expected others
to think the same.

As for me, I'm not exactly touched by visuals. My ideal UI and UX is CLI and
this has not changed for over twenty years now. Anything more than this is an
annoyance for me and I would probably consider much of really good designs as
ugly overkill. Probably, because I have no way to say which design is good and
which is not, I lack the skill to care.

However, I'm a programmer. I'm easily excited by what someone coded,
especially if this something reaches the limits of technology. I am a kind of
guy that's going to be amazed with a simple, bug ridden, slow and visually
ugly proof-of-concept, just because it's cleverly coded.

I didn't had the time to read through the source yet. I don't know if it's
enough to make me smile. Maybe it's not, maybe it is. And that's the point:
I'm a programmer. Not a business person. I don't care about a product. I don't
care about UX. I'm in love with code, and that's why I still work as a
programmer, am not burnt out and not going to go into management.

If Bret was product-centric he'd use Flash to do this. It would be faster,
both in development and execution times. It would be cross-platform, at least
as much as Flash itself is. It would be prettier and much more usable. It
would take fraction of work that went into coding this in JavaScript.

Maybe I'm misunderstanding him, but the fact that he did this in JavaScript
suggests, for me, that he didn't treat it as a "product", that needs to be
"shipped". I think he took a journey into unknown, beyond the limits of
current JavaScript technology, and documented this journey in the form of
code. That's why I'm going to read his notes, his code, and learn from him.
Because I'm a programmer, because what I care about is code.

You are entitled to be primarily concerned with how usable the site is. When I
said that you're missing the point, I thought that maybe - maybe - Bret didn't
even think about usability of _this particular site_ , maybe he wanted to show
programmers that coding something like this is possible. Maybe I'm wrong, this
is pure speculation - Bret himself should say what he intended.

~~~
CodeMage
I'm not that different from you. I also love coding and I love cleverness in
coding. However, I also care about "product".

That doesn't mean I expect everything to be a "product". If you tell me, "Hey,
look at this clever concept/technique/trick/idea/spike/prototype that I
cobbled together", I'm not going to tell you "Damn, why is it so
ugly/slow/buggy" (unless the idea was specifically to be pretty/fast/bug-
free).

You and I basically disagree about the assumed purpose of Bret's site. If his
site were a game, then I would be the dude who's disappointed because it's
Quake III and not Dragon Age ;)

PS: Caring about "product" and UX doesn't mean you'll get burned out or go
into management ;) I know you weren't generalizing, but talking about your
specific case instead, but I just wanted to mention that caring about code and
caring about users are things that don't work against each other.

~~~
klibertp
> You and I basically disagree about the assumed purpose of Bret's site.

Fair enough :) I think we should wait for Bret's comment on this, only he will
be able to tell us what he really intended to achieve with his site.

> Caring about "product" and UX doesn't mean you'll get burned out or go into
> management ;) I know you weren't generalizing,

I wasn't generalizing, but I certainly was exaggerating... a bit. Sure I like
my code to be used, and that it feels nice to have users that are happy to
work with something I created. It's just that my focus is primarily in code
and I feel a bit frustrated here, because it seems like I'm in minority. There
are many people here commenting on cool, clever, technical hacks, but I feel
that there is more of those who only `itertools.cycle(["product", "business
value", "product", "customers", "product", "shipping", "product"])`... I don't
think it's wrong, just that I don't feel that way and would like to be
recognized as someone of value (not necessarily business value) too :)

------
verroq
The homepage is unusably slow on Firefox.

~~~
olaf
Almost unusably slow here also, this is a bad example of a website, because
the web/html works better the more one designs for the least common
denominator, not pushing it to its limits. Fundamental misunderstanding,
mismatch.

~~~
TeMPOraL
> the web/html works better the more one designs for the least common
> denominator, not pushing it to its limits

The only way to move the least common denominator forward (aka. progress) is
to have people pushing the tech to the limits.

~~~
olaf
No, a site for public consumption should behave consistent in current
browsers. Otherwise, the author demonstrates merely his misunderstanding of
the web.

~~~
TeMPOraL
No, it shouldn't. Not in every case. If you're building a company site and
care about every customer, then yes, make everything compatibile back to IE6.
Your aim is to earn money via web, which is only a tool for that; not to make
progress happen. But even then you might want to enable some more advanced
features for people with better browsers.

On the other hand, when you're building a personal site you can do whatever
you want, especially if you want to make a statement, and especially if you
are specialized in information and interaction design. You push the status quo
and lead by example.

The web is not a static organism. It needs to evolve, it needs to be pushed to
it's limits and beyond. If you don't want to innovate (in this particular
area), than by all means stay with least common denominator. But don't stop
those who want.

------
SolarUpNote
For anyone who hasn't seen Bret Victor's mind-blowing talk, here it is:

<http://vimeo.com/36579366>

------
Tyrant505
UX aside, a lot of thought went into this and I applaud the experimentation
done in 2011!

------
DaanDL
He's amazing..I was stunned while looking at his work. Especially learnable
programming.

