6. HTML5 in IE
✦ It’s now possible to create HTML 5
elements in older IE browsers:
✦ $(“#foo”).append(“<footer>...</footer>”);
✦ (Previously nodes might’ve ended up
broken and not rendering properly.)
✦ We do this by having a fragment with the
nodes already in it (fixes the issue!).
✦ You’ll still need to use a HTML 5 shim.
http://code.google.com/p/html5shim/
7. Event Property Hooks
✦ jQuery has it’s own custom event object
.click(function(e) { e.target, etc. });
✦ We do this to work around browser issues
and add in missing features.
✦ Now it’s extensible, faster loading, and
works around some browser issues.
✦ This will help to reduce possible bug
weirdness relating to this piece of code.
8. Event .on(), .off()
✦ Two new methods:
.on() and .off()
✦ These serve as simple shortcuts for:
.bind(), .live(), and .delegate()
✦ .on( “click” ) // bind
✦ .on( “click”, “div.test” ) // delegate
✦ (.live is the same as delegate, but on a
document)
9. Selector Attribute Rewrite
✦ Following up on the attribute module
rewrite
✦ We now use our new attribute handling in
the Sizzle selector engine
✦ Makes cross-browser compatibility that
much better
10. Animation Ordering
✦ We now catch and prevent issues with
animations not returning to their full
height/width
✦ We handle the queueing better internally
to work around issues relating to pausing
animations
11. Submit / Focus Events
✦ We’ve improved the quality and stability of
the submit and focus event handling
✦ IE doesn’t bubble these events, normally
✦ We’ve worked around its shortcomings for
a while now - this just makes that support
that much better
12. Related Talks
✦ Attributes and Properties
Today (after Keynote), Timmy Willison
✦ Deferreds and Callbacks
Today, 11:45, Julian Aubourg
✦ Animation Engine
Today, 1:15, Corey Frang
✦ Events Rewrite
Tomorrow, 11:45, Dave Methvin
13. Things That Are Important
✦ Technical
✦ API Design
(Usability, documentation)
✦ Code Quality
(Licensing, openness, test coverage)
✦ Non-technical
✦ Community
(Resources, responsiveness)
✦ Learning Aides
(Tutorials, books, demos)
14. Se In H
co te om
nd gr ep
at
Ap io ag
p n e
Ex Vi
pl AP ew
or ID Tu
eA oc t or
PI s ial
Co D
m ow
Ex
te m nl
un oa
nd i ty d
AP
I
Tr
Re
Tu
t y Tu
ad or t
ial or
So s ial
ur
ce
The First Year: Growth
The First Month: Learning
The First Day: Can this help me?
Co
nt Ex Ex
rib pe pe
ut r im r im
e en en
t t
Watch the full process
15. Attrition
Failure at any step costs your project another user.
Your project is your own worst enemy.
16. Community Resources
✦ Provide places for users to ask questions
✦ jQuery:
✦ jQuery Forum
✦ IRC Channel
✦ External:
✦ StackOverflow.com
✦ Twitter
✦ Blogs
17. Monitor Your Community
✦ Make sure that everyone is getting the
help that they need
✦ We run an Evangelism Team
“Developer Relations”
✦ Track all of the services they use
✦ Forum - Subscribe to the forums
✦ IRC - Sit in the IRC channel
✦ Blogs - Use Technorati and Google Blog
Search
✦ Twitter - Use Twitter Search
19. Service
✦ Today Mike Alsup and Michael Geary are
part of the jQuery team
20. Twitter Tracking
✦ Track people talking about the code:
✦ http://search.twitter.com/
✦ Look for people having trouble, asking
questions
21. Answer Questions
✦ It takes a lot of time, but sometimes it’s
really worth it
✦ You never know who could be having
trouble
22. Follow-up With Large Users
✦ Maintain a list of contacts with your large
users
✦ Ping them every once in a while
✦ Make sure that they’re having a good
experience
✦ They frequently forget to file bugs - make
sure that happens
23. API Documentation
✦ jQuery had API docs from the start (2006)
✦ Two other major libraries: Dojo, Prototype
didn’t have any until 2007+
✦ Clarity and usability of documentation is
huge
27. Learn More
✦ Tutorials and Books
✦ Tutorials are short and drive home a point
or single topic
✦ “Books” are more holistic and lead the
reader from start to finish
30. Open Process
✦ Open Source is easy
(just release the code
and be done with it)
✦ Open Process is hard
(open source control,
easy bug tracking)
✦ A good process helps
users learn
31. Core Development Process
✦ Weekly, public, team meetings
✦ Defined release dates and schedule
✦ Frequent discussion in #jquery-dev (IRC)
✦ Active participation of the committers
and the bug triage team
34. Bug Triage Team
✦ Responsible for processing all the bugs in
the bug tracker
✦ Make sure test cases are filed
✦ Work through pulls in the Github pull
request queue
✦ Make sure the test suite is passing
37. Roadmap Decisions
✦ Put up a public form for people to submit
possible feature suggestions
✦ The team works through all the feature
suggestions and creates a list
✦ All of this is done publicly and discussed
in a public meeting
39. Contributions
✦ How does a user become a contributor?
✦ Encouragement is the biggest factor
✦ Encourage users to submit bug reports
✦ Encourage them to build test cases
✦ Encourage them to submit patches
✦ Communication is a huge factor here,
“dead” bugs or mailing list threads cripple
participation.
✦ http://docs.jquery.com/Getting_Involved
41. Extensibility
✦ Your API isn’t perfect -
it can’t include everything
for everyone
✦ Give users the ability to
add their own functionality
✦ jQuery has a healthy plugin
community with hundreds
of plugins.
✦ We’re working on a new
plugins site!
42. Complex Applications
✦ Users will attempt to build increasingly
complex applications
✦ Need to be there to help, otherwise they’ll
leave for something else
✦ jQuery UI - A set of complex User
Interface components.
✦ jQuery Mobile - A complete interface for
developing mobile web apps.