Fairmont San Jose
Fairmont San Jose
170 S Market St
San Jose, CA   95113
Map »

Platinum Sponsors

Gradleware Heroku Contegix

Nicholas C. Zakas

Author of "Professional Ajax, "Professional JavaScript", Engineer at Yahoo!

Nicholas C. Zakas
Nicholas C. Zakas is a principal front end engineer at Yahoo!, where he works on the Yahoo! front page. He is the author of two books, Professional JavaScript for Web Developers and Professional Ajax, (the latter is in its 2nd edition, the former will have a 2nd edition by the end of the eyar) as well as over a dozen online articles on JavaScript.

Nicholas began his career as webmaster of a small software company, transitioning into a user interface designer and prototyper before moving fully into software engineering. He moved to Silicon Valley from Massachusetts in 2006 to join Yahoo! Nicholas can be contacted through his web site.


Blog

What makes a good front end engineer?

Posted Wednesday, August 15, 2007

Imore »

The state of web syndication

Posted Tuesday, July 31, 2007

Tmore »
Read More Blog Entries »

Presentations

Maintainable JavaScript

Just because you can doesn't mean you should. Learn the techniques and pitfalls of architecting your JavaScript code for posterity in an enterprise environment. There is a huge difference between what works on your personal web site and what your employermore »

Enterprise JavaScript Error Handling

With tens or hundreds of thousands of lines of JavaScript in modern web applications, there's a lot that can go wrong. Is your application prepared for the errors that may happen when your users login? Have you properly anticipated weak points in your codmore »

Maintainable JavaScript

close

Nicholas C. Zakas By Nicholas C. Zakas

Just because you can doesn't mean you should. Learn the techniques and pitfalls of architecting your JavaScript code for posterity in an enterprise environment. There is a huge difference between what works on your personal web site and what your employer has hired you to write. The code you create today could be touched by dozens of people tomorrow and hundreds by next month. Making sure that it can be understood, updated, and debugged is part of the value you add as a frontend engineer.



JavaScript programming is not just about being efficient, having a proper inheritance tree, or delivering on time; it's about making sound architectural decisions that will enable your code to live on long after its creation.


Enterprise JavaScript Error Handling

close

Nicholas C. Zakas By Nicholas C. Zakas

With tens or hundreds of thousands of lines of JavaScript in modern web applications, there's a lot that can go wrong. Is your application prepared for the errors that may happen when your users login? Have you properly anticipated weak points in your code as well as problems with network connections?

Although error handling is typically part of traditional server-side architectures, it is often overlooked when dealing with the client-side world of JavaScript. Learn where to anticipate errors, how to determine if they are fatal, and what to do when they occur.



Learn why it's important to look at your error handling strategy before you ever start coding as you explore case studies involving highly trafficked web sites, such as My Yahoo! and the Yahoo! home page.



Books

by Nicholas C. Zakas

Professional JavaScript for Web Developers (Wrox Programmer to Programmer) Buy from Amazon
List Price: $49.99
Price: $26.70
You Save: $23.29 (47%)
  • Professional JavaScript for Web Developers, 2nd Edition, provides a developer-level introduction along with the more advanced and useful features of JavaScript.

    Starting at the beginning, the book explores how JavaScript originated and evolved into what it is today. A detailed discussion of the components that make up a JavaScript implementation follows, with specific focus on standards such as ECMAScript and the Document Object Model (DOM). The differences in JavaScript implementations used in different popular web browsers are also discussed.

    Building on that base, the book moves on to cover basic concepts of JavaScript including its version of object-oriented programming, inheritance, and its use in various markup languages such as HTML. An in-depth examination of events and event handling is followed by an exploration of browser detection techniques and a guide to using regular expressions in JavaScript. The book then takes all this knowledge and applies it to creating dynamic user interfaces.

    The last part of the book is focused on advanced topics, including performance/memory optimization, best practices, and a look at where JavaScript is going in the future.

    This book is aimed at three groups of readers:

    • Experienced developers familiar with object-oriented programming who are looking to learn JavaScript as it relates to traditional OO languages such as Java and C++
    • Web application developers attempting to enhance the usability of their web sites and web applications
    • Novice JavaScript developers aiming to better understand the language

    In addition, familiarity with the following related technologies is a strong indicator that this book is for you:

    • Java
    • PHP
    • ASP.NET
    • HTML
    • CSS
    • XML

    This book is not aimed at beginners who lack a basic computer science background or those looking to add some simple user interactions to web sites. These readers should instead refer to Wrox’s Beginning JavaScript, 3rd Edition (Wiley, 2007).

    This book covers:

    • What Is JavaScript?—Explains the origins of JavaScript: where it came from, how it evolved, and what it is today. Concepts introduced include the relationship between JavaScript and ECMAScript, the Document Object Model (DOM), and the Browser Object Model (BOM). A discussion of the relevant standards from the European Computer Manufacturer’s Association (ECMA) and the World Wide Web Consortium (W3C) is also included.
    • JavaScript in HTML—Examines how JavaScript is used in conjunction with HTML to create dynamic web pages. Introduces the various ways of embedding JavaScript into a page, including a discussion surrounding the JavaScript content-type and its relationship to the element.
    • Language Basics—Introduces basic language concepts, including syntax and flow control statements. Explains the syntactic similarities of JavaScript and other C-based languages and points out the differences. Type coercion is introduced as it relates to built-in operators.
    • Variables, Scope, and Memory—Explores how variables are handled in JavaScript given their loosely typed nature. A discussion about the differences between primitive and reference values is included, as is information about execution context as it relates to variables. Also, a discussion about garbage collection in JavaScript explains how memory is reclaimed when variables go out of scope.
    • Reference Types—Covers all of the details regarding JavaScript's built-in reference types, such as Object and Array. Each reference type described in ECMA-262 is discussed both in theory and how they relate to browser implementations.
    • Object-Oriented Programming—Explains how to use object-oriented programming in JavaScript. Since JavaScript has no concept of classes, several popular techniques are explored for object creation and inheritance. Also covered is the concept of function prototypes and how that relates to an overall OO approach.
    • Anonymous Functions—Explores one of the most powerful aspects of JavaScript: anonymous functions. Topics include closures, how the this object works, the module pattern, and creating private object members.
    • The Browser Object Model—Introduces the Browser Object Model (BOM), which is responsible for objects allowing interaction with the browser itself. Each of the BOM objects is covered, including window, document, location, navigator, and screen.
    • Client Detection—Explains various approaches to detecting the client machine and its capabilities. Different techniques include capability detection and user-agent string detection. Each approach is discussed for pros and cons as well as situational appropriateness.
    • The Document Object Model—Introduces the Document Object Model (DOM) objects available in JavaScript as defined in DOM Level 1. A brief introduction to XML and its relationship to the DOM gives way to an in-depth exploration of the entire DOM and how it allows developers to manipulate a page.
    • DOM Levels 2 and 3 Explains how DOM Levels 2 and 3 augmented the DOM with additional properties, methods, and objects. Compatibility issues between Internet Explorer and other browsers are discussed.
    • Events—Explains the nature of events in JavaScript, where they originated, legacy support, and how the DOM redefined how events should work. A variety of devices are covered, including the Wii and iPhone.
    • Scripting Forms—Looks at using JavaScript to enhance form interactions and work around browser limitations. Discussion focuses on individual form elements such as text boxes and select boxes and on data validation and manipulation.
    • Error Handling and Debugging—Discusses how browsers handle errors in JavaScript code and presents several ways to handle errors. Debugging tools and techniques are also discussed for each browser, including recommendations for simplifying the debugging process.
    • XML in JavaScript—Presents the features of JavaScript used to read and manipulate eXtensible Markup Language (XML) data. Explains the differences in support and objects in various web browsers, and offers suggestions for easier cross-browser coding. This also covers the use of eXtensible Stylesheet Language Transformations (XSLT) to transform XML data on the client.
    • ECMAScript for XML—Discusses the ECMAScript for XML (E4X) extension to JavaScript, which is designed to simplify working with XML. Explains the advantages of E4X over using the DOM for XML manipulation.
    • Ajax and JSON—Looks at common Ajax techniques, including the use of the XMLHttpRequest object and Internet Explorer's XDomainRequest object for cross-domain Ajax. Explains the differences in browser implementations and support as well as recommendations for usage.
    • Advanced Techniques—Dives into some of the more complex JavaScript patterns, including function currying, partial function application, and dynamic functions. Also covers creating a custom event framework to enable simple event support for custom objects.
    • Client-Side Storage—Discusses the various techniques for storing data on the client machine. Begins with a discussion of the most commonly supported feature, cookies, and then discusses newer functionality such as DOM storage.
    • Best Practices—Explores approaches to working with JavaScript in an enterprise environment. Techniques for better maintainability are discussed, including coding techniques, formatting, and general programming practices. Execution performance is discussed and several techniques for speed optimization are introduced. Last, deployment issues are discussed, including how to create a build process.
    • Upcoming APIs—Introduces APIs being created to augment JavaScript in the browser. Even though these APIs aren't yet complete or fully implemented, they are on the horizon and browsers have already begun partially implementing their features. Includes the Selectors API and HTML 5.
    • The Evolution of JavaScript—Looks into the future of JavaScript to see where the language is headed. ECMAScript 3.1, ECMAScript 4, and ECMAScript Harmony are discussed.

by Nicholas C. Zakas, Jeremy McPeak, and Joe Fawcett

Professional Ajax, 2nd Edition (Programmer to Programmer) Buy from Amazon
List Price: $39.99
Price: $26.50
You Save: $13.49 (34%)
  • Professional Ajax 2nd Edition provides a developer-level tutorial of Ajax techniques, patterns, and use cases. The book begins by exploring the roots of Ajax, covering how the evolution of the web and new technologies directly led to the development of Ajax techniques. A detailed discussion of how frames, JavaScript, cookies, XML, and XMLHttp requests (XHR) related to Ajax is included. After this introduction, the book moves on to cover the implementation of specific Ajax techniques. Request brokers such as hidden frames, dynamic iframes, and XHR are compared and contrasted, explaining when one method should be used over another. To make this discussion clearer, a brief overview of HTTP requests and responses is included.

    Once a basic understanding of the various request types is discussed, the book moves on to provide in-depth examples of how and when to use Ajax in a web site or web application. Different data transmission formats, including plain text, HTML, XML, and JSON are discussed for their advantages and disadvantages. Also included is a discussion on web services and how they may be used to perform Ajax techniques. Next, more complex topics are covered. A chapter introducing a request management framework explores how to manage all of the requests inside of an Ajax application. Ajax debugging techniques are also discussed.

    The last part of the book walks through the creation of two full-fledged Ajax web applications. The first, FooReader.NET, is an Ajax-powered RSS reader. The second, called AjaxMail, is an Ajax-enabled email system. Both of these applications incorporate many of the techniques discussed throughout the book.

    Professional Ajax 2nd edition is written for Web application developers looking to enhance the usability of their web sites and web applications and intermediate JavaScript developers looking to further understand the language. Readers should have familiarity with XML, XSLT, Web Services, PHP or C#, HTML, CSS. This book is not aimed at beginners without a basic understanding of the aforementioned technologies. Also, a good understanding of JavaScript is vitally important to understanding this book. Those readers without such knowledge should instead refer to books such as Beginning JavaScript, Second Edition (Wrox, 2004, ISBN: 978-0-7645-5587-9) and Professional JavaScript for Web Developers (Wrox, 2005, ISBN: 978-0-7645-7908-0).

    Professional Ajax 2nd edition adds nearly 200 pages of new and expanded coverage compared to the first edition. Some of the new topics covered here include:

    • Ajax Libraries including the Yahoo! Connection Manager, Prototype, and jQuery
    • Request Management with Priority Queues and the RequestManager Object
    • Comet push-based web systems and HTTP streaming
    • Maps and Mashups with Geocoding, Google Maps API and Yahoo! Maps API
    • Ajax Debugging with FireBug and Microsoft Fiddler

      ASP.NET AJAX Extensions (formerly code-named "Atlas")

    And of course the Second Edition retains and updates the core first edition content including:

    • the range of request brokers (including the hidden frame technique, iframes, and XMLHttp) and explains when one should be used over another
    • different Ajax techniques and patterns for executing client-server communication
    • Ajax patterns including predictive fetch, page preloading, submission throttling, incremental field and form validation, periodic refresh, multi-stage download and more
    • Syndication with RSS, Atom, and XParser
    • JSON and creating an autosuggest textbox example
    • web site widgets for a news ticker, weather information, web search, and site search
    • Ajax Frameworks JSpan, DWR, and Ajax.NET Professional
    • A Web-based RSS/Atom aggregator case study
    • An AjaxMail case study

    This book is also available as part of the 4-book JavaScript and Ajax Wrox Box (ISBN: 0470227818). This 4-book set includes:

    • Professional JavaScript for Web Developers (ISBN: 0764579088)
    • Professional Ajax 2nd edition (ISBN: 0470109491)
    • Professional Web 2.0 Programming (ISBN: 0470087889)
    • Professional Rich Internet Applications: Ajax and Beyond (ISBN: 0470082801)





Featured Sessions


 

Featured Speakers


 

Blogs



 

Location

Fairmont San Jose
170 S Market St
San Jose, CA   95113
View Map
Fairmont San Jose
 

Stay Informed

Not ready to register yet? Enter your email here to receive update notifications about this event.

Name:
Email: