November 2009
1 post
Snarl - A JavaScript Bridge for JRuby
If you would like to use JavaScript directly from Ruby, check out Snarl. I just pushed its first public release to Gemcutter. Snarl is JRuby-only, as it uses Mozilla’s Rhino JavaScript engine to do its work.
First, make sure you’re using Gemcutter:
gem install gemcutter gem tumble
Then, install and use:
gem install snarl irb > context = Snarl::JavascriptContext.new >...
June 2009
1 post
Golden Gate Ruby Conference: CloudKit Video and...
In April of this year, I had the pleasure of presenting CloudKit at the first Golden Gate Ruby Conference here in San Francisco. The videos are now online thanks to Pivotal Labs. If you’re interested in CloudKit, REST, Discovery, or the Open Stack, please take a moment to check it out.
Slides are also available on SlideShare and a brief article on Composable REST Services is available in...
May 2009
1 post
CloudKit 0.11.2 Released
A patch release for CloudKit, version 0.11.2, has been released. This is a recommended upgrade for those using the 0.11.x series of gems.
From the release notes:
Added Location header for 201s
Fixed JSON response for DELETE operations
Updated MD5 dependency for Ruby 1.9 (Andreas Haller)
Updated spec setup for RSpec 1.2 (Andreas Haller)
Updated gem dependencies for Rack, OpenID, and JSON
...
April 2009
1 post
JSONQuery, New API in CloudKit jQuery Plugin
Upcoming JSONQuery support was recently announced for CloudKit and there is now good news to share about the progress.
A No-Dependency JSONQuery Library for JavaScript
Thanks to Kris Zyp and Jason Smith, a no-dependency JavaScript library for JSONQuery is available on GitHub. I am maintaining my own fork of this library with bug fixes and a large set of tests. If you’ve been curious about...
March 2009
4 posts
CloudKit 0.11.1 Released
CloudKit 0.11.1 has just been released. This is a maintenance update for the 0.11.x series of gems. It is a recommended upgrade, containing the following changes (pulled straight from the change log):
Added a block option for configuring OpenID bypassed routes (Devlin Daley)
Added write locks for Tokyo Tyrant Tables
Added Tokyo Tyrant Table example
Fixed POST method tunneling bug (Saimon...
Video for Rack Middleware Presentation Available
The Confreaks crew is lightning fast. The video from my Rack Middleware presentation at MountainWest is now available, just days after the event.
Rack Middleware Slides from MountainWest RubyConf...
MountainWest RubyConf was an incredibly good experience this year. There was a high signal-to-noise ratio with great speakers stacked up on both days. I consider myself the least of these speakers, but nevertheless have posted my slides for anyone who may be interested.
In a World of Middleware, Who Needs Monolithic Applications?
Some of the slides won’t convey all of the intended...
JSON Meets Tokyo Cabinet (and More!): CloudKit...
CloudKit 0.11.0 is out with exciting new features!
Tokyo Cabinet
CloudKit now supports Tokyo Cabinet as its storage system. If you haven’t checked out Tokyo Cabinet, take a moment to read Ilya Grigorik’s overview or check out its main site. You will find it to be an extremely fast and compelling storage system.
While Tokyo Cabinet is impressive, it comes with the cost of a binary...
January 2009
4 posts
CloudKit 0.10.1 Released
A new 0.10.1 CloudKit gem has been released. This is the first release with patches from the growing community on GitHub. As always, a big thank you to everyone who sent feedback or code.
To install: gem install cloudkit
To update: gem update cloudkit
From the change log:
Updated oauth and sequel gem dependencies
Fixed 410 responses for stale PUT operations
Fixed MySQL content...
A World of Middleware
What if every endpoint (or “origin” in HTTP-speak) was a 404 and everything else was middleware? In Rack-land, this can be a reality. CloudKit, for example, detects if it is the last thing in the stack, inserting a default developer page at the root and a 404 everywhere else. If it is not the last item in the stack, requests for resources that it has not claimed are passed downstream.
...
CloudKit 0.10.0 Released: Rack 0.9, Batch URI...
A new 0.10.0 CloudKit gem is out.
To install:
gem install cloudkit
To update:
gem update cloudkit
This was originally going to be 0.9.2 with support for this week’s Rack 0.9 release. However, the new batch URI resolution in the REST API was too valuable to hold back for the 1.0 release so it was pulled in and the minor version number was incremented to reflect its presence. This...
OAuth, Phishing, and Twitter
In the midst of what might seem like a crisis when viewed from within the web’s echo chamber, it can be difficult to sort fact from fiction, threat from hysteria. Such was the case last weekend when three terms that typically evoke passionate responses were combined in a single meme — OAuth, Phishing, and Twitter.
The source of concern was a scam spreading on Twitter via fake direct...
December 2008
2 posts
CloudKit 0.9.1 Released
A new CloudKit 0.9.1 gem has been released. Thank you to everyone who sent feedback via the mailing list, GitHub, Twitter, and personal email.
To install:
gem install cloudkit
To update:
gem update cloudkit
From the change log:
Fixed Rack::Lint/rackup errors related to Content-Type headers
Patched Rack to support StringIO#string in Rack::Lint::InputWrapper
Fixed server_url encoding in...
Release: CloudKit 0.9 - An Open Web JSON Appliance
How many lines of code does it take to deploy a fully discoverable, RESTful, GET-optimized, auto-versioned, JSON API?
Two. First, install the gem:
CloudKit is Rack middleware, so let’s create a rackup file called config.ru like this:
Fire it up with Thin, for example:
You now have a running JSON container managing collections of “notes” and “projects.”...
November 2008
1 post
Rack::Config 0.9 Released
Smaller than its own README, Rack::Config is a straightforward method of configuring a stack of Rack middleware that needs to share information.
To install:
Example config.ru:
October 2008
2 posts
JSCocoa bridges Cocoa to JavascriptCore (WebKit’s JS engine). It allows...
– JSCocoa — A bridge from JavascriptCore to Cocoa
However, the NDA has created too much of a burden on developers, authors and...
– iPhone Developer Program
September 2008
3 posts
SquirrelFish Extreme runs JavaScript quite a bit faster than the original...
– [webkit-dev] SquirrelFish Extreme?
http://joncrosby.me/ →
The new root of my digital identity.
August 2008
9 posts
We chose the term “market” rather than “store” because...
– Android Developers Blog: Android Market: a user-driven content distribution system
Vim + Scala →
Gears for Safari beta - Gears Users | Google... →
By creating games and other programs for the iPhone, software developers hoped...
– IPhone software developers stifled under Apple’s gag order - Los Angeles Times
I suspect that, in time, MobileMe will go the same way as the Newton
– MildMannered Industries » Blog Archive » MobileMe
http://liftweb.net/index.php/HowTo_do_Web_Services →
Steve Jenson’s tutorial on building web services with Lift.
Songbird Blog » Songbird Beta is Released! →
With experiments on PlanetLab, a local cluster, and live downloads, we show that...
– BitTorrent is an Auction: Analyzing and Improving BitTorrent’s Incentives