Skip to main content

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
jjinux said…
> 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.
jjinux said…
Ah, that's an excellent point. Thanks!

Popular posts from this blog

Ubuntu 20.04 on a 2015 15" MacBook Pro

I decided to give Ubuntu 20.04 a try on my 2015 15" MacBook Pro. I didn't actually install it; I just live booted from a USB thumb drive which was enough to try out everything I wanted. In summary, it's not perfect, and issues with my camera would prevent me from switching, but given the right hardware, I think it's a really viable option. The first thing I wanted to try was what would happen if I plugged in a non-HiDPI screen given that my laptop has a HiDPI screen. Without sub-pixel scaling, whatever scale rate I picked for one screen would apply to the other. However, once I turned on sub-pixel scaling, I was able to pick different scale rates for the internal and external displays. That looked ok. I tried plugging in and unplugging multiple times, and it didn't crash. I doubt it'd work with my Thunderbolt display at work, but it worked fine for my HDMI displays at home. I even plugged it into my TV, and it stuck to the 100% scaling I picked for the othe

ERNOS: Erlang Networked Operating System

I've been reading Dreaming in Code lately, and I really like it. If you're not a dreamer, you may safely skip the rest of this post ;) In Chapter 10, "Engineers and Artists", Alan Kay, John Backus, and Jaron Lanier really got me thinking. I've also been thinking a lot about Minix 3 , Erlang , and the original Lisp machine . The ideas are beginning to synthesize into something cohesive--more than just the sum of their parts. Now, I'm sure that many of these ideas have already been envisioned within Tunes.org , LLVM , Microsoft's Singularity project, or in some other place that I haven't managed to discover or fully read, but I'm going to blog them anyway. Rather than wax philosophical, let me just dump out some ideas: Start with Minix 3. It's a new microkernel, and it's meant for real use, unlike the original Minix. "This new OS is extremely small, with the part that runs in kernel mode under 4000 lines of executable code.&quo

Haskell or Erlang?

I've coded in both Erlang and Haskell. Erlang is practical, efficient, and useful. It's got a wonderful niche in the distributed world, and it has some real success stories such as CouchDB and jabber.org. Haskell is elegant and beautiful. It's been successful in various programming language competitions. I have some experience in both, but I'm thinking it's time to really commit to learning one of them on a professional level. They both have good books out now, and it's probably time I read one of those books cover to cover. My question is which? Back in 2000, Perl had established a real niche for systems administration, CGI, and text processing. The syntax wasn't exactly beautiful (unless you're into that sort of thing), but it was popular and mature. Python hadn't really become popular, nor did it really have a strong niche (at least as far as I could see). I went with Python because of its elegance, but since then, I've coded both p