During my December break I created Build.js, a lean build system for JavaScript projects. We use it at Bookish to accelerate the development cycle of our Ember.js / JavaScript projects. Build.js runs on Node.js, the Google V8-based environment that pushes an event-driven, non-blocking I/O model. As part of the compilation pipeline, Build.js asynchronously reads JavaScript source files, concatenates them (maintaining order), and then runs the Google Closure Compiler to produce a single, optimized application JavaScript...
Yehuda visited the SproutCore NYC meet up late September. As part of the talk, Yehuda not only motivated high-level features of SproutCore, but also dived into some cool code, showing for example how SproutCore updates the DOM when bindings propagate changes across an object/property graph. Another brilliant demo was showing the exciting possibilities when running a SproutCore server app on Node, communicating via web sockets to a SproutCore client app in the browser.Running SproutCore on Node and Client (communicating...
If you develop HTML5 sites using SproutCore (in my view the most productive collection of JS + HTML frameworks; Apple has used it to build iCloud), chances are that you structure your application using state charts. You probably also use SC.routes to transition to states that correspond to the URL in the browser address bar. Routing complexity can start brewing, however, when you have concurrent states and want to handle not only orderly paths from the rootState, but also arbitrary entry points into a state...
I am working on a project where I wanted to search TEDTalk videos and surface the results in my app’s UI. Although an API was announced in March 2011 it has not been published yet so I was stuck trying...
Last week I was struggling with getting crisp text rendered to an HTML 5 canvas. For a while I thought that the two phones I tested on, my iPhone 4 and some Android phone, were just not performing subpixel...
Chris Jolley, the creator of SproutCore and founder of Strobe, will kick off the SproutCore NYC meet up group on Feb 23 at the Obikosh offices. http://www.meetup.com/Sproutcore-NYC/SproutCore is an HTML5 application framework for building responsive, desktop-caliber apps that run in modern web browsers. It takes a lot of inspiration from Cocoa, including features such as KVO/KVC, bindings, and MVC, and can connect to any server back end.http://www.sproutcore.com/Apple uses SproutCore to build MobileMe and iWork.com...
Last night I went to a buddy's Super Bowl party and they had N'Harmonics spreading pre-Glee glee. I grabbed some footage: Hide your Wife, Hide your Kids (download...
Last week I wrote about the work I did to implement lazy vectors for Cacao, using Objective-C.Since then I worked on changing the map higher order function in Cacao to yield its results lazily, if the...
Inspired by laziness in Haskell and Clojure, I modified the Vector data structure in Cacao to make possible materialization of vector elements just as they are needed. This means that computation of...