Ten Questions with YAHOO.ext Author Jack Slocum

By Eric MiragliaOctober 10th, 2006

Jack Slocum is the author of JackSlocum.com, a blog that focuses on extensions built on top of YUI. Jack’s Grid component and Ajaxified phpBB implementation have been the focus of much conversation lately; he has just released a DOM helper utility and is running a YUI-based paragraph-level comment system for WordPress on his blog.

Q: What is your background in front-end engineering?

I have been doing web development since 1995. Most of my experience has been in building corporate web applications. I have also been involved in some high profile public sites such as compare.net (now shopping.msn.com), howardstern.com  and drlaura.com.

Q. What led you down the path of extending YUI?

For 4 or 5 years most of the front-end development I was doing was IE-only. As FireFox and other browsers starting gaining popularity, the need for a cross-browser solution arose. This is where YUI stepped in and made the transition easy for me.  As I did more development, I saw various ways I thought I could improve upon and/or extend the YUI base functionality. In August of this year, I started my YUI related blog and subsequently began working on the YUI Extensions library.   

Q. What are the core goals of the YAHOO.ext project?

To create a library of reusable objects and widgets that improve the overall usability of YUI and make it possible to use YUI without the need for other libraries.

Q. What components have you written so far?

  • A Grid component that supports various data sources, paging, inline editing and various selection models.
  • A flexible SplitBar component.
  • A basic TabPanel component.
  • A basic Toolbar component.
  • An extended Animation library built on top of YAHOO.util.Anim that supports automatic animation sequencing and synchronization.
  • A variety of utility classes that make every day development with YUI a little easier:
    • Element:  Simplifies working with DOM elements. It also supports performing YUI animations automatically when setting an element’s properties.
    • DomHelper: Highly optimized DOM creation and in-browser templates utility.
    • EventManager: Takes YAHOO.util.Event one step further and provides normalized browser event objects.
    • UpdateManager: Ajax helper to manage DOM element updates.

Q. The Grid component has generated a lot of attention in the blogosphere.  How many downloads have you logged of that component?  How many downloads have there been to-date of YAHOO.ext in total?

Unfortunately I didn’t start tracking downloads until recently, but in the past 2 weeks there have been over 5000 downloads.

Q. What is your current approach to documenting and supporting the Grid and the other Extensions?

Like the YUI team, I believe documentation is very important. All of the components are well-documented and there are generally multiple examples and at least one post on my blog describing how to use each component in plain English.

Q. The Ajaxified phpBB interface is slick and has been the subject of a lot of discussion.  How hard is it for a site owner to implement your interface on an existing bulletin board?

The phpBB interface was intended to be a small project I was doing on the side for my site. Somehow it hit the front page of Ajaxian, and now everyone wants a copy. It’s only about 20% completed and I have no timeline for when it will be done.

Q. Last week you released a DOM helper utility that allows developers to do DOM injection with much better performance than in comparable utilities in other libraries.  What are the core features of this new utility?

The DomHelper and Template classes provide a cross browser abstraction of creating DOM elements. Unlike the traditional approach of only providing a cleaner and more developer-friendly DOM API, the DomHelper classes also transparently provide more optimized insertion methods such as HTML fragments and template building.  The live benchmarks verse Scriptaculous Builder and Mochikit are available here  and clearly show the performance benefits of using DomHelper.

Q. Bloggers reacted enthusiastically this week to your WordPress comments system that allows readers to comment on individual paragraphs of a blog entry.  Any idea when this plugin will be released publicly?  What other WordPress plugins might we expect down the road?

The real reason for creating the comments system was to allow people to ask questions or post comments about specific code blocks or topics in my tutorial and example blog posts. It also serves as a good example of using YUI in a real world application. I’m not sure if it could be made into a traditional  WordPress plug-in since I had to modify some of the core WordPress functionality (that is not available to plug-ins) to make it work.

Q. What’s next on your development roadmap?

The next release will include a “Resizable” component which can be applied to any element to allow that element to be resizable by the user. I have also begun working on a Forms library that will make it possible to create rich forms with real-time data validation, data-binding and a desktop-like user experience. Some other ideas include a TaskPanel (like in Windows Explorer) and there are still quite a few features to implement in the Grid, like fixed columns and column reordering.

Q. What are you hoping to see next from the YUI project?

Definitely not a Grid component. :-)  I am looking forward to the History Utility. I think that’s something overlooked in many Ajax projects and having a YUI solution would be great.

Q. Are other developers getting involved in YAHOO.ext?

There have been a few people who have helped me a great deal with fixing various issues (especially on Safari), and I’ve been lucky to receive a lot of feedback and ideas from people using the library. Currently I am the only one working on core development, but I can definitely use some help.

Q. How can developers get involved if they want to participate?

The best way is by posting in the Development Discussion forum at http://www.jackslocum.com/forum/. You can also e-mail me directly at jack dot slocum at yahoo dot com.

14 Comments

  1. Yahoo, either hire this guy or at least spring for a Mac he can test on. Jack’s work is amazing, but most of it is DOA on Safari. For $500 Yahoo could contribute to the YUI ecosystem in a huge way!

  2. Scratch that comment! Most of his best stuff works well on Safari! Some components (Splitter bar) don’t, but that Grid is a work of genius.

  3. [...] Our Yahoo! UI team apparently also found out about Jack recently, and posted an interview on the Yahoo! UI blog. [...]

  4. Andrew, could you give specific examples where Jack’s SplitBar component doesn’t work in Safari? Here are some examples on his site that do work: the SplitBar on the right side of his site’s Navigation panel (when open) that enables resizing of the panel; the column dividers in the Grid examples that enable resizing of the columns; every example in the Aug. 19 post in which he introduced the SplitBar component except the example with a basic layout.

  5. I second what Andrew said about the Mac! ;)

  6. That a good point Rob. The instances where things don’t work in Safari (like the 1st SplitBar example) are generally caused by doing something in a way Safari doesn’t support. It’s not the component, but the lazy example that’s flawed. For simplicity, in the first SplitBar example I used an HTML table to divide the content into splitable areas. Safari doesn’t support offsets for table cells/rows. So that example doesn’t work in Safari. In subsequent examples I used CSS layouts instead of a table and they all work well.

  7. [...] Ten Questions with YAHOO.ext Author Jack Slocum Yahoo! shows just how plugged-in the Yahoo! User Interface (YUI) library team is by interviewing Jack Slocum, author of a number of widely-praised YUI extensions (including an enhanced UI for phpBB featured here recently), on the official YUI blog. (tags: javascript yahoo!) [...]

  8. Ok, I should remove the egg from my face, the examples I was looking at in Safari where all examples of *fixed width* splitters, not the (one) resizable one, which does work in Safari.

    But I’d still contribute to a fund to buy Jack a Mac. :-)

  9. I’ve been following Jack’s work and it’s been quite impressive. This was a very cool feature on Jack and I’m glad we had the privledge to ask him a few questions. Re: Laptop, I’d like one as well ;)

  10. yahoo is stupid not to extend an offer to this fellow.

  11. saying “hire them” for every developer who can make a useful contribution is a dead-end, not everyone wants to work at yahoo. yahoo needs to embrace the ideals behind its liberal license and develop a model to let external developers contribute to the codebase. the longer a cathedral model is applied to a forkable codebase, the better the chances are that someone will in fact fork it. the YAHOO.ext distribution model is a hack, if Jack’s contributions are worthwhile and useful, then they are worthy enough for consideration through the core distribution site and tarballs.

  12. [...] The YUI-ext Grid component was a problem challenge for Slocum. He admits this in his interview with Yahoo!™. It is a problem for me because it needs attributes that are not part of any HTML/XHTML specification. Not comforting. Matt Sweeney of Yahoo!™ says “don’t invent your own markup… [the same] goes for attributes.” [...]

  13. [...] we’re using the Animation Utility, the Dialog Control, the Calendar Control, and Jack Slocum’s YUI-ext Grid, among other things. We’re beginning to implement Connection Manager for [...]

  14. Jack, I am so impressed with all your hard work! Hope you and “Kass” and the kids are doing great.