Tuesday, April 21, 2009

Toward an open web standard for 3D graphics (part 2): Introducing O3D

Most content on the web today is in 2D, but a lot of information is more fun and useful in 3D. Projects like Google Earth and SketchUp demonstrate our passion and commitment to enabling users to create and interact with 3D content. We'd like to see the web offering the same type of 3D experiences that can be found on the desktop. That's why, a few weeks ago, we announced our plans to contribute our technology and web development expertise to the discussions about 3D for the web within Khronos and the broader developer community.

Today, we're making our first contribution to this effort by sharing the plugin implementation of O3D: a new, shader-based, low-level graphics API for creating interactive 3D applications in a web browser. When we started working on O3D, we focused on creating a modern 3D API that's optimized for the web. We wanted to build an API that runs on multiple operating systems and browsers, performs well in JavaScript, and offers the capabilities developers need to create a diverse set of rich applications. O3D is still in an early stage, but we're making it available now to help inform the public discussion about 3D graphics in the browser. We've also created a forum to enable developers to submit suggestions on features and functionality they desire from a 3D API for the web.

If you are interested in learning more about O3D, you can visit our site, subscribe to our blog and join our discussion groups. We also invite you to join us at Google I/O (May 27th -28th), where you can see presentations about O3D and meet with the team.

A video of the O3D Beach Demo:



Monday, April 20, 2009

Temperature, Mountains Wave Clouds, and Math Education in Seattle


What a difference a day makes. Today was splendid, nearly no clouds, and temperatures reaching the 70s in Puget Sound land and the 80s near Portland (see map above for 5 PM, Monday). In contrast, yesterday was far cooler from Seattle northward. The big reason...an area of clouds produced by mountain waves forced by the Olympics (see satellite picture). In fact, yesterday had spectacular mountain wave cloud downstream of not only the Olympics..but major volcanoes like Mt. Rainier. John Sahr of the UW sent me a wonderful picture of the Rainier wave clouds taken from the east side at Manastash Ridge Observatory, south and west of Ellensburg at about 4000'.


In the satellite picture you can actually see two types of mountain wave clouds. The ones downstream of the Olympics are high in the atmosphere...these are called vertically propagating wave clouds. If look carefully you will see lines of regularly spaced cloud east of the north Cascades..there are trapped lee wave clouds...and are located much lower in the atmosphere. If you want to learn more about these mountain waves, check out my book...I have a whole section on them.


The good weather will hold up one more day...although tomorrow will probably be a few degrees cooler. As shown in the forecast model output below for 8 AM on Wednesday...an energetic cold front will be crossing the area at that time...resulting in the temps on Wed dropping into the 50s, with a few showers as well (nothing serious).
Math Education: Seattle School District is poised to make a big mistake

Finally, a little editorial. Some of you may know that I feel strongly that math education in our state has declined during the past decade or so. Students are coming to the UW without basic competency in math and some wanting to major in atmospheric sciences can't do so because their math background is so poor. Anyway, the Seattle School Board is on the verge of making a huge error in the selection of high school math textbooks...picking the extremely poor "Discovering" Algebra, Discovering Geometry Series by Key Curriculum, which are weak fuzzy/reform math texts. This curricula was found to be “mathematically unsound” by the Washington State Board of Education consultants, and has been removed from the State’s Recommended High School Programs List. Definitions, computational algorithms, and formulas are vaguely stated if they are stated at all. The program does not include enough practice for mastery. Lots of use of calculators. Local and national mathematicians have expressed their written concerns about the soundness of these programs.

The selection was made by the district's math curriculum committee. In contrast, the second place Prentice Hall program, which was favored by a minority of the committee (5 to 8 in committee vote), provides a balanced and content-rich resource for teachers, students, and parents to collaboratively support success. Prentice Hall teaches authentic algebra as recommended by the National Math Advisory Panel and does not include excessive calculator exercises.

The district developed a textbook review process which included no mathematicians and that conflicts with state recommendations and key ideas presented by the National Math Advisory Panel. This is the same process which selected the current elementary and middle school programs, and they have not helped increase student achievement or reduce the achievement gap.

This will be an important vote even if your children are currently in elementary school. You can make a difference by writing a short message to school board directors asking them to reject the district’s program recommendation. FINAL VOTE will be on April 22nd.

School Board Directors:
Michael DeBell - michael.debell@seattleschools.org
Sherry Carr - sherry.carr@seattleschools.org
Harium Martin-Morris - harium.martin-morris@seattleschools.org
Peter Maier - peter.maier@seattleschools.org
Cheryl Chow - cheryl.chow@seattleschools.org
Steve Sundquist - steve.sundquist@seattleschools.org
Mary Bass - mary.bass@seattleschools.org

PS: more information at

www.wheresthemath.com

Using Google App Engine to power Web APIs

This post is part of the Who's @ Google I/O, a series of blog posts that give a closer look at developers who'll be speaking or demoing at Google I/O. Today's post is a guest post written by Steven Willmott of 3scale.

Public APIs are a great way to share data and functionality, both for existing applications and as useful resources in their own right. Google Maps, Calendar and many other APIs lead the way in this and are now powering tens of thousands of sites and applications. Flickr, Twitter and others also provide great data and functionality which can be used to enhance and build new applications.

While APIs can provide great value add, it's not always obvious how to make one available if you're not Google or Yahoo. Although serving content via an API is effectively no different than via a user-facing web app - just serving HTTP traffic with XML, JSON or arbitrary data rather than HTML, CSS and Javascript normally destined for a browser - it does come with some unique challenges: authentication works differently, inbound traffic is often automated and response times need to be rapid for the API to be usable within another site - all a bit different from a standard web app.

Since we're in the API business we often get asked about how to quickly get a new API up and running, and one neat new way to do this is using Google App Engine, which provides a lot of the core ingredients needed to launch a new API and help it scale. To see how this works we put together a quick and dirty trial service which exposes App Engine's Image manipulation functions as a new Web API:
  1. First we set up a standard App Engine account giving us the standard dashboard and deployment environment. This provides the runtime environment plus a range of tools to monitor the application - all useful to track resource usage which we'll need to worry about later.

  2. The service itself in this case is a simple wrap of wrapping App Engine's available image manipulation features which provide standard image manipulation features, but it could easily be more complex.

  3. Next up, the functionality is wrapped in a simple RESTful interface. There are multiple ways to do this, libraries such as the App Engine Rest Server and the Django rest interface or a port of the Ning-like REST interface can be used to do most of the heavy lifting. Gae-Rest for example includes indexes and memcache and other features to optimise response times on the API. These give the API standard GET, POST, PUT, DELETE operations we'll need to push images in and out of the application.

  4. Finally, while we have the service ready to roll we still need a way for developers to access the service, manage their resource usage and track activity on the API. To do this we can use 3scale's API management platform which provides these features out of the box. Connection works using a standard python plugin and the system creates a configurable management portal for the service which handles signup keys, usage limits, traffic analysis and the documentation needed to support developers using the new API. For heavy users we can also add paid plans to cover any App Engine costs or make a small profit - check out the appspotimage portal here:


The service can now take advantage of App Engine's scalability - even under the constraints of the plan, your API should comfortably serve up 500,000 - 1 Million hits per day (although note that you need to check other resource limits - not just hits) which would be non-trivial to arrange and potentially high cost on a lot of existing hosting services. If you're serving traffic from appspot.com (for appspotimage we serve the management interface from appspotimage.com and the API traffic from appspot.com) response times from App Engine tend to be very fast (sub 10ms if you're on the west coast US) - which is great for API users.

Although backend APIs are not quite as visible as a new Android or iPhone App, they often provide a great resource and hopefully we'll see more and more datasets and new types of processing on line as APIs.

You can find the service itself here along with a longer tutorial on how we built it. Stay posted for some other services coming soon, as we start to play around with Java language support on App Engine.

We'll be at Google I/O on May 27-28 and look forward to talking APIs and App Engine, so stop by the Developer Sandbox. See you there!

Another way to collect data

I have written about data-driven parenting before. Here is a new way to collect data.

Google Code: Now in seven languages (plus English!)

Last April, we started providing translations of code.google.com pages in five languages: Simplified Chinese (中文[简体]) , Japanese (日本語) , Portuguese (Português) , Russian (Pусский) , and Spanish (Español). You didn't think we were done, did you?

Today, we're happy to add Korean (한국어) and Traditional Chinese (中文[繁體]) to that list. We've translated the site directory and top-level site pages, and from now on, you'll find those languages in the drop-down language selector at the top of the page header on code.google.com.

For Korean, you can now find full developer guide translations for OpenSocial API, Gadgets API, Themes API, and Adwords API. We have some API guides coming soon in Traditional Chinese, but unfortunately you'll have to guess which ones while we finish putting the final touches on those translations. If you're interested in hearing about new translations in these languages, you might want to subscribe to the APAC Developer Blog for updates as we add more content.

Good code is a universal language, spoken by developers all over the world. We don't think you should have to read English to build a great app.

Sunday, April 19, 2009

Sunday Morning Video: Iron Man vs. Bruce Lee

I saw this video a few weeks ago, forgot that I was going to post it on a Wednesday, and then I was short one video and voila, here it is.



Now, many of you have probably already seen it, but for those of you who haven't, you are in for a treat.

Saturday, April 18, 2009

FT Review: Accepting advice from economists

Tim Harford provides a review of Parentonomics in the Financial Times.
What happens when Mr Spock meets Dr Spock? The answer is Parentonomics, an autobiographical account of how an economist used his professional training in game theory to bring up his three children.

Joshua Gans describes his experiences in the labour wards, changing nappies and dealing with tantrums, spousal absences and sibling rivalry - all the while explaining what he did or did not do, the economic principles involved, and whether any of it worked as a parenting strategy.

The obvious question is whether this is supposed to be good advice or some kind of joke. There is no ambiguity in Parentonomics: Gans is not joking. Thankfully, he can be very funny. Although he is an academic - a professor at Melbourne Business School - his writing has a professional snap. While the advice is intended to be useful, readers will come to their own conclusions about that. It does at least tend to be thought-provoking.

The review goes on to describe the various stories and also my lack of regard for "social mores." To my mind, this review captured exactly what the book was about and it was heartening. But as I read it, my recurring doubts as to potential damage being an economist was doing to my children, could not be suppressed. Then again, if I wasn't an economist, I am sure I'd find another way.

Now the last time a major outlet reviewed Parentonomics, I took the reviewer to task on his opinions. That reviewer didn't much like the book or economists. But I asked myself, is it fair that I spare Tim Harford the same scrutiny just because he has written a favourable review? The answer is: surely not.

The undertone of the FT review is the boundaries of economic advice. If you didn't know anything more about Tim Harford, you might come away from review thinking that he thought I might have come close to stepping over that line. But let's investigate.

Now, on the one hand, his writings are an 'education' for non-economists about how useful economics can be. Indeed, many of my 35 Amazon.com reviewers seemed to be hoping for the same thing from Parentonomics. That wasn't to be, but The Undercover Economist and The Logic of Life remain leaders in doing just that (see my views on the entire PopEcon genre here). While I had entertained the thought of doing something similar with Parentonomics, it just didn't work out that way.

On the other hand, there is this:


This is from Tim Harford's documentary series, Trust Me, I'm an Economist. He has literally set-up shop, Lucy van Pelt style, in a shopping mall! And there is also this, his 'Dear Economist' advice columns which just last week purported to use economics to help someone, and I am not making this up, "whose neighbour was confusing them as God." His answer to them: "it's not about you, it's about God."

So in terms of the subtext of "offering advice where no economist has gone before" I'm afraid that I can hardly be considered a pioneer. My offering is modest and specialised in contrast to the potential breadth of such offerings. In that regard, Tim Harford's review should surely be read as that of a kindred spirit (or maybe "part of the problem") rather than the distanced, squeemish, observer.