Prototype Update, Kaffeine, js-signals, Zepto, rain.js

2010-12-03 00:00:00 +0000 by Alex R. Young

Prototype 1.7

Prototype 1.7 is out, and activity on has begun already. This is the version of
Prototype that adds Sizzle, \$().on,
Element.Layout, and ES5 compliance.


Kaffeine (License) by Jonah Fox progressively enhances JavaScript while remaining backwards
compatible. The documentation has
examples of the bang syntax, @ alias for this,
implicit brackets and more.

That means code that looks like this:

Edge::add = (nick, name, complete, opts) {
  opts ||= {}
  @client.select 15
  user = User.find! {id: nick}
  puzzle = Puzzle.find! {name: name}
  err, data = client.set! "u:#{user}:p:#{puzzle}"

Will turn into this:

Edge.prototype.add = function(nick, name, complete, opts) {
  opts = opts || {}
  User.find({id: nick}, function(user) {
    Puzzle.find({name: name}, function(puzzle) {
      client.set(("u:" + (user) + ":p:" + (puzzle)), function(err, data) {
        return complete()

The author has outlined his philosophy for the project:

In case you're wondering, the parser tokenizes

and eval's the result.


js-signals (MIT License) by Miller Medeiros is an event/messaging system for JavaScript:

A Signal is similar to an Event Emitter/Dispatcher or a Pub/Sub system, the main difference is that each event type has it's own controller and doesn't rely on strings to broadcast/subscribe to events. To know more about the differences and advantages/disadvantages of each approach check the Wiki page.

One of the claimed advantages of this project is to favor composition
over inheritance
. This idea appeals to me and the

make it seem simple enough to get started with fairly quickly (should
you need a pub/sub-like messaging system for your next project).

Zepto 0.2

Zepto 0.2
by Thomas Fuchs is out. This version adds support for
Backbone.js which seems like a good fit for the WebKit iOS-app style projects people are
building with it.


Rain.js (MIT License) by Julio Cesar Ody generates a great rain effect,
there's a demo here. As you might have
noticed I'm a sucker for pretty graphical tricks. If you've got any
scene-style JavaScript hacks please send them in!