1. new m.sc
Eric Wahlforss / CTO
eric@soundcloud.com
Thursday, April 21, 2011
2. m.soundcloud.com
mobile version of sc
all ajax
html5 streaming
html5 history
request caching
Thursday, April 21, 2011
3. m.soundcloud.com
2 ppl - 2 months, matas petrikas + jörn zäffrer
Based on the sc public api
Modern stack
Fully test-driven
continuous integration -> continuous deployment
git push origin stable to live < 3 min
Thursday, April 21, 2011
4. tech
backbone/underscore/jquery
jquery templates
node
backbone patches: html5 history, oauth signing +
https, sessionStorage request cache
will be open-sourced
http://documentcloud.github.com/backbone/
#examples-soundcloud
Thursday, April 21, 2011
5. build pipeline + deployment
js: load fake dom environment in node, pull out script
tags, bundle up, run through closure, generate new
html file with all.js
css: same thing, cssmin
templates: load up fake dom env -> load templates
with jquery tmpl -> pre-compile -> attach to all.js
mostly the fs node module
deployment all git + chef
Thursday, April 21, 2011
6. testing
200+ tests
QUnit - contributing
manually in browser and headless selenium
we’ll open-source the headless part soon
http://vowsjs.org/ for node js tests
api responses mocked
Thursday, April 21, 2011
7. cross-domain
unfortunately CORS is buggy--redirects
node based http proxy
https iframe to http via postMessage. oauth 2 dance +
safe https storage of access tokens
Thursday, April 21, 2011
8. learnings
backbone is very lightweight--needs to be extended for
more complex apps. routing gets messy
working on inheritance model with the backbone crew
android 2.2, older webkits the new ie6
mobile debugging sucks
blackberry has no audio -- big hopes for wp7 ie9
Thursday, April 21, 2011