jQuery’s Content Delivery Network: You Got Served!

Posted on by

MaxCDNIn 2013, MaxCDN joined the jQuery Foundation and stepped up to provide Content Delivery Network (CDN) services for the jQuery CDN at code.jquery.com. Files can now be requested through both HTTP and HTTPS (SSL) protocols, either to download to your own servers or to use directly on production web sites. MaxCDN’s infrastructure can reliably deliver jQuery files through a worldwide high-speed collection of servers to minimize round-trip time.

Why a CDN is Useful to Developers

The obvious benefit is that the MaxCDN network is much faster than the average server, and geographically distributed so that round-trip times are kept low. Yet there is another subtle benefit. Many web sites simply serve up all their content (HTML, CSS, scripts, images, and other assets) from the same domain. This can create a bottleneck on both the browser and the server. Downloading content from multiple domains, known as domain sharding, can improve performance. Just remember that as with any good thing, going overboard is a bad idea. Some research shows that just two domains may be the sweet spot. Use a tool like WebPageTest to test your site to get the best results.

Why a CDN is Useful to jQuery Projects

jQuery projects serve out a huge number of bytes, especially on days when a project makes a new release. When developers rush to download the latest version, we want to be able to handle the load. GitHub does a great job of supporting our development cycle and working project files, but it is not designed to serve up billions of copies of our production files. Google and Microsoft also provide CDNs, but it can take several days between the time a project makes a release and the time the files appear on those CDNs. Third-party CDNs also have their own rules about which files can be placed on the CDN, for example they don’t post pre-release versions. The jQuery CDN allows us full control over timing and content.

Serving Billions of Files, Trillions of Bytes

We thought we were serving a lot of files, but some statistics from MaxCDN really drive home the point. In the last five months of 2013, the CDN served more than 82 billion files, exceeding 3.6 petabytes. We sent out enough bytes to completely fill 3,269 1-terabyte disk drives! An average day on the CDN has us serving up about 20 terabytes of data.

Here are the ten most popular files requested from the CDN:

# File name Hits
(billion)
Size
(terabytes)
1 jquery-latest.js 6.36 404.65
2 jquery-1.9.1.min.js 5.93 193.96
3 jquery-1.7.2.min.js 4.95 154.50
4 jquery-latest.min.js 4.45 116.08
5 /ui/1.10.3/jquery-ui.js 4.18 484.58
6 jquery-1.9.1.js 2.45 178.54
7 jquery-1.10.1.min.js 2.27 71.62
8 jquery-1.7.1.min.js 2.26 78.05
9 jquery-1.4.2.min.js 2.07 39.80
10 /ui/1.10.3/themes/smoothness/jquery-ui.css 1.55 9.83

There are some encouraging signs here. Some of the most popular files are the minified files, as they should be for a production web site. It’s also encouraging that recent versions of jQuery Core (1.9.1 and 1.10.1) are high up on the list. That means a lot of jQuery developers are keeping up with the features and bug fixes we’ve been adding.

The most commonly requested file is jquery-latest.js, which automatically updates whenever the jQuery Core team releases a new version. Developers should never use jquery-latest.js or jquery-latest.min.js on a production site, it is primarily meant for testing. Similarly, the full jQuery UI build at position 5 is the latest version, but that file may not be a good fit for production sites needing only a few jQuery UI widgets. A minified copy with just the needed widgets can be built on the download builder page.

Counting on the CDN

Thanks to MaxCDN’s contribution, the jQuery Foundation has a content delivery network that offers reliable high-speed access to all of our project files. The files at code.jquery.com serve as the official repository for all jQuery project releases. You can either download the file for local use, or reference our domain directly from your own web pages to take advantage of the CDN and domain sharding.

The State of jQuery 2014

Posted on by

The year 2013 was an incredibly exciting one for jQuery. As jQuery celebrates eight years of supporting web developers, it’s time for our annual review. I’m pleased to say that we achieved a lot in 2013 and have some great plans for 2014!

New Leadership

In November, Kris Borchers became Executive Director of the jQuery Foundation as successor to Richard Worth. Kris has been a jQuery Foundation board member and a long-time jQuery contributor, so he understands the mission of the Foundation well. We welcome Kris, and thank Richard for his work in shepherding the Foundation through its first full year of existence.

jQuery used by 68% of the top 100k sites

Continuing Growth

It seems impossible to believe there are still web sites that don’t use jQuery, but the statistics at builtwith.com show there are fewer and fewer of them. jQuery’s core library is used by more than 61 percent of the top 100,000 sites, up 10 percent from last year. Growth is also strong in other jQuery Foundation projects such as jQuery UI, which is now used by nearly one-fifth of top-10,000 web sites.

New Environments

jQuery is also used in a lot of places that can’t be identified through a web crawl. You’ll find jQuery anywhere web technologies are used, not just the public Internet. That includes Google Chrome add-ons, Mozilla XUL apps and Firefox extensions, Firefox OS apps, Chrome OS apps, Windows 8 Store apps, BlackBerry 10 WebWorks apps, PhoneGap/Cordova apps, Node.js, and even the Sony PlayStation 4. By supporting these technologies, we’ve made it possible to take advantage of jQuery knowledge in many places other than just browsers and web pages.

Future-Oriented

In January 2013, we released jQuery 1.9; then jQuery 2.0 was released in April. These two versions dumped old APIs that were making jQuery bigger, slower, and harder to use. jQuery 2.0 went a step further and dropped support for environments that don’t support newer standards, such as Internet Explorer before version 9. From an API standpoint, the two behave identically, though; web developers can update to the 2.x branch whenever those older versions of IE are no longer important to their web pages or apps.

Backwards-Compatible

We knew that removing some old functionality from jQuery core could make migration slow and difficult; after all, a lot of code on web sites was written years ago and the people who wrote it are long gone. That’s why we created the jQuery Migrate plugin to identify code that was using the features we removed. Better than that, it allowed most of that old code to continue to work by shimming in the old behavior. It’s a great tool for keeping a site running while things are being updated, although we don’t advise using it for a long-term fix.

jQuery Served Your Way

With jQuery being used in so many environments, we want to make sure it fits with their workflows and conventions. So, we’re adapting by making jQuery available on both the npm and Bower package managers. This makes it easy for just about any JavaScript-based project to keep jQuery dependencies up to date. Last year’s refactor of jQuery core into small modules also lets developers create a custom build that removes features a project doesn’t need, to reduce the download size.

Keeping it Simple

We haven’t forgotten, however, that most developers keep things simple and just include a copy of the standard jQuery build using a <script> tag. So in 2013 we upgraded our content delivery network (CDN) thanks to a generous donation from MaxCDN. The jQuery CDN is now better than ever and supports the https protocol for delivering all files.

Advocating for Developer Needs

jQuery’s use of a convenient and browser-independent layer around the cumbersome DOM interfaces is one reason for its popularity. As Simon St. Laurent put it, “jQuery is how the web routes around broken API design.” But we don’t want the DOM API repair business to be our full-time line of work. People should be continuing to use jQuery because it’s a powerful way to implement designs and provides a vibrant ecosystem of useful plugins, not because the native DOM APIs are broken, verbose, or inconsistent. That’s why we participate in the standards process through bodies such as the W3C and ECMA.

Let’s Keep Innovating!

Over the next few days, posts on this blog will be counting the ways that the jQuery Foundation is improving the web developer community, in keeping with our mission. If you see something that interests you, we invite you to get in touch with us and participate!

Dave Methvin
President, jQuery Foundation

Join the jQuery Foundation!

Posted on by

This month, the jQuery Foundation is celebrating our first year serving the web. As a not-for-profit trade association, we’re here to connect every business and individual that cares about jQuery and help them work together to ensure its continued success. Writing code and documentation, hosting trainings and conferences, and collaborating in the standards process. This makes jQuery better and it makes web development better.

jQuery is more than just a JavaScript library, it is a community and an integral part of the web developer’s toolset today. The jQuery Foundation exists in part to ensure this community continues to grow and thrive. Throughout this first year, we’ve invited companies to join the jQuery Foundation in support of this mission, and 14 companies have joined at various levels. We appreciate their commitment to jQuery and their support of its mission to support the libraries, their documentation, and our web standards advocacy.

Individual Membership Program

You can now join the jQuery Foundation as an individual member. Just as with companies, we have created various levels based on contributions. The benefits include buttons, stickers, badges, banners, discounted conference tickets, discounts from member companies, invites to members-only parties at conferences, and recognition on our member listing. We’ve prepared a thank you gift for each level to provide an extra incentive for folks to make an annual dues commitment.

Join Now

Badge of Honor

We’ve prepared badges and banners for our members to sport on their website, or their choice of social network. Huge thanks to Isaac Durazo (@isaacdm) from Bocoup for drawing these up.

What if I Can’t Contribute On A Recurring Basis?

The individual membership program is designed for those who want to contribute a set amount of dues to jQuery regularly, as well as enjoy the benefits of that membership. If that’s not what you’re looking for, we always welcome one-time donations (from companies or individuals) via PayPal and check at jquery.org/donate

Moving Forward

The jQuery team, together with the support of member companies have achieved tremendous success in Year One. We have tripled the number of conferences, gathering with communities around the globe (Asia, Europe, Canada, and UK). We have redesigned (nearly) all our web sites and made contributing to them as easy as contributing to code. We continue to wrangle bug queues and deliver smaller, faster, better tested, and more robust code. We have 4 official representatives at the W3C and ECMA TC39. We’ve managed to do this all in our first year, and we’re very much looking forward to what we can accomplish in the future. Join us!

Announcing the jQuery Foundation

Posted on by

(BOSTON) — The jQuery Board, in conjunction with Software Freedom Conservancy, is proud to announce the formation of the jQuery Foundation, Inc., an independent organization that will manage jQuery, the Internet’s number one JavaScript library, and its constituent projects.

The jQuery Board previously administered jQuery under the aegis of the Conservancy, a public charity that acts as a non-profit home for free software projects.

The new jQuery Foundation is a non-profit trade association dedicated to supporting development of the jQuery Core, UI, and Mobile projects; providing jQuery documentation and support; and fostering the jQuery community.

Dave Methvin, who recently took over as the head of the jQuery Core development team, will also serve as the Foundation’s President. “jQuery is the most popular JavaScript library, and creating an autonomous organization is the next step in ensuring its future development and benefiting everyone who uses jQuery,” said Methvin. “We’ll be announcing several initiatives shortly, including the next jQuery Conference and other efforts driven by needs within the community and the project.”

“I’m extremely excited to see the jQuery Foundation springing to life. I’m glad that Dave Methvin is leading the foundation and the direction of the core library. He’s a good friend and exceedingly capable of moving jQuery forward,” said John Resig, who created the library in 2005. “Meanwhile, I’ve been spending more time focusing on improving the state of JavaScript and programming education at Khan Academy. I’m psyched to be a part of the jQuery core team and Foundation and can’t wait to see how jQuery grows in the upcoming years.”

“We are proud that the jQuery Board has built jQuery into a vibrant and successful Open Source community under Conservancy’s mentorship,” said Bradley Kuhn, Executive Director of the Software Freedom Conservancy. “Our mission includes helping member projects determine whether to form their own organization, and we’re pleased jQuery is the first Conservancy project to take that step.”

The jQuery Foundation would like to thank Joel G. Kinney of Fort Point Legal, whose generous pro-bono counsel has been invaluable in transitioning to an independent organization. The Foundation is also proud to accept an honorary first donation from the Linux Fund, which has chosen to continue its tradition of supporting the open source community with a contribution to the Foundation’s inaugural operating expense budget.

About jQuery
Created in 2005 by John Resig as a JavaScript library to provide an intuitive approach for working with the DOM and Ajax, jQuery has steadily gained popularity among the development community and is the most widely-adopted JavaScript library in use today.

About the jQuery Foundation
The jQuery Foundation is a non-profit trade association and the home of jQuery, the Internet’s number one JavaScript library.  Founded by a group of leading JavaScript developers and architects, the jQuery Foundation is dedicated to three goals:  supporting development of the jQuery Core, UI, and Mobile projects; providing jQuery documentation and support; and fostering the jQuery community.

jQuery Foundation, Inc. is a Delaware non-profit currently seeking IRS 501(c)(6) status.  Donations to the jQuery Foundation will be used to further the goals of the Foundation.  For more information, visit http://jquery.org.

About Software Freedom Conservancy
Software Freedom Conservancy is a non-profit organization that helps promote, improve, develop and defend Free, Libre and Open Source software projects.  Conservancy is a home to twenty-eight software projects, each supported by a dedicated community of volunteers, developers, and users.  Conservancy’s projects include some of the most widely used software systems in the world across many application areas, including educational software deployed in schools around the globe, embedded software systems deployed in most consumer electronic devices, distributed version control developer tools, integrated library services systems, and widely used graphics and art programs.  A full list of Conservancy’s projects can be found at http://sfconservancy.org/members/current/.  Conservancy provides to these projects the necessary infrastructure and not-for-profit support services to enable the project’s communities to focus on what they do best: creating innovative software and advancing computing for the public’s benefit.

jQuery Joins the Software Freedom Conservancy

Posted on by

You’ve been hearing for almost a year now that the jQuery Project was going to join the Software Freedom Conservancy.  As we stated on January 14th, 2009:

By joining The Software Freedom Conservancy, the jQuery projects and community immediately realize some important benefits:

  • It allows the current project members to continue to manage the projects and maintain ultimate responsibility for the direction of current and future efforts.
  • It allows the projects to be considered a true non-profit efforts allowing us to be able to accept donations and contributions without incurring tremendous personal financial liability.
  • The copyright of the code will be assigned to the conservancy thus ensuring that no single person will own contributions or assets of the project.
  • It may allow corporations to write off time when an employee contributes to a project.
  • Most importantly, it ensures that the jQuery projects will always be open and free software.

This is a big step in formalizing the jQuery projects and an important accomplishment in ensuring that the investment being made by the jQuery community is protected.

The Software Freedom Conservancy outlines the benefits of joining quite well:

One of the principal benefits of joining the Conservancy is that member projects get all the protections of being a corporate entity without actually having to form and maintain one. These benefits include, most notably, the ability to collect earmarked project donations and protection from personal liability for the developers of the project. Projects can continue to operate in the same way they did before joining the Conservancy without having to select a board of directors or any other layer of corporate management, without having to maintain corporate records and without having to do any of the other things required of incorporated entities. The Conservancy handles all of that burden on behalf of its projects.

The Conservancy is a tax-exempt 501(c)(3) organization, so member projects can receive tax-deductible donations to the extent permitted by law. The Conservancy files a single tax return that covers all of its member projects and handles other corporate and tax related issues on behalf of its members, who are, of course, always free to join and leave the Conservancy at any time. Additionally, by not having to form a new organization, projects avoid having to pay the fees and spend the time required by the state incorporation and federal tax exemption application processes.

On September 11th, 2009, at the jQuery DevDays in Boston, MA the whole team was together and the documents were signed to officially join the Conservancy.

jQuery Team Signs Documents to join Software Freedom Conservancy

Left to Right: Brandon Aaron, Rey Bango, John Resig, Paul Bakaus, Richard D. Worth and Cody Lindley look on as the documents are signed. (Photo by Jörn Zafferer)

Since then we’ve formed the jQuery Project and have formalized a voting process to vote on adding or removing voting members, financial spending, etc.  Voting is done in public, and you can monitor votes here.

jQuery’s financials have also been transferred to the Conservancy and all your great donations are now managed by the Conservancy based on the direction of the voting members of the jQuery team.

Late last month the final details required by the Conservancy were ironed out and on Tuesday this week the Conservancy welcomed the jQuery Project as its 19th member.

One final detail we are still working on is transferring the copyright of the code to the Foundation.  We are hoping to get that done in the near future.  Transferring the copyright to the Foundation will ensure that the code will live forever.

You can listen to John Resig talk more about joining the Software Freedom Conservancy in Episode 1 of the Official jQuery Podcast.

jQuery 1.3 and the jQuery Foundation

Posted on by

Happy Birthday to jQuery! jQuery is three years old today, after being released way back on January 14th, 2006 at the first BarCampNYC by John Resig.

We have four announcements for you today, we hope you’ll enjoy them!

jQuery 1.3

First, we have an excellent new release of jQuery ready for you to enjoy. The big features of this release are:

  • Sizzle: A sizzlin’ hot CSS selector engine.
  • Live Events: Event delegation with a jQuery twist.
  • jQuery Event Overhaul: Completely rewired to simplify event handling.
  • HTML Injection Rewrite: Lightning-fast HTML appending.
  • Offset Rewrite: Super-quick position calculation.
  • No More Browser Sniffing: Using feature detection to help jQuery last for many more years to come.

The full details of the release can be found in the release notes:
http://docs.jquery.com/Release:jQuery_1.3

We’re currently planning on a follow-up jQuery 1.3.1 release sometime within the next week or two to catch any straggling bugs that might’ve slipped through. If you spot any bugs please be sure to submit them to the bug tracker.

Sizzle

jQuery has a brand new CSS selector engine – nicknamed ‘Sizzle‘. You can read the full details behind it in the jQuery 1.3 Release Notes (including performance numbers).

More importantly, though, we’re taking a big leap with Sizzle: We’re releasing it as a completely standalone project to be collaborated upon by many library creators and developers. We saw an opportunity to give something back to not just the jQuery community but to the JavaScript development community as a whole; and at the same time be able to collaborate with developers of other libraries on a single, unified, selector engine. We feel that there’s too much competition and not enough collaboration occurring and so we put our code out on the line as a good first step towards working together.

As a sign of good faith and willingness to collaborate, we’ve turned over Sizzle to the Dojo Foundation (an excellent non-profit well suited for this project, not to be confused with the Dojo Toolkit). We wanted a common meeting ground where all developers would be able to work together and under which there would be a clear long-term copyright holder.

Our request for collaboration has already seen an amazing resopnse: Developers from Prototype, Dojo, Yahoo UI, MochiKit, and TinyMCE (and many other projects) have all shown interest in refining Sizzle to perfection.

A rough Sizzle project page can be found here:
http://sizzlejs.com/

Along with the full source code:
http://github.com/jeresig/sizzle/tree/master

New API Browser

Along with the release of jQuery 1.3, I’m pleased to present the new API browser, developed by Remy Sharp, available at: http://api.jquery.com/.

jQuery API Browser
This is an alternative view to the existing jQuery API that should be easy to navigate and use.

The new API browser includes the following features:

  • All the latest jQuery and jQuery UI documentation.
  • The ability to mark pages as favorites for those pages you keep wanting to return to.
  • Syntax highlighting in the code examples
  • Live running of examples within the browser
  • Links to edit and experiment with the code examples

Most importantly though, the API browser is also available offline as an Adobe AIR application (thanks to Tane Piper’s AIR framework). The interface looks and works the same, and includes an auto-update mechanism, so you’ll always be up to date.

Download and install the AIR API browser

If you find problems please submit a bug to the bug tracker under the ‘site’ component.

Which leads us to the last, and certainly not the least important, point…

jQuery Foundation

With the jQuery Project growing at a tremendous rate, it was important for us, as a team, to take a step back and determine how the project’s ownership should be handled. Currently, John Resig, jQuery’s founder and lead developer, and Paul Bakaus, lead developer for jQuery UI, both maintain ownership of their respective projects. This posed several concerns from a practical and legal perspective as it enjoined two individuals as the owners of the projects instead of a formal organization. As more individuals and corporations started contributing to the projects, these concerns became even more evident causing confusion as to who were the correct copyright holders for specific units of work.

After meeting up to talk at the recent jQuery Conference, we decided to really make a concerted effort to fix this and determine how we could shift ownership of the jQuery projects to a foundation-type organization that would:

1. Understand the nature of open-source software development.
2. Allow us to continue to manage the project unhindered.
3. Ensure that the projects continue to live on regardless of who is involved in the effort.

After examining many options we came to a final conclusion – and we’re excited to announce that the Software Freedom Conservancy has extended the jQuery project an invitation to join the non-profit organization and continue developing software under its auspices. By joining The Software Freedom Conservancy, the jQuery projects and community immediately realize some important benefits:

1. It allows the current project members to continue to manage the projects and maintain ultimate responsibility for the direction of current and future efforts.
2. It allows the projects to be considered a true non-profit efforts allowing us to be able to accept donations and contributions without incurring tremendous personal financial liability.
3. The copyright of the code will be assigned to the conservancy thus ensuring that no single person will own contributions or assets of the project.
4. It may allow corporations to write off time when an employee contributes to a project.
5. Most importantly, it ensures that the jQuery projects will always be open and free software.

This is a big step in formalizing the jQuery projects and an important accomplishment in ensuring that the investment being made by the jQuery community is protected. We’ll be making the transition into the conservancy over the coming weeks. There will be very little, to no, change in how the project will run. The jQuery Team will still run and manage the project and we’re still going to work hard to build the best JavaScript library possible. If anything this will help to free up some of our time so that we can spend more time coding – and who doesn’t like the sound of that?

Happy 3rd birthday, jQuery!