Extend the Web Forward

If we want to move the web forward, we must increase our ability as web developers to extend it with new features. For years, we've grabbed the browsers extension points with two hands, not waiting for the browser vendors to gift us with new features. We built selector engines, a…

I'm Running to Reform the W3C's TAG

Elections for the W3C's Technical Architecture Group are underway, and I'm running! There are nine candidates for four open seats. Among the nine candidates, Alex Russell, Anne van Kesteren, Peter Linss, and Marcos C├íceres are running on a reform platform. What is the TAG, and what do I mean by…

Follow Me to Google+

I wrote my first post on this blog in January 2007. In 2007, this blog was the easiest way I had to write my thoughts down for people who cared to read them. I wrote long posts and short post (but mostly long posts). I wrote deeply technical posts. I…

August Tokaido Update

It's been a while since I posted anything on my blog, and I figured I'd catch everyone up on the work I've been doing on Tokaido. Components Tokaido itself is made up of a number of components, which I am working on in parallel: Ruby binary build, statically compiled A…

Tokaido Status Update: Implementation Details

Hey guys! Since my last update, Tokaido was fully funded, and I've been hard at work planning, researching and working on Tokaido. So far, we have a working binary build of Ruby, but no setup chrome. Because the binary build already exists, Terence Lee was able to experiment with it…

Tokaido: My Hopes and Dreams

A few weeks ago, I started a kickstarter project to fund work on a project to make a long-term, sustainable binary build of Ruby. The outpouring of support was great, and I have far exceeded my original funding goal. First, I'd like to thank everyone in the community who contributed…

JavaScript Needs Blocks

While reading Hacker News posts about JavaScript, I often come across the misconception that Ruby's blocks are essentially equivalent to JavaScript's "first class functions". Because the ability to pass functions around, especially when you can create them anonymously, is extremely powerful, the fact that both JavaScript and Ruby…

Amber.js (formerly SproutCore 2.0) is now Ember.js

After we announced Amber.js last week, a number of people brought Amber Smalltalk, a Smalltalk implementation written in JavaScript, to our attention. After some communication with the folks behind Amber Smalltalk, we started a discussion on Hacker News about what we should do. Most people told us to stick…

Announcing Amber.js

A little over a year ago, I got my first serious glimpse at SproutCore, the JavaScript framework Apple used to build MobileMe (now iCloud). At the time, I had worked extensively with jQuery and Rails on client-side projects, and I had never found the arguments for the "solutions for…

How to Marshal Procs Using Rubinius

The primary reason I enjoy working with Rubinius is that it exposes, to Ruby, much of the internal machinery that controls the runtime semantics of the language. Further, it exposes that machinery primarily in order to enable user-facing semantics that are typically implemented in the host language (C for MRI,…