Contracts let you clearly express how your code behaves, and free you from writing tons of boilerplate, defensive code.
// id is a function that should always be called with a number and return a number id :: (Num) -> Num id = (x) -> x
When I first looked at this I thought I was looking at Haskell, and the
author points out the similarity:
The Contracts.coffee site
includes lots of details on how to get started using the dialect. I
don't usually write CoffeeScript, but this twist on the language is
definitely extremely interesting.
TJ talks about game prototyping with CSS3, HTML5, and
move.js (GitHub: visionmedia / move.js, License: MIT). TJ discusses how he started writing a game for iOS, moved to Canvas, and
then discovered the performance gains of CSS3 and HTML.
He's posted a
game-prototype to GitHub, and I hope to see more (particularly as he mentions Grim
Fandango in his blog post).
Jacob Mumm emailed us about his experiences using
persistence.js, an asynchronous ORM mapper by Zef Hemel. In particular, persistence.js
persistence.sync.js, a remote server
persystence.sync.js is a persistence.js plug-in that adds data synchronization with remote servers. It comes with a client-side component (persistence.sync.js) and a sample server-side component (persistence.sync.server.js) for use with node.js. It should be fairly easy to implement server-components using other languages, any contributions there are welcome.
I'd like to write more on mobile sync in the future, as I've done a lot
of work on native app syncing (mostly Objective-C), and I've also
recently been working with single page client-side apps that sync
against remote APIs. If you're interested in this area, give
persistence.sync.js a look.