The If Works This dirt was a building before

Ojay

Evented programming patterns: Deferrable values

This post is part of a series on event-driven programming. The complete series is: Events: they’re not just for the DOM, you know Observable objects Deferrable values Asynchronous methods First-leg round-up and final remarks Object lifecycle Asynchronous pipelines Testing event-driven apps The Deferrable pattern is a specialisation of observable objects that mixes state into the [...]

Evented programming patterns: Observable objects

This post is part of a series on event-driven programming. The complete series is: Events: they’re not just for the DOM, you know Observable objects Deferrable values Asynchronous methods First-leg round-up and final remarks Object lifecycle Asynchronous pipelines Testing event-driven apps As I mentioned in the previous article, events are not things that only live [...]

Events: they’re not just for the DOM, you know

This post is part of a series on event-driven programming. The complete series is: Events: they’re not just for the DOM, you know Observable objects Deferrable values Asynchronous methods First-leg round-up and final remarks Object lifecycle Asynchronous pipelines Testing event-driven apps Over recent months we’ve seen the major JavaScript libraries talking up their event support. [...]

Helium: a package server for JavaScript

Last week, my former employer theOTHERmedia open-sourced the last project I worked on there: Helium. It’s a web application that lets you deploy JavaScript packages from Git and load them on-demand into any website by including a single script tag. There’s been a lot of innovation in JavaScript deployment recently, and Helium fits a particular [...]

Ojay 0.4.0: a new Tabs package, custom DOM events and other goodness

We (which is to say, theOTHERmedia) just pushed out version 0.4.0 of Ojay, our JavaScript library that builds on top of the Yahoo! User Interface library. Also I just realised that I never properly announced the 0.3 release (which came out in December) here, so I should probably catch you up in case it looked [...]

New possibilities with modules in JS.Class 2.0

It’s been out and about a couple months now, and I’ve been putting it to good use in the upcoming release of Ojay. The new version (fingers crossed it’ll be out by the end of the month) features an extension to the custom event system that lets events published using Observable ‘bubble’ up the type [...]

Bug fix updates for Bluff and JS.Class

First off, let me say that the response to the release of Bluff over the last couple of weeks has been astonishing, due in no small part to a helpful link from John Gruber. Thanks to everyone who’s reported bugs and suggested features; some of these have now been fixed but others will need to [...]

Where did all my code go? Using Ojay chains to express yourself clearly

I’ve been putting together a presentation to be given internally at work on what Ojay is and why we’re doing it. It occurred to me that I’ve not spoken very much about it here, hoping the documentation and examples would speak for themselves. So, today I’m going to go through how to take an animation [...]

Brain teaser

In response to Dustin Diaz (you’ll need a JavaScript 1.8 capable browser, or Ojay): var arr = ['a', 'b', 'c', 'c', 'd','e', 'e', 'e', 'e', 'e', 'f', 'e', 'f', 'e', 'f', 'a', 'a', 'a', 'f', 'f', 'f']; arr.reduce(function(memo, letter) { var last = memo[memo.length - 1]; if (!last || last[0] != letter) memo.push([letter]); else last.push(letter); [...]

Ojay 0.2.0: easy keyboarding, a validation DSL, and two new UI widgets

It’s been about four months since our last release (and I really did want this to happen about a month ago, but I’ve only so much time), and now we have a new version of Ojay for you to download and play around with. It’s a drop-in replacement for 0.1.x so you really have no [...]

← Before