The Invisible Customer - Steve Robins Keynote at ProductCamp Boston 2011
jQuery Keynote 2011: Boston
-
Upload
jeresig -
Category
Technology
-
view
6.294 -
download
3
Transcript of jQuery Keynote 2011: Boston
jQuery KeynoteJohn Resig
http://ejohn.org/ - http://twitter.com/jeresig
http://trends.builtwith.com/javascript/jQuery
http://httparchive.org/interesting.php#flash
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/
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.
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)
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
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
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
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
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)
Watch the full process
The First Day: Can this help me?
Homep
age
View Tu
toria
l
Downlo
ad
Try T
utor
ial
Expe
rimen
t
The First Month: Learning
Integ
ratio
n
API Doc
s
Tuto
rials
Expe
rimen
t
Commun
ity
The First Year: Growth
Seco
nd A
pp
Explo
re A
PI
Exte
nd A
PI
Read S
ource
Contri
bute
Community Resources✦ Provide places for users to ask questions✦ jQuery:
✦ jQuery Forum✦ IRC Channel
✦ External:✦ StackOverflow.com✦ Twitter✦ Blogs
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
Twitter Tracking✦ Track people talking about the code:
✦ http://search.twitter.com/✦ Look for people having trouble, asking
questions
Answer Questions✦ It takes a lot of time, but sometimes it’s
really worth it✦ You never know who could be having
trouble
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
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
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
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
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
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
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
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
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 newplugins site!
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.