Wednesday, June 18, 2008

Distractions

A very distracting day:

  • Ras and I met with John Ousterhout (hurray Tcl!) to find we're taking almost completely opposite paths on our respective projects, yet almost completely agree on motivations and goals. Side note: I want Electric Cloud to integrate into ANT/SVN and run on EC2 :D
  • Reading group day (axiomatic semantics, data flow as abstract interpretation, and Self)
  • Instead of manually implementing some application consistency work, I decided to finally buckle down and understand some of the bidirectional programming work at Penn. and am finding the papers to be incredibly clearly written. However, it's a subtle topic: ... the papers understate the broad applications and motivation of the work, and it personally took hitting certain problems and trying to encode solutions to see the point of some of it.
    • Foundations: Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem.
    • The idea is generally applicable: Relational Lenses: A Language for Updateable Views
    • On deck: Exploiting Schemas in Data Synchronization
    The problem is not so much that we have different notions of consistency and thus need provably 'good' ones but that we work in a world of data mappings, even between seemingly heterogeneous data models, and there's a lot of unnecessary cruft involved in flowing in the backwards direction. The foundation of the work is that, whenever we describe a way to project and transform data, we define a way to integrate changes to projection back into the original. Thus, when we have a chain of data flows between models, we get a way to do a full backwards propagation for free: anything you can transitively get, you can transitively putback. For example, Michael examined this with respect to GUIs in "Declarative, composable views", which addresses the question of data models in XHTML. However, if you try to build a real persistent data app., I think you'll hit a big piece of cruft fairly quickly that can probably also be solved using the same ideas :) But first, more reading :)

Hopefully I'll stop with the distractions soon... Raluca should be back and the web needs parallelizing :)

No comments: