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

Drawing Sierpinski's Triangle in Minecraft Using Python

In his keynote at PyCon, Eben Upton, the Executive Director of the Rasberry Pi Foundation, mentioned that not only has Minecraft been ported to the Rasberry Pi, but you can even control it with Python. Since four of my kids are avid Minecraft fans, I figured this might be a good time to teach them to program using Python. So I started yesterday with the goal of programming something cool for Minecraft and then showing it off at the San Francisco Python Meetup in the evening.

The first problem that I faced was that I didn't have a Rasberry Pi. You can't hack Minecraft by just installing the Minecraft client. Speaking of which, I didn't have the Minecraft client installed either ;) My kids always play it on their Nexus 7s. I found an open source Minecraft server called Bukkit that "provides the means to extend the popular Minecraft multiplayer server." Then I found a plugin called RaspberryJuice that implements a subset of the Minecraft Pi modding API for Bukkit s…

Apple: iPad and Emacs

Someone asked my boss's buddy Art Medlar if he was going to buy an iPad. He said, "I figure as soon as it runs Emacs, that will be the sign to buy." I think he was just trying to be funny, but his statement is actually fairly profound.

It's well known that submitting iPhone and iPad applications for sale on Apple's store is a huge pain--even if they're free and open source. Apple is acting as a gatekeeper for what is and isn't allowed on your device. I heard that Apple would never allow a scripting language to be installed on your iPad because it would allow end users to run code that they hadn't verified. (I don't have a reference for this, but if you do, please post it below.) Emacs is mostly written in Emacs Lisp. Per Apple's policy, I don't think it'll ever be possible to run Emacs on the iPad.

Emacs was written by Richard Stallman, and it practically defines the Free Software movement (in a manner of speaking at least). Stal…

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." I bet it&…