This week's JavaScript news

Read this issue on the Web

JavaScript Weekly

Issue #128 - May 3, 2013

Just a quick note to let you know we'll soon be rolling out a new, separate sister publication aimed at JavaScript beginners, covering entry-level JavaScript tutorials, articles, and tips. No sign up yet but for now we'll continue to include a mix of content here each week, so be aware there's a wide range of skill levels represented in our picks. Thanks for reading :-)


Epic Games' Unreal Engine 3 'Citadel' Demo
From cooperation between Epic Games and Mozilla comes an impressive Web-based demo of the Unreal Engine 3 3D gaming engine running direct in the browser using JavaScript and HTML5 technologies. A very up to date version of Firefox is recommended to try this (i.e. Aurora or Nightly). Brendan Eich has written about the background to this previously.

Author In ES6, Transpile To ES5 As A Build-step: Workflow For Grunt
Addy Osmani looks at two ways in which you can write ECMAScript 6 code right now and have it compiled back to universally runnable ECMAScript 5-compliant code using Grunt and a couple of handy libraries.

Intern: A Next-Generation JavaScript Testing Stack
Feature highlights: runs tests in the browser and on Node.js; integrates with SauceLabs and Selenium; lets you use any assertion library (it comes with Chai); reports code coverage via Istanbul; supports Travis CI.

From our Sponsor

Rich data for JavaScript Apps is a Breeze
When a desktop application moves to HTML/JavaScript, the need for rich data moves with it. Consider BreezeJS for querying, caching, offline, change tracking, object graph navigation, and bulk saves. Make it part of your JavaScript client app stack.


CDNs Fail, But Your Scripts Don't Have to
Scott Hanselman explains how to fall back from a file hosted by a content delivery network (CDN) to file on your server.

The Hikikomori's Guide to JavaScript
How to write an application by starting with key components (primitives), composing them via combinators and finally adding a user interface.

The MEAN Stack: MongoDB, ExpressJS, AngularJS and Node.js
Describes the advantages of this stack and mentions best practices.

Tern: Code Analysis Engine for JavaScript
Marijn Haverbeke describes how his crowd-financed project Tern works.

Is This Thing On? (Part 1)
First in a three part series that explores some of the tools available to detect and manage online/offline connectivity in web and mobile applications.

JavaScript Array Loops
This article explains that in some (relatively rare) cases, a for-in loop is the best way of iterating over an array. Not all arguments are equally compelling, but the article brings up points you may not have considered before.

Promise-Based Validation
Promises are a pattern for asynchronous programming that has become quite popular in the JavaScript world. This article applies promises to an old problem: validating form input.

Even Better In-Browser Mockups with Node.js
If you design your application in the browser then Node.js makes it easy to include the server in that process, resulting in a more complete mockup. This article introduces the idea, a follow-up article walks through an example.

Taking Control with Machina.js (Slides)
A slide deck from Doug Neiner that looks into implementing state machines in JavaScript via the machina.js library.

The Box2d Benchmark Revisited
A comparison of a Box2d-based benchmark run on popular JavaScript engines from 18 months ago and now. Big performance gains are seen, especially with the introduction of asm.js in Firefox Nightly.

Task Automation with Automaton and Node
Brian Rinaldi walks through how to automate common file system, templating and command-line tasks for developers using Automaton and Node.

Writing Custom Yeoman App Generators
Get started with the Yeoman generator system. A generator creates an initial version of an application, a task that ranges from simple (copying a boilerplate project to your application directory) to complex (flexible customization, dependency management, etc.).

How Selections Work in D3.js
Explains how a core feature of the D3.js data visualization framework is implemented: selections.

Using D3.js and Meteor to Generate Scalable Vector Graphics (SVG)

Using “this” Responsibly


Clojure/ClojureScript: One Language to Rule The Web
Clojure is a modern dynamic language for the JVM, and ClojureScript is the same language compiled into JavaScript. This presentation describes the languages and how ClojureScript is compiled to JavaScript.

5 Talks to Learn More About Node.js

Code, Libraries and Tools

underscore-contrib: Extension Libraries and Proving Ground for Underscore.js
A collection of libraries for Underscore.js that were created with two goals in mind: First, to provide functionality that is not needed widely enough to be included in Underscore.js proper. Second, to try out functionality that might eventually be included with Underscore.js.

Starling.js: JavaScript Game Engine
Starling is a popular ActionScript game engine that was created almost two years ago. Starling.js is a port of Starling to HTML5. It is based on Canvas, with long-term plans to migrate to WebGL. Starling.js has been written in TypeScript, meaning that you can develop for it in either TypeScript or plain JavaScript.

ExplainJS: Instant Side-by-Side View of Comments and Code
Generates code documentation that consists of two columns: the right column contains the source code, the left column contains the comments.

Announcing SunSpider 1.0
In 2007, the WebKit project released the SunSpider JavaScript benchmark suite. It has now reached version 1.0.

observe-shim: A Shim for Object.observe (ECMAScript 7 or Later)
Object.observe() is a function that has been proposed for a future ECMAScript version. It observes changes to objects and helps with data binding in user interface frameworks. This project shims Object.observe() on current browsers.

Muzzley: A Platform for Turning Smartphones Into Controllers
A platform that turns a user's smartphone into a gamepad, drawing pad, keyboard, swipe navigator, or switch which you can then process using JavaScript (Node or browser).

FPSMeter: Simple Fast and Themable JavaScript FPS Meter

angular-carousel: Mobile-Friendly AngularJS Carousel

vr.js: NPAPI Plugin to Expose Fun Virtual Reality Devices to JavaScript

defs.js: Compile ECMAScript 6 “let” and “const” to ECMAScript 3 Code

node-archiver: Create Archives (Zip, Tar) Via Node Streams

Backbone.js and Express.js Single Page Application Boilerplate

Caterpillar: Logging System for Node.js

Sublime Text Plugin: Refactoring Javascript Code


Software Engineer - Product at Coursera
Coursera is looking for JavaScript/HTML5 experts to build high quality web applications that bring online courses to our students. As part of our small and agile team of software engineers, you will be responsible for architecting and implementing the front-end designs, and working with other members on the team to integrate the the application into our platform.

Software Engineer at Turn (Silicon Valley)
Angular, Node, Bootstrap. Big data, machine learning, distributed systems. If these are technologies you're interested in and you're good with JavaScript, we'd love to talk to you about joining our front-end applications team at Turn.

DevOps Hipster aka Infrastructure Engineer at Jimdo (Hamburg, Germany)
You understand the hidden potential that lies between development and ops. You adore automation. In the end, you always drop the adequate DevOps Borat punchline. You take an interest in and contribute to, the world of open source - show us what you got!

Software Developers (JavaScript or Java) – R&D Positions in Vienna, Austria

Last but not least..

Announcing TypeScript 0.9 Early Previews
Microsoft has published a preview of the next version of TypeScript (a superset of JavaScript). Highlights: generics and a rewritten compiler that better scales to large projects.

Editor: Dr. Axel Rauschmayer | Publisher in Chief: Peter Cooper

Want to see more? Check out the archive of all our old issues!

Reading this as a non-subscriber? Click here to subscribe.
Want to advertise? See our media kit for details.
Want to post a job? Use our self serve system or reply to this e-mail.
To otherwise contact the editor, just reply to this e-mail :-)

© 2012 Cooper Press Ltd. – Office 30, Lincoln Way, Fairfield Enterprise Centre, Louth, Lincs, UK
Unsubscribe or Update / Change Your E-mail Address