Archive for July 2006

Yahoo! User Interface (YUI) JS Libraries updates released

Some exciting news for front-end developers today: The Yahoo! Developer Network has released the newest version of it’s YUI JavaScript libraries today. With extensive documentation, great support for cross-browser coding, and a couple new components, these tools are becoming an even better solution for JavaScript developers. Check out more at the official YUI blog. Here is what’s new:

Updates to the previously beta versions of:

  1. An event utility
  2. DOM collection manager
  3. Connection manager (for AJAX / XHR calls to the server, now with file upload)
  4. Drag & Drop utility
  5. Animation Library (now includes color animation support!)

Additionally, the release of improves upon:

  1. AutoComplete
  2. Calendar
  3. Container (including Module, Overlay, Panel, Tooltip, Dialog, SimpleDialog)
  4. Menu
  5. Slider
  6. TreeView

And adds a new control: the Logger (beta).

What’s so great about these YUI Libraries? What about Prototype, Dojo, and Mochikit? As a former Prototype enthusiast before coming to Yahoo!, I noticed a couple things beneath the surface that I began to really appreciate when I made the switch:

  • I like knowing that a company of 12,000 people is backing, using, and continually supporting/improving my JavaScript library. They have a full time staff of people that are incredibly at handling all the annoying cross browser concerns and repetitive JavaScript tasks, so I don’t have to.
  • I have grown to love the heavily name-spaced nature of the YUI libraries. Sure, at first glance it may seem annoying to have to type YAHOO.util.Event.addListener, but it makes code highly independent and guarantees that it won’t interfere with other functions of the same name. One trick: add YUE = YAHOO.util.Event at the top of your page and you’re golden. I’ll admit, I do miss the $ function, but that can always been added individually.
  • The ability to extend the YUI classes is great. Say you need an extremely customized version of the Drag & Drop library. Easy, just take what they give you, and overwrite through inheritance in your own file the individual functions you need to modify.
  • Unlike Prototype (and others), there is not one massive JavaScript file.  Instead, if you only want Event Handling, you only include a small global yahoo.js, as well as event.js.  Then if you later want to add animation, you just include animation.js.  The point is, you only add what you need.

My absolutely favorite part of developing with the YUI libraries is getting to use these cheat sheets. Go print them now!

Some lessons on business from traveling

I am fortunate enough to be able to work from Florida for a couple days due to July 4th, leaving me with a nice 9-day visit back home. While traveling, I observed a couple of interesting things about business, opportunities, and life. Check them out…

First, while waiting in Phoenix at the Southwest Airlines gate to board my plane, the guy guarding the boarding door was about to do his usual thing, preparing for boarding the plane, when he did something that made everyone look up. He said

“Do you guys want me to give you all the boarding information in a song?”

Not sure if he was serious at first, people began nodding. So he started – and sang an entire song to the tune of Edwin McCain’s I’ll Be. The guy actually had a really good voice and gave us all the usual information, but in a really exciting and new way. In the end, everyone applauded and had a smile on their face. This is a great way to do business. I hope that guy gets a raise because he took what is usually a very boring experience and added life to it. Even his coworkers from the booth were smiling and enjoying themselves.

On the other hand, I went out to eat this afternoon with a pretty large group of 13 people to Clarks. While I usually like the place, today the waiter sucked – he was overall unfriendly, rude, and short with us. So what if a few people ordered water? That doesn’t mean “refills” should be given by slinging one pitcher of each drink on each side of a very long table. I noticed the not-so-great service but wasn’t going to say anything. However, it was bad enough for several girls at my table to be unhappy about it. Because of this, I simply asked for his name, and informed the manager that I love the restaurant, but was receiving bad service due to a rude waiter. I hope this guy gets a one-on-one meeting with the manager and either begins to improve or get replaced by someone like singing-airplane-gate-guy. And it really is in the waiter’s best interest – better service results in better tips.

What’s the point? That a little personality and effort go a long way in creating a good impression and making happy customers.

And last but not least: airplane rides are great for networking. After briefly meeting a young couple while listening to singing-airplane-gate-guy, we ended up sitting next to each other on the plane. I had a great conversation with the guy. I taught him Sudoku, talked to him about Jacksonville, discussed web design and business ideas. He told me about his own business and how he created a simple website for himself using a free online tool. After a simple conversation, without seeing any of my resume or previous design work, this guy says:

“I really wish I hadn’t already signed a contract for my new website, I would hire you right now. But if you want to do any search engine optimization contract work, that would be great.”

Why would he say this after such a short conversation with no evidence of my abilities? I think it has to do with a few things. Just like above, having a personality and engaging in conversation almost always are good things. More important than resumes or portfolios, people just like to know that they can simply talk to you and trust you as a person.