Friday, December 3, 2010

Google App Engine 0.0.19 gems released

We just released the 0.0.19 google-appengine gem. App Engine's infrastructure can now anticipate the need for more resources and warm up new application instances (in the background) before routing user traffic to them. You can also reserve three instances by purchasing "Always On" for $9 per month. See the 1.4.0 blog post for more information.
  • App Engine Tools updated to version 0.0.17
  • App Engine SDK updated to version 1.4.0
  • App Engine Rack updated to version 0.0.12
  • App Engine APIs updated to version 0.0.22
JRuby 1.5.6 - The JRuby team just shipped a new release that contains a the "object stream" fix we need for Mirah, thanks guys!
Nokogiri Java - We have a new 1.5.0.beta.3 gem for pure-Java Nokogiri. Thanks to @yokolet for her work continuing feature development on the pure-java version. We're in the home stretch
Mirah and Dubious - We now have gems for Mirah and Dubious, thanks @baroquebobcat, you're a hero. Even with background warming of Rails instances, Mirah and Dubious provide an simple way to cut server response time down to a fraction of what it takes to pass through the entire Rails stack.

Friday, November 19, 2010

App Engine Prerelease SDK 1.4.0

There was an interesting post to the App Engine list http://goo.gl/zFcsu where Ikai wrote...

"The Always On feature allows applications to pay and keep 3 instances of their application always running, which can significantly reduce application latency. Developers can now enable Warmup Requests. By specifying a handler in an app's appengine-web.xml, App Engine will attempt to to send a Warmup Request to initialize new instances before a user interacts with it. This can reduce the latency an end-user sees for initializing your application."

This is means that JRuby (Sinatra or Rails) applications will work much better on App Engine. Users will not experience spin-up delays as they have in the past because new instances will spin-up in the background. Look for documentation on this very soon.

Friday, October 15, 2010

Google App Engine 0.0.18 gems released

We recently released the 0.0.18 google-appengine gem, which includes the 1.3.8 SDK. The admin console now provides information about application instances. See the 1.3.8 blog post for more information.
  • App Engine SDK updated to version 1.3.8
  • App Engine APIs updated to version 0.0.21
Rails and Datastore - Josh Moore recently pushed rails_dm_datastore 0.2.16, and appengine-paginator 0.1.3. DataMapper 1.0.0 is now supported by the adapter and the Rails 2.3.x setup script. I've also recently pushed dm-appengine 0.1.3, with required changes from Josh Moore.

Rails 2.3.10 - I updated the rails_appengine gem to support Rails 2.3.10. I will have a Rails 3.0 script shortly. App Engine will eventually provide hosted SQL, so we'll have support for ActiveRecord as well.

JRuby 1.5.5 - The JRuby team has released a new version of JRuby. We're using jruby-jars 1.5.5 in our demo Rails 2.3.x app, works great.

RubyConf - I've been busy with a side project, so I won't be able to present at RubyConf, but Nick Howard (@baroquebobcat) will be presenting on Mirah and Dubious. Bob Aman (@sporkmonger) will also be giving an App Engine update and show off the Ruby APIs he's been building for Google, including the signet gem for OAuth.

Saturday, September 4, 2010

Google App Engine 0.0.17 gems released

We just released the 0.0.17 google-appengine gem. The 1.3.7 SDK is a bugfix release for 1.3.6. The getServingUrl() function for the new dynamic image resizing service was throwing a SecurityException in the SDK. For more information, see the recent post on the High-Performance Image Serving System.
  • App Engine SDK updated to version 1.3.7
  • App Engine APIs updated to version 0.0.20
Let us know if you have sample JRuby and Mirah apps that take advantage of any of the new APIs.

DM Adapter - David Masover just pushed dm-appengine 0.1.1. Pluralized default storage names are deprecated on App Engine and will be changed! To use singular storage names on an existing app, you will need to run a migration on your data.

Rails 2.3.9 - I updated the rails_appengine gem to support Rails 2.3.9. I've also updated the setup scripts for 2.3.5, 2.3.8 and 2.3.9. Based on this rack bug, it looks like we'll have Rails 2.3.10 soon.

Rails 3.0 - Now that Rails 3.0 and Bundler 1.0 have been released, we can start working on a new setup script. The main issue right now is that Bundler 1.0 doesn't work without Rubygems, so we will need to merge in functionality from Bundler08, and create our own environment file.

Dubious Demos - Recently, Michal Hantl (@michal_hantl) built a couple Dubious demo apps. Dubious is still very limited, but you can certainly build simple apps, and they spin-up in about a second.

Ruby|Web Conf - On September 10th, Nick Howard (@baroquebobcat) will be presenting Extreme Performance with Mirah and Dubious at Ruby|Web Conference in Snowbird. Nick has been working on the continuous build system and generators for Dubious.

Wednesday, August 18, 2010

Google App Engine 0.0.16 gems released

We just released the 0.0.16 google-appengine gem. The big change for JRuby with this release was that app.yaml must now live in the WEB-INF dir. See 1.3.6 Release Post for more information.
  • App Engine Tools updated to version 0.0.16
  • App Engine SDK updated to version 1.3.6
  • App Engine APIs updated to version 0.0.19
The appengine-tools will automatically move app.yaml into WEB-INF, but if you have app.yaml files in both locations, the one outside WEB-INF will be ignored.

Rails DM Gem - I updated the rails_dm_datastore gem to enforce a singular kind name in datastore. This will allow developers to create hybrid apps that share models between Mirah/Dubious and Ruby/Rails. The rails-depot source shows the storage_names override.

Rails 2.3.8 - I updated the Rails 2.3.8 setup script. It now uses the most current gems for JRuby, JRuby-Rack and JRuby-OpenSSL. The setup script for Rails 2.3.5 has been removed.

RubyKaigi 2010 - Everyone had a blast at RubyKaigi. During JRubyKaigi, Takeru (@urekat) gave a fantastic presentation Rubyist, it's time to develop your Rails app on Google App Engine, and I gave a lightning talk on Extreme performance with Mirah and Dubious (slides). Takeru and I wanted to reach a broader audience, so we gave a quick talk at RejectKaigi called Mirah and Dubious (slides)

App Engine JA Night - On Aug 30th, Charles and I went to Google's Tokyo office for App Engine JA Night to give a presentation on Mirah and Dubious. Special thanks to Kazunori Sato and the DevRel team in Tokyo for setting this up.

Friday, July 16, 2010

Google App Engine 0.0.15 gems released

We recently released the 0.0.15 google-appengine gem. The big change with this release was the introduction of app.yaml for configuration. John Wang also added OAuth support to our APIs.
  • App Engine Tools updated to version 0.0.15
  • App Engine SDK updated to version 1.3.5
  • App Engine Rack updated to version 0.0.11
  • App Engine APIs updated to version 0.0.18
  • JRuby 1.5.1 and JRuby-OpesSSL 0.7 support
Developers should be advised that future versions of the SDK will require that app.yaml be inside WEB-INF, but the tools will probably move it there for you.

JRuby-Rack 1.0.2 - Nick Sieger released a new version of JRuby-Rack in early August. This included a patch by Patrick Cheng that fixes an annoying bug that made it difficult to deploy hybrid apps. With the latest gem, JRuby and Mirah apps play well together.

Rails 2.3.8 - I updated the old guide to point to a Rails 2.3.8 primer, that uses app.yaml. It is also a hybrid app, the same data is accessed by Rails and Dubious. Check out the source to see how it works.

OSCON Session - Charles Nutter and I gave a talk about "Ruby and Mirah on App Engine" at OSCON in July. This talk was well received, and there was a great deal of interest in Mirah. Paul Krill, from InfoWorld, wrote up this article, "Mirah brings Ruby niceties to Java".

Google Tech Talk - Charles came to Google to talk about "Expressive Languages on the JVM". Charles dispels a few myths about Ruby, and goes on to show how Mirah trumps other JVM languages by avoiding runtime dependencies. I jump in at the very end to poke around the Dubious demo app.

JRuby Kaigi - Takeru Sasaki will be giving an App Engine talk "Rubyist, it's time to develop your Rails app on Google App Engine" at JRuby Kaigi. I'll be there too, giving a lightning talk on Mirah/Dubious.

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.