« [etech06] Disconnection Tolerant Ajax | Main | [etech06] Julian RushBleecker (USC) - Pervasive Games »

March 9, 2006

[etech06] Steve Yen (TrimPath) - Web Apps Without the Web

TrimPage Junction Framework

NumSum - a web-based spreadsheet. A single page app. Allows saving offline, through Save Page As in the browser.

Next Action - GTD to do list app. Nice code viewer in the app.

Persistence Technique 1
Modern browsers keep dhtml DOM tree intact during a File Save Page As

Keep you data in the DOM tree
myHiddenDataDiv.innerHTML=bigString
Whenever user saves the HTML page, you're ok

Might not work in Safari

Persistence Technique 2

Flash 8 Storage
Flash to JavaScript bridge
Seamless!Except, when you hit squantum level storage usage (Brad Neuberg)

Persistence Technique 3

IE'isms
IE persistence
IE offline data
(but nobody uses it)

Persistence Examples

DOM Page Saving Tehcnique
- IddlyWiki & Friends
Num Sum
Next Action

Flash storage technique
AMASS demos, Tiwywiki.

You need Synchronization in addition persistence
- can use data/record level semantics, track deltas, change requests, not changes; INSERTs only; unique ID gen. OR just punt

You also need a client side API - VB style? No - Rails Style? You can get tw write once run anywhere. Do do that you'll need SQL on both sides - we know it on the server, but what about the client? Will Firefox have something?

TrimPath Junction

A MVC Framework for JavaScript
raiels-like API with client-side SQL
Designed for write once run anywhere - server runs Rhino
Designed for pluggable client-side storage.

eval and with in JavaScript - changes dynamic scoping.

Why care about with?

Domain specific mini languages are easy - JSP, ASP, SQL are examples of mini-languages.

HST Templage engine
JST==JavaScript Templates 297 lines of code.

TrimQuery SQL Engine - RexExps to transform SQL to TQL

Technorati Tags: ,

Posted by oren at March 9, 2006 9:32 AM

Comments

I'm the author of TiwyWiki and saw it mentioned in your post. The client-side storage is not the most important part of TiwyWiki.
The harder part is actually the synchronization with the server. I'd love to get some ideas on how to make this more generic, because my two implementations so far (TiwyWiki and TiwyFeeds) were a lot of work.
Also, TiwyFeeds adds some cross-domain HTTP request capabilities (although still somewhat limited).

Posted by: Julien Couvreur at May 2, 2006 10:58 AM

Post a comment

Thanks for signing in, . Now you can comment. (sign out)

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)


Remember me?