Tuesday 16 September 2008

Google Developer Day 2008: A Deeper Look at App Engine -- Mano Marks

  • goal of best practices: use less quota so pay less money and google have less load :-)
  • free preview will always be free:
    • 500Mb storage
    • 2Gb bandwidth
  • currently don’t allow you to pay for App Engine, but committed to charging for additional capacity by end of year
    • CPU: 10-12 cents/hr
    • Storage: 15-18 cents/hr
    • etc.
    • if double free preview, can expect about $40 / month
  • currently support Python, but others will be coming
    • they know but they’re not telling
  • looking to provide large upload/download support, but not sure how yet
    • current limit is 1Mb for file and response size
  • currently no SLA
  • Google don’t put adverts on app engine apps
    • they will make more money on search :-)
    • They also don’t look at your data

storing data

  • keys are limited to 500 bytes
  • can’t change the ID or key_name
  • transactional read & write with get() and put()


  • Bigtable doesn’t know size of tables — that would be O(N)
  • Model.count() is a big transaction
  • could create an entity that maintains the count
    • frequent updates can cause high contention
    • fundamental limitation of distributed systems
  • instead, create sharded counters
    • randomly break counters into shards using a counter config to hold references to all shards
    • when want to count, ask counter config to add them all together
    • use get_or_insert() to fetch or create atomically


  • when you add things to memcache, you define the staleness that you’re happy with
  • use memcache to reduce storage and processing requirements

Q & A

  • can use urlfetch to request data from your own servers

    • all app engine requests must complete in 10secs
    • and urlfetch must complete faster (4secs?)
    • you get an HTTP error that you can handle if the request times out
  • Is there a profiling tool for app engine or Bigtable?

    • not aware of anything
    • difficult to see return on implementing memcache
  • What logging is there?

    • there is a log; it logs requests and you can write to it
  • SLA…?

    • the quota will be calculated using a moving average, not a total for the month
    • however, the aim is that if you get slashdotted you’ll stay up
  • Parallel processes?

    • don’t allow threading
    • don’t allow direct file write access
    • have limited file read access
    • can’t access direct network sockets
    • however, there is a mapreduce implementation for app engine written by a Googler — http://code.google.com/p/httpmr/?
  • email restrictions?

    • can send from any developer of app or from a logged in user
    • restricted to sending one per second
  • when will Django 1.0 will be included?

    • some people have uploaded django 1.0 themselves
    • django 1.0 includes a C library, so this must be worked around at the moment
  • three big languages internally in Google: Python, Java & C++

Google Developer Day 2008: Gears for mobile and the New Geolocation API -- Charles Wiles

  • google maps for mobile took a long time to deliver on different platforms
    • 10+ platforms, 100s of builds
    • mobile updates every 6 months, cf. desktop every few weeks
  • gears apps can be designed with UI talking only to local database
  • background threads then bring in data as it becomes available
  • how does Gears compare with HTML5?
    • short term — gears
    • Opera Mobile (WinMo) & Android Q4 2008
    • Expect S60 & BlackBerry in the future
    • long term — HTML5…
  • geolocation to within 1km with wifi — enough for a lot of apps
    • two ways to call: one shot + event-based
    • typically takes about 5secs to get a fix


  • Google Search with My Location — Andrei Popescu
    • plugs location and postcode into a mobile version of google local search
  • fonefood — Marko Balabanovic
    • towards the beginning of the year looked at operator location
    • doesn’t work outside of home network
    • have to get multiple agreements to work around Europe
    • also looked at open source cell tower databases
    • patchy data
    • need to write a native app to get cell ID
    • now uses Gears Cell ID, works well for restaurant finding
    • shows Google static map with restaurant markers
  • rummble — Clive Cox, CTO
    • can choose when to ask for permissions (call getPermission())
    • windows mobile:
    • always call db.close() before a page refresh
    • similarly, lastposition is only useful on a single page
    • google provide a whitelist/blacklist of user agents that support gears
  • ITN Offline News — Ave Wrigley, Head of Technology Strategy & Innovation
    • ITN ON is the new media department of ITN
    • also have their own production team: showbiz, lifestyle, etc
    • generally produce content for other people, but are starting to go direct to consumer
    • use case: “flaky mode” — travelling to work with patchy coverage
    • watching videos as well as browsing news
    • also using geolocation for local news & weather
    • configuration interface — choose categories to browse offline
    • settings are on every page of the site
    • also forces that updates are grabbed wherever you are on the site
    • can find out through gears if the device is offline or online
    • don’t have to use XMLHttpRequest
    • not part of public API…
    • site grays out subscription options when offline
    • site warns you how many MB of video you are downloading
    • gears managed store is a bit of a black box — can’t tell how much you’ve downloaded
    • had to implement their own back-end AJAX call to find this out from the server side!
    • 80% of development time has been on platform — Pocket IE is effectively IE4…
    • they had to write specific libraries to cope with the crap browser
    • debugging is very difficult
    • code is in the managed store
    • need to make sure that you’re using the right version
    • developed techniques to get around that — ask offline


  • when Series 60 or BlackBerry?
    • sometime soon…
  • will Google develop a gears translation layer for HTML5 browsers?
    • probably not — HTML5 is the standard, not gears
  • will gears integrate with GWT?
    • probably soon

Google Developer Day 2008: Keynote -- Tom Stocky

  • The browser is the platform, but it’s not powerful enough…
  • Google was born on the web — it was a platform born of consensus
  • Chrome aims to make the browser more resilient
    • one app is independent from the other
    • can automatically create app shortcuts like Fluid
  • Gears for Mobile being developed by Charles Wiles in London

  • app engine examples:

Android — Mike Jennings

Supposedly the first live demo of a real Android device in the UK.

The big demo of accelerometer-enabled street view doesn’t work in the UK as there’s no data, and the rest of the demo looked a little flat. The UI was even a bit sluggish at times.

GWT — Sumit Chandel

  • write really sophisticated web apps in the browser
  • how do you handle GWT debugging? debug into Java code using “hosted mode browser”
    • runs your java code as bytecode, rather than generated javascript
    • can see stringified DOM contents of any widgets that you use
  • demo: lombardi blueprint
  • recently released GWT v1.5
    • java 5 language features
    • can use annotations to help optimisations
    • performance enhancements
  • browser support (mid 2008):
    • Firefox 1.0, 1.5, 2.0 and 3.0
    • Internet Explorer 6 and 7
    • Safari 2 and 3
    • Opera 9.0


  • added Hive & Netlogs support
  • Apache Shinding is an open source reference implementation of an OpenSocial container

Monday 15 September 2008

MomoLondon: Mobile Platforms: Too much choice or Hobson's Choice?

  • Annie Turner — editor of telecomseurope.net
  • Marko Balabanovic — lastminute.com labs
    • launched fonefood as web site around Western Europe
    • have two or three customisations for screen sizes but not much more than that
    • world looks like iPhone version + everyone else
    • want to have rounded buttons etc for iPhone, but everyone else the same
    • adding location — launched with Google Gears for Windows Mobile
  • Ricardo Varela — European Mobile Engineering Lead, Yahoo!
    • working to make Yahoo Go widget framework (Blueprint) available for single apps
    • have native Symbian, iPhone, Android platforms
  • Ben Last — EMCC
  • Nick Allot — OMTP (Open Mobile Terminal Platform)
    • working with BONDI initiative — calls to mobile APIs from Javascript
  • Simon Rockman — Sony Ericsson
    • hope for the future: app stores

Is there a sustainable business model?

  • iPhone proves there’s people willing to pay money
    • interesting that this has eclipsed any other payment

Designed for device

Simon Rockman: You don’t get games developers wanting to write the same thing for different devices — they optimize for different hardware

  • Simon Rockman: “Trying to make things easy in development will end up with products that people don’t want to buy”
  • Ben Whitaker (Masabi): “Niches are too small”
  • SR: “It’s more about what can you charge for the app. You can do segmentation based on the device — music phones are sold to particular people”
  • Nick Allot: “No route to market”
  • Ben Last: “Can address enterprise using just Nokia Series 60v3 & BlackBerry”
  • BL: “Route to market via the web — mobile apps are often things that people want to take from the web with them on their mobile. e.g. Google Mail, Yahoo”

We’ve heard “write once play everywhere before” with Java…

  • Ben Last: “operators want a piece of iPhone pie, and getting rid of fragmentation will sort that”
  • Kai Hendry (Aplix): “the web can degrade nicely, better than Java”

Will the operators and manufacturers really get involved?

  • Simon Rockman: “Existing phones are getting cheaper and that’s where the growth is. Processor power is not growing in the same way as computers. Battery power is only growing at 10% a year.”
    • however, there is increase in processor growth at the high end, and this is filtering down steadily
  • Nick Allot: OMTP have OEMs & operators on-board

Putting things in the way of normal mobile users actually using applications

  • Nick Allot: “warnings are absolving network operators and manufacturers of responsibility for upstream content, just like warnings in a car park telling you not to leave your valuables in the car”
    • “OMTP trying to come up with a sensible trust mechanism — especially one that will allow you to take a phone from one network to another”
  • Ben Masabi: “setting up data connections and installation warning texts could be standardized across all phones — just like NTT DoCoMo”
  • Nick Allot: “we tried this and have done what we can…”
    • e.g. removing an application that’s deemed dangerous, depends upon legal implications of country, operator contract

What do Yahoo Blueprint think of OMTP and vice-versa?

  • Nick Allot: OMTP based on web standards
  • Ricardo Varela: Blueprint is out there already

Whither Fennec?

  • Ben Last: “Where firefox got good, was when it stopped trying to fight IE but implemented the de facto standards. It’s good to see more browsers coming out that are standards-compliant”

Staying on mobile or going back to web to register?

  • Ben Whitaker: “stats — losing 2/3rds when ask to register on PC; losing 50% when trying to go online with GPRS”
  • Gambling software (J2ME): “78% installed from a link for the trial — gobsmacked! Don’t expect that for the actual release”

How will the platforms go in the future?

  • Ben Last: “will be driven by the killer app”
    • but the killer app is already there — it’s making phone calls!
  • Simon Rockman: “killer app is seamlessness. Need to do the right thing on the right device”


Goojet widget engine couldn’t make it

Shazam — Dominic Pride

Taking music recognition further:

  • buy track
  • artist info
  • share track

Application built by EMCC on Symbian

  • deliver same consistency of experience
  • go deep into messaging & contacts API

Next MoMo

  • October 13th: NFC
  • November 10th: MoMo London Turns Three
  • December 1st: Social Networking Revisited?