Hacking: Yahoo Hack Day

I attended Yahoo Hack Day. It was a lot of fun. They put on a concert by Beck, which I unfortunately didn't get to see. They also loaded us up with plenty of swag, including a T-shirt, a copy of Yahoo Hacks, and a 256 mb non-branded USB flash drive, which was one of the weirdest but most useful bits of swag ever. I attended talks all day long. Here are some of the takeaways:
  • Yahoo! UI Library: Fonts CSS is a CSS library that completely levels the playing field concerning fonts across all of the browsers. I'm not that great a CSS developer, so I wasn't all that excited about this, but my friends explained to me how hard cross-browser uniformity is to achieve.

  • Yahoo! UI Library: Grids CSS is a CSS library that lets you do standardized layout in a cross-browser way that works now. I wasn't so thrilled about this either since I knew that even though CSS layout isn't ready for prime time, tables still do the trick. However, once again, my friends set me straight by explaining how powerful it was to simply flip a few class attributes and have the layout change drastically, even within the user's browser. That at least is a bit harder to do with tables.

  • There was a fantastic talk given concerning the history of JavaScript and the Web. The speaker made a good point that it's amazing the stuff even works if you consider that the Web is really just a series of hack upon hack. He gave a plug for JavaScript: The Definitive Guide, specifically the 5th edition. He said that this book sucks the least in terms of really understanding the functional nature of JavaScript. He also confirmed what I had long believed that JavaScript is the most misunderstood language ever. He also made a good point about how bad the standards were for JavaScript:

    • The ECMAScript standard is unreadable. Furthermore, Microsoft insisted on encoding various bugs in the standard itself.
    • Neither was the W3C blameless. Consider how hard it is to use the DOM API in contrast to innerHTML. However, the DOM API is in the standard, and innerHTML isn't. Next consider how "un-JavaScript" code such as .setAttribute('foo', 'bar') is when you consider it next to code such as img.src = 'foo.jpg'!

    I asked him if there was anything substantial missing from Dojo Toolkit that was present in the Yahoo! UI Library (YUI). He said no, but that there were probably too many JavaScript frameworks right now, and the market would probably only support Microsoft Atlas and YUI in the long term. For being such a well-educated guy, this really surprised me. Perhaps he was just taking the party line, or perhaps he had a case of "not invented here".

  • "Semantic markup" is the idea that your markup should say what it means instead of how it should appear. "Progressive enhancement" is the idea that when you build a Web application, you should start with semantic markup that actually works for any browser. Then, on top of that, you use deep CSS and JavaScript tricks to enhance the experience for "A-grade" browsers. Notice that Yahoo's graded browser support is pretty inclusive. Also note that Yahoo is still using HTML 4.01 Strict.

  • Yahoo! UI Library: Event is exactly what you would expect from a JavaScript event library. There was nothing astonishing or surprising.

  • FireBug, Venkman, Web Developer toolbar, and the JavaScript debugger found on the Microsoft Office CD are great tools to debug JavaScript, but JSLint got a couple of plugs as well. Fiddler is an HTTP debugging proxy which logs all HTTP traffic between your computer and the Internet, which can be helpful to debug AJAX requests. Drip is a memory leak detector for Internet Explorer.

  • Yahoo's Design Pattern Library got a plug as well. I saw a talk on this a few weeks ago, and it looked pretty useful.

  • And of course, one of the speakers gave a plug for "working is better than elegant", which is always a challenge to perfectionists like me.

Comments

Anonymous said…
jj, i'm jealous you went. Sounds awesome. Which hacks did you like best?


I've been using the yahoo grids css for a while and I mostly like it. There need to be more examples of how to do complex layout with it. The shipped examples are pretty weak.

I owe you a long chat about turbogears... I still dig it. The Widgets stuff is, basically, exactly what I wanted to build. I'm a fan.

-jamie
> Which hacks did you like best?

I wasn't there to see all the hacks. I was only there the first day. Maybe next year.

> I owe you a long chat about turbogears

I need this much sooner than later. I've already started down the path of using Pylons + Genshi. You can do the Wiki tutorial for Pylons in a single night. I'd be interested in hearing what you have to say.
yman said…
not to mention that CSS changes the whole site, while tables only change one page.
Ah, that's an excellent point. Thanks!