Datos (2015)
Datos was an experiment to bring the iPython notebook style of data analysis to the browser. It was created when I started to learn IndexedDB for the purpose of offline storage.
I created a library named idb.js that wraps the IndexedDB API and provides jQuery-like chaining through the use of Promises.
This project is hosted on GitHub.
Try it out
- Go to https://sel-columbia.github.io/datos/
- Remember to press SHIFT + ENTER to execute each code block
Lessons learned
- Use of the IndexedDB API requires deeply nested callbacks
- Wrapping it is the way to go, especially if you want to maintain readability and ease of use
- It has many strange bugs
- You can bulk load large CSVs (it’s a hidden feature) with thousands of rows and analyze them fairly quickly
- It’s annoying how native Javascript Promises require an extra level of nesting
- Web workers are the way to go when working with a lot of data