JavaScript Weekly
Issue #42 - September 2, 2011

Welcome to issue 42 (the ultimate answer to the ultimate question of life, the universe and everything) of JavaScript Weekly. Let's get straight on to the links this week:

Headlines

jQuery 1.6.3 Released
The third minor release of jQuery 1.6 has been released. It includes many fixes (including one for an XSS attack vector), handles HTML5 data attribute names better, and is generally a stability and bug-fix release.

Firefox 9's JavaScript Performance Will Be Improved by 20-30%
Sebastian Anthony of ExtremeTech looks at the latest nightly builds of Firefox 9 and notes that Firefox's JaegerMonkey's JIT compiler's type inference system lands significant performance gains for JavaScript.

JavaScript Web Applications by Alex MacCaw
Alex MacCaw, creator of the Spine framework, has written a book for O'Reilly called "JavaScript Web Applications." I haven't reviewed it yet but it claims to take proficient JS developers "through all the steps necessary to create state-of-the-art applications, including structure, templating, frameworks, communicating with the server, and many other issues."

The Sencha Share App Contest
Sencha, the JS and HTML5 framework folks, are running a contest to build a multi-user collaborative app using Sencha's toolkits. You get until late September to build your entry and prizes include a 2011 Nissan Leaf, a big pile o'money, and Apple goods.

Fix for Node.js's url.parse() Rejected; Causes Drama
Jordan Sissel noted that Node's URL library includes a trailing colon on the protocol of parsed URLs. He made a pull request to fix it but was shot down. A little drama then ensued on the GitHub pull request page.

Articles

Patterns For Large-Scale JavaScript Application Architecture
An epic article by Addy Osmani that discusses a set of effective patterns relevant to the application architecture of large JavaScript applications. There's an absolute ton to go through here and it's sure to become a 'go to' work in the field of JS app architecture.

Installing and Running node.js Apps within IIS on Windows - Are You Mad?
Scott Hanselman talks about the recent advances in using node.js on Windows, especially under Microsoft's IIS server, from the perspective of an existing .NET developer. Lots of useful info here, especially if you're on a Microsoft stack.

How to Set Up A Cheap Exception Notifier for JavaScript
Christopher Blum demonstrates a few ways to set up an exception notifier so you can track JavaScript errors occurring on your Web sites from afar: using Google Analytics, pushing to your Apache log, or using Airbrake.

Superpacking JS Demos (here be seriously clever tricks..)
Cody Brocious gets obsessive about byte counts in this article about packing down your JavaScript to be as tight as possible, ideal if you're entering a 1K demo competition as he did. These techniques are both devious and incredibly clever.

Filtering a Collection in Backbone.js

Organizing Events with jQuery
Cedric Dugas shares a couple of simple code patterns and tips regarding handling events using jQuery, outside of the context of other frameworks.

Top 8 JavaScript Projects You May Not Know
Developer.com looks at some interesting JavaScript projects, including game builders, PDF readers, a Terminal replacement, and a .NET JavaScript implementation. None of these is particularly obscure but you might enjoy the roundup.

Understanding bind and bindAll in Backbone.js

How to Open Dragged and Dropped Files Using JavaScript
Craig Buckler demonstrates how to open local files that have been dragged into the browser using JavaScript. (If you want to know more about dragging and dropping in the browser in general, there's a link to a prior article in there too.)

Code and Libraries

Keymaster: Micro-library for Defining and Dispatching Keyboard Shortcuts
Keymaster is a library by Thomas Fuchs (of Scriptaculous fame) that's ~60 lines of code but provides a mechanism for defining and dispatching keyboard shortcuts in JavaScript. Two global methods are exposed: 'key' for defining shortcuts and 'keyScope' for switching scope.

cryptico.js: RSA- and AES- Powered Encryption System in Pure JavaScript

threads: Multi-thread Manager for Node.js
threads is a simple module for enabling and managing a scalable but high-performance multi-threaded environment in Node.js. It can give you a hybrid environment where the many benefits of synchronous coding can be reaped without the risk of blocking the main server thread.

Ghostbuster: Easier Headless Testing with PhantomJS (and CoffeeScript)
Wynn Netherland of The Changelog shows off Ghostbuster, a new tool by Joshua Hull that uses PhantomJS and CoffeeScript to do headless testing of Web applications.

nwm: A Window Manager Written in Node
nwm is an entire window manager for X written during this week's Node Knockout competition. It's not just JavaScript code, though, as the underlying X11 bindings are written as a Node native extension in C.

Sideline: A CoffeeScript Shell for Your Server

Red Locomotive - Give your games some tractive effort!
Red Locomotive is a JavaScript game engine for complex 2d and/or isometric games. It give developers the tractive effort they need by abstracting complex systems like game loops, pixel/cursor based events, frame rate management, sprite rendering, animation, and much more.

A WebView-JavaScript Bridge for iOS Developers

Last but not least..

The Node Knockout Leaderboard
The famed 48 hour Node.js contest Node Knockout took place last week and the entries are currently being judged. Want to see some hot, fresh Node.js projects? This is a great place to start.