Saturday, June 12, 2010

Google App Engine 0.0.14 gems released

We recently released the 0.0.14 google-appengine gem. This release will let developers set specific versions of jruby-jars or jruby-rack by simply updating the Gemfile. We also include the necessary API jars inside appengine-apis, so now bundler does all the work. Folks looking to experiment with Rails 3, can use the App Engine Java SDK along with warbler, or just create a custom build script.
  • App Engine Tools updated to version 0.0.14
  • App Engine Rack updated to version 0.0.10
  • App Engine APIs updated to version 0.0.17
  • JRuby 1.5.1 and JRuby-OpesSSL 0.7 support
DataMapper 1.0 - David Masover released the dm-appengine 0.1 gem, which works with DataMapper 1.0. David and @dbussink were able to sync up at RailsConf, we look forward to more collaboration in the future. David also posted the the source from the cart demo app in his talk.

Haml Support - Nathan Weizenbaum also released a new haml gem with specific changes to support App Engine. We load gems from jar files, and File.expand_path can produce strange results. I know that many developers were depending on haml, we really appreciate all the effort @nex3 put into making this work.

Recent Articles - John Wang wrote an excellent article on GData on Rails on Google App Engine that adapts Jeff Scudder's recent GData Tutorial. Ikai Lan, also wrote up an excellent post on Using the bulkloader with Java App Engine.

Scaling Rails - We met Jose Cortinas at BofConf, and he agreed to help us create the JavaScript front-end for a JSON-emitting Duby app. To kick off our hackfest, @jacortinas gave a demo of the app he created. The index and show methods are handled from a static page, using jQuery and mustache.js, with the Duby servlet on the back-end. All other methods are still handled with Rails and DataMapper. The benefit of this configuration is that new instances can respond in a second, because GET requests completely bypass the JRuby runtime and the Rails stack.

Search with Lucene - Starting from Ikai's recent post, Sarah Allen created a lucene demo on App Engine. She presented at the hackfest as well, and even write up this wonderful post about full text search on app engine. The following day, @ultrasaurus presented the app at RailsConf, and gave a nice shout-out to the JRuby Team.

RailsConf Session - Ryan Brown and I were joined by David Masover for our talk, Scaling Rails on App Engine wih JRuby and Duby. We've come a long way in one year. We have real Rails apps in production, and the DataMapper adapter has elegant transaction support. I've posted the slides from our talk, which include David's excellent DataMapper examples.

Tuesday, May 25, 2010

Google App Engine 0.0.13 gems released

We just released the 0.0.13 google-appengine gem. We published the latest App Engine SDK, and we're now using the jruby-jars gem published by the JRuby team. We also have some bug fixes to the appengine-apis gem, and the dm-appengine gem now supports Discriminators (single-table-inheritance):
  • App Engine Tools updated to version 0.0.13
  • App Engine Rack updated to version 0.0.9
  • App Engine SDK updated to version 1.3.4
  • App Engine APIs updated to version 0.0.16
Currently, appengine-rack depends on jruby-jars 1.4.1, but we have a pre-release version that will allow you to install any version of JRuby you want (by specifying it in the Gemfile).
More Coming Soon - We found an obscure issue with JRuby 1.5.0 on App Engine, but we expect to see this addressed in JRuby 1.5.1. Folks that want to use jruby-openssl 0.7 will need to hold untill JRuby 1.5.1. In the next few days, I plan to publish guides for Rails 2.3.8 and pure-Java Nokogiri.
RailsConf Session - Ryan Brown and I will be giving a talk at RailsConf, "Scaling Rails on App Engine with JRuby and Duby". You won't believe how far we've come in one year. David Masover will be there to bring us up-to-speed on the work he's doing with the DataMapper adapter. We'll also share highlights from Google I/O, and review the App Engine product roadmap.
Hackfest at RailsConf - Google is sponsoring a Hackfest at RailsConf on June 9. We'll have food, drinks, and even some swag to give away. Ryan and I will be helping folks with Duby and JRuby on App Engine. Other Googlers will be on-hand to help folks with Apps Marketplace integration and we'll get folks signed-up beforehand to use Google Storage for Developers. More details to follow.

Wednesday, May 5, 2010

Google App Engine 0.0.12 gems released

We just released the 0.0.12 google-appengine gem. We published the latest App Engine SDK, and did some cleanup on the tools to properly set ENV['RACK_ENV'] for Sinatra::Reloader. We also fixed some issues with threads hanging in the development console:
  • Both JRuby 1.4.1 and 1.5.0.dev are available
  • App Engine Tools updated to version 0.0.12
  • App Engine Rack updated to version 0.0.8
  • App Engine SDK updated to version 1.3.3.1
  • App Engine APIs updated to version 0.0.15
JRuby OpenSSL - Simply install our prerelease version of JRuby 1.5, and the latest jruby-openssl gem will work just fine. Folks that have been using an altered version of jruby-openssl 0.5.2 should update to jruby-openssl 0.7.
    sudo gem install google-appengine
    sudo gem install appengine-jruby-jars --pre


Contributions - Lots of great posts have been coming into the list recently. John Wang wrote up a nice blog post on generating JSON on Rails. Stefan Michaelis just wrote up a detailed gist on custom Authentication and Authorization.Local Meetup - Around 100 local Rubyists attended the App Engine Meetup last night. I presented summary slides form developers in Hawaii, Taiwan and Greece, and dissected a Rails application. Right after the meetup, Sarah Allen wrote up this fantastic blog post. I've also made my presentation available.Conferences - We're excited about a couple upcoming conferences. On Thursday I'll be at the Red Dirt RubyConf, I'll lead off the Servers/Hosting theme with a talk on JRuby on Google App Engine. A couple weeks later is Google I/O, we expect to hear some exciting announcements about App Engine. Those attending won't want to miss What's hot in Java for App Engine.

Thursday, April 8, 2010

Google App Engine 0.0.11 gems released

We recently released the 0.0.11 google-appengine gem. We published the latest App Engine SDK, and now use bundler to fetch the jruby-rack gem. The latest App Engine APIs include bug fixes for memcache and HTTPS, and we pushed a new DM adapter with some experimental new features:
  • App Engine Rack updated to version 0.0.7 and now includes
    deferred dispatcher and depends on JRuby-Rack 0.9.7 gem
  • App Engine SDK updated to version 1.3.2
  • App Engine APIs updated to version 0.0.14
  • DM Adapter updated to version 0.0.8
Reliable Spin-up - Our biggest show-stopper has been apps not consistently initializing within 30 seconds. Thankfully, @urekat came up with a simple solution to mitigate this problem, using redirects to break-up loading requests. We've packaged the deferred dispatcher with appengine-rack for your convenience.
JRuby Updates - A new version of Warbler was just release, we hope to take advantage of some of the new features for our Rails 3 setup process. We also expect to see a release candidate of JRuby 1.5 any day now, and jruby-openssl 0.6.1 should follow.
OAuth & OpenID - Thanks to some hard work from @ribrdb and @nahi, the jruby-openssl 0.6.1 gem will work properly on App Engine. The lack of a released gem has not stopped some developers from forging ahead. You should wait for jruby-openssl 0.6.1, but here are a couple examples from @azazeal and @baroquebobcat that use an altered gem to support OAuth and OpenID.
Nokogiri Java Port - As @headius has recently reported, the pure-Java version is very close to 100% passing. Thanks to an epic effort from Sergio Arbeo, Patrick Mahoney, Yoko Harada and others. It looks like they'll push it over the edge very soon.
App Engine Birthday - App Engine had a second birthday last week, and App Engine for Java is now only one year old. JRuby developers should be very excited with the recently published product roadmap. There was also an interesting TechCrunch article today.
Success Stories - A recent tweet from @app engine links to a blog post about Starting your business in less than a week with Rails on App Engine. The app runs Rails 2.3.5 with DataMapper on App Engine. The timing was just right when @azazeal started building his app, and he was determined to push through any issues. We also have a lot of utility apps like jruby-ci, so if you've been on the fence, consider using App Engine for your next Ruby app.

Saturday, February 27, 2010

Google App Engine 0.0.10 gems released

We just released the 0.0.10 google-appengine gem. Working with cron.yaml has been fixed with the latest version of App Engine Tools. We also include AppEngine SDK 1.3.1. I've posted a few more examples. I show how to configure ActionMailer, special thanks to Michael Rykov. I also show how to work with a gem that doesn't have the java extensions in a jar.
  • App Engine Tools updated to version 0.0.10
  • App Engine SDK updated to version 1.3.1
We've also published a gem that includes JRuby 1.5.dev from head. People that have been having issues lately, especially with Rails, should try installing this gem:
    sudo gem install appengine-jruby-jars --pre

Our video from RubyConf, Scaling on App Engine with Ruby and Duby, has finally been posted. Also, JRuby commits can now be tracked at @jrubyci thanks to @koichiroo: http://jruby-ci.appspot.com
Works with bundler08, and JRuby-Rack 0.9.7. We had some great demos published recently:

Tuesday, January 26, 2010

Google App Engine 0.0.9 gems released

We just released the 0.0.9 google-appengine gem. This new version of App Engine Tools addresses a previous issue with JRuby-Rack and facilitates bundling gems with Java extensions. I've created a couple sample apps, that use some common gems.
Later today, during the "Google Appengine Java: Groovy baby!" talk at Jfokus in Stockholm, Peter Lind will be giving a presentation about JRuby on AppEngine.

Thursday, January 21, 2010

Google App Engine 0.0.8 gems released

We recently released the 0.0.8 google-appengine gem. This new version of App Engine Tools is compatible with the latest version of Gem Bundler. We also added support for Rails 2.3.5 by including JRuby-Rack 0.9.6. Unfortunately, there is an incompatibility with App Engine, but we'll have a new release to fix this very soon. You can fix it from your app directory like so:

  cd app_dir
  curl -sO http://jruby-primer.appspot.com/tools/fix008.rb
  ruby fix008.rb


We have had a great deal of community contribution recently. We assumed Rails 2 would not work without rubygems, so we were waiting for Rails 3. Fortunately, Takeru Sasaki was able to patch the Rails 2.3.5 calls to rubygems, and now we have it working. Rails 2.3.5 currently spins up several seconds faster than Rails 3, and just a few seconds behind Sinatra.

Takeru also created a datastore adapter called TinyDS. I created a TinyDS integration plugin that handles ActiveRecord method calls. Josh Moore also created a DM integration plugin, so now we have both adapters working effortlessly with Rails 2.3.5 generated scaffold.