Archived entries for Yahoo!

Yahoo! User Interface Library

It lives! I’ve been pushing and planning for this since last summer, and I couldn’t be more excited. Nor could I be happier with the response we’ve received so far from all of you. Thanks for the encouragement and all the kind words.

What am I talking about? About nine hours ago we publicly released and open-sourced two cool previously-internal libraries, a companion blog, and an article on Graded Browser Support that I authored:

Yahoo! User Interface Library – Industrial-grade JavaScript for DHTML and Ajax. The same libraries that power Yahoo! today.

Yahoo! Design Patterns Library – Our thinking and solutions on common interface design issues.

Yahoo! User Interface Blog – News and Articles about Designing and Developing with Yahoo! Libraries (rss)

Graded Browser Support (article) – An inclusive definition of support and a framework for taming the ever-expanding world of browsers and frontend technologies.

If you have any questions, let me know. I’ll be posting more details on the blog throughout the week (and ongoing), but wanted to get the links up now before bed.

For a more thorough introduction and more links, check out the first three posts on

Most Underrated API? The Yahoo! Term Extractor

There’s a million APIs out there, and I couldn’t be happier. It’s easy now to translate street addresses to lat/long coordinates. It’s easy to grab local results, and overlay them on a map. It’s easy to use Yahoo or Google to get all types of search results (local, images, etc), and sites like Amazon to get prices and products.

But I think one of the coolest and most underrated APIs is the Term Extractor API from Yahoo!:

In other words, you point it at a piece of content — a news article, blog post, movie review or whatever — and it returns a list of terms, or keywords (or “tags” for those of you keeping score at home).

What do you do next with a list of keywords from a piece of content? Well, lots of things. Jeremy Keith wrote yesterday about a few ideas (that seem up for grabs, if you’re in a hacking mood!).

What if you treated each returned term as a tag? You could then pass those tags to any number of tag-based services, like Flickr,, or Technorati.

So, instead of the simple “here’s my Technorati profile” or “here are my Flickr pics” on a blog, you could have links that were specific to each individual blog post. If I sent the text of this post to the term extractor, it would return a list of terms like “api”, “yahoo”, etc. By passing those terms as tags to a service like Technorati or, readers could be pointed to other blog posts and articles that are (probably) related.

Like he suggests, it gets interesting when you let the output from this web service be the input for another service. I was lucky enough a few months ago to lend a small bit of help to the team that brought you the Yahoo! Events Browser mashup. One challenge of that product was to get images associated with each event. If you’ve ever worked with unstructured data — event listings are super unstructured — then you know that they don’t provide many high-quality hooks for understanding their content. The team tried doing image searches on venue or artist name, but the results weren’t very relevant or interesting, even when the parsed venue or artist was accurate. So, being the put-lots-of-pieces-together types there are, they decided to use the Term Extractor to discover more accurate, meaningful, and specific query terms to then find images for. Here’s how they summed it up:

To display appropriate images for events, local event output was sent into the Term Extraction API, then the term vector was given to the Image Search API. The results are often incredibly accurate.

I’ve only seen a handful of implementations of the Term Extractor API so far. If you’ve got a cool one to point me to, or a cool idea for a future implementation, please leave ‘em in the comments below.

Dotrush 2006 – Hurry, going fast.

Over the last few weeks, Yahoo! Mail has started offering a “dot” within your Yahoo ID. Instead of nate98317ab, you can now be firstname.lastname, or anything else containing a dot. I was triz_n, but now I’m nate.koechley. This new namespace offers many great names that have been grabbed long ago in the dot-less namespace. Here’s what the Yahoo Mail blog has to say about it:

Well, you’re in luck. We’ve just opened up new “dot” addresses to all Mail users. Now get an extra email address like or or It’s absolutely free. Use it just as you would your primary address (which of course you can still use). To make things handy, even use one Inbox to send and receive messages to and from both addresses. But hurry, the good names are going fast!

Click here to claim your dot username.

Tips for Faster Web Pages

I just stumbled across a nice list of tips for speeding up your web site. At Yahoo! this is job #1, and most of the tricks we use are included in this list: Marcelo Calbucci posted it on his blog in November, but tips like these don’t really get outdated.

Here are the tip titles and some notes from me (in italics), but head over to his site to get all the details:

  • Tip #1: Strip spaces, tabs, CR/LF from the HTML – I think attribute quotes are worth the weight, as they reduce development bugs over time. If possible, use a build process to keep both commented development versions and efficient minimized production versions.
  • Tip #2: Don’t use XHMTL – I tend to agree. From a performance perspective clearly, but controversial in general
  • Tip #3: Keep Cookies Small – yep
  • Tip #4: Keep JavaScript Small – and efficient, and modular
  • Tip #5: Use Public Caching – do it if you can, especially if you’re talkin’ real traffic
  • Tip #6: Enable HTTP Compression – this is often “gzip”, but by any means necessary
  • Tip #7: Keep all as much as possible in lower case – yep, and it’s more forward compatible too
  • Tip #8: Avoid Tables – the rendering problems with tables are the most important reason, and the Web Standards folks agree for semantic reasons
  • Tip #9: Set image size – yep. Does anybody know if this is equally efficiently accomplished in CSS declarations and HTML attributes.
  • Tip #10: Compact your GIF/JPG – always important
  • Tip #11: Reduce the number of external elements – yep, though the details — when to combine small page-specific files into one cross-site file — require a bit of case-by-case examination
  • Tip #12: Use a single DNS Lookup – yep
  • Tip #13: Delay Script Starts – this concept is right, but there are more efficient solutions (that i’ll be writing about in a few weeks)
  • Tip #14: Watch for Memory Leak – extra important in these days of heavy javascript development

RIA’s, Accessible DHTML, Prime Rib and London

Phew, it’s been a hectic but great week. I’m off to London in a few minutes to participate in the Yahoo! Europe Web Development Conference (where I’ll be presenting and co-presenting four sessions), but I wanted to report on some of the things from this past week while they’re still fresh.

On Monday I gave a presentation to our User Experience and Design group. I work in the Presentation Platform Engineering group, and part of my job is to help bridge between Design and Engineering. (Before joining the Platform Engineering team, I worked on the Platform Design team, so I can speak both languages to some extent.)

With so much changing in interface development this year, it’s important to coordinate the creation of a new vocabulary for rich internet interfaces. I’ll write more on this in the coming weeks, but you can check out Bill Scott’s blog post for his take on my talk, where he focuses on Storyboarding Interesting Moments, a part of what I talked about.

Though all the words didn’t flow as well as they do sometimes for me, the presentation was well received and generated some excellent discussion. Larry Tesler, our SVP of UED, was one of several that had some kind words for me afterward. I would be remiss if I didn’t pass most of the credit to Eric Miraglia, a colleague and great mind who’s been instrumental in developing our vision. (More on that from Eric, here.)

On Monday night, I joined Victor Tsaran (our Accessibility Product Manager) at a casual dinner of about a dozen Bay Area accessibility folks from Adobe, Macromedia, Apple, IBM and Sun. Over Italian in San Mateo, it was a great chance to meet others addressing the needs of accessibility community. This theme continued for the rest of the week.

On Wednesday, I went to the Mozilla Foundation, for a co-presentation between IBM’s Accessibility Architect Aaron Leventhal and Yahoo!’s Victor Tsaran. They discussed the IBM/Mozilla Accessible DHTML project, first supported in the new Firefox 1.5. It’s great stuff, and will be critical as the web moves to richer interfaces.

On Friday, Aaron presented a technical overview of the capabilities to a team of our engineers, answering questions and giving guidance to engineers investigating the “Accessible DHTML” approach.

Friday night I had dinner in Pac Heights at the beautiful home of a friend of a friend, a promenient SF lawyer. The prime rib was perfectly cooked, and we laughed quite a bit. The five-course meal and case of wine took the wind from my sails so I didn’t get around to packing at all last night. As soon as I finish typing this post I need to quickly pack — clothes are almost out of the dryer, and I need to leave for the airport in about 66 minutes.


Can’t wait to be laying on the white sands of Culebra in two weeks, away from web and world. (We went last year too, and couldn’t resist going again. I don’t have a Ph.D., but it’s still suits me fine.)

Autographed Books and the TechDev Speaker Series

As I’ve probably said before, one of the great things about working at Yahoo! is the external speakers routinely on campus. On Fridays, our Technology Development Group — some of the same folks behind Yahoo! Developer Network — hosts a weekly TechDev Speaker Series. Today’s speaker was John Battelle, the former Wired editor, Industry Standard founder, highly influential search industry blogger, and author of the new book, The Search.

He read some interesting passages, answered an very generous number of questions, and hung around to sign books. He definitely gave me a few things to think about, including a suggesting that we’re leaving the “poke” interface days (mouse clicks to ‘poke’ around an interface) and entering days of natural language interfaces, where words and concepts drive knowledge exploration.

I’m at work, sure, but it’s not a bad way to spend a Friday. (And I’m looking forward to Saturday too.)

San Francisco, California | Creative Commons By-2.5 License | Contact

RSS Feed. This blog is proudly powered by Wordpress and uses Modern Clix, a theme by Rodrigo Galindez.