Presentation #2
Josh —developer —silver spring, md —RTI —twin dad —canadian
Outline 1. What is Tangerine? 2. Where were we and what were we doing? 3. What went wrong? 4. How did we respond? 5. Q&A
Tangerine —Android —Data collection —Literacy assessments for early grades —Web interface for designing assessments —Mobile interface for collecting data
Technology Web application (Backbone.js) Apache Cordova CouchDB (document oriented database)
Context —Kenya —Rural —Intermittent connection —Low bandwidth
Problem 1. Users complain it doesn’t work. Timeouts. 2. Doesn’t finish. 3. No feedback.
Step 0 Geography Moved the server from New York to Frankfurt.
Step 1 Divide and conquer 1. Break up the data into logical chunks. (group of documents) 2. If at first you don’t succeed
Step 2 Psychology Display 3 pieces of information 1. Upload progress (chunk 1 out of 15 chunks) 2. Internet connection quality. (bad, poor, ok, good) 3. Upload history.
Step 3 LZ Compression LZ-String-1.3.3 —Compressed our JSON down to 38% of original size —AJAX —Base64 (60%)
Step 4 Ditching CouchDB replication —MVCC —Multiple requests
Steps —Geography —Divide and Conquer —Psychology —LZ Compression —Ditching CouchDB Replication
Result? —hour to minutes Thanks for listening The End
Q&A
Recommend
More recommend