SlideShare a Scribd company logo
new m.sc
          Eric Wahlforss / CTO
          eric@soundcloud.com




Thursday, April 21, 2011
m.soundcloud.com

                mobile version of sc
                all ajax
                html5 streaming
                html5 history
                request caching




Thursday, April 21, 2011
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
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
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
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
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
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

More Related Content

What's hot

Installing and running Postfix within a docker container from the command line
Installing and running Postfix within a docker container from the command lineInstalling and running Postfix within a docker container from the command line
Installing and running Postfix within a docker container from the command line
dotCloud
 
Composer | PHP Dependency Manager
Composer | PHP Dependency ManagerComposer | PHP Dependency Manager
Composer | PHP Dependency Manager
Ujjwal Ojha
 
Docker perl build
Docker perl buildDocker perl build
Docker perl build
Workhorse Computing
 
PHP Dependency Management with Composer
PHP Dependency Management with ComposerPHP Dependency Management with Composer
PHP Dependency Management with Composer
Adam Englander
 
Linux project no 1
Linux project no 1Linux project no 1
Linux project no 1Harry Nguyen
 
UCL All of the Things (MeetBSD California 2014 Lightning Talk)
UCL All of the Things (MeetBSD California 2014 Lightning Talk)UCL All of the Things (MeetBSD California 2014 Lightning Talk)
UCL All of the Things (MeetBSD California 2014 Lightning Talk)
iXsystems
 
Dockerizing WordPress
Dockerizing WordPressDockerizing WordPress
Dockerizing WordPress
dotCloud
 
T3DD13 - Automated deployment for TYPO3 CMS (Workshop)
T3DD13 - Automated deployment for TYPO3 CMS (Workshop)T3DD13 - Automated deployment for TYPO3 CMS (Workshop)
T3DD13 - Automated deployment for TYPO3 CMS (Workshop)Tobias Liebig
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
Roman Rodomansky
 
Hitchhikers guide to open stack toolchains
Hitchhikers guide to open stack toolchainsHitchhikers guide to open stack toolchains
Hitchhikers guide to open stack toolchainsstagr_lee
 
Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008Helgi Þormar Þorbjörnsson
 

What's hot (11)

Installing and running Postfix within a docker container from the command line
Installing and running Postfix within a docker container from the command lineInstalling and running Postfix within a docker container from the command line
Installing and running Postfix within a docker container from the command line
 
Composer | PHP Dependency Manager
Composer | PHP Dependency ManagerComposer | PHP Dependency Manager
Composer | PHP Dependency Manager
 
Docker perl build
Docker perl buildDocker perl build
Docker perl build
 
PHP Dependency Management with Composer
PHP Dependency Management with ComposerPHP Dependency Management with Composer
PHP Dependency Management with Composer
 
Linux project no 1
Linux project no 1Linux project no 1
Linux project no 1
 
UCL All of the Things (MeetBSD California 2014 Lightning Talk)
UCL All of the Things (MeetBSD California 2014 Lightning Talk)UCL All of the Things (MeetBSD California 2014 Lightning Talk)
UCL All of the Things (MeetBSD California 2014 Lightning Talk)
 
Dockerizing WordPress
Dockerizing WordPressDockerizing WordPress
Dockerizing WordPress
 
T3DD13 - Automated deployment for TYPO3 CMS (Workshop)
T3DD13 - Automated deployment for TYPO3 CMS (Workshop)T3DD13 - Automated deployment for TYPO3 CMS (Workshop)
T3DD13 - Automated deployment for TYPO3 CMS (Workshop)
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
 
Hitchhikers guide to open stack toolchains
Hitchhikers guide to open stack toolchainsHitchhikers guide to open stack toolchains
Hitchhikers guide to open stack toolchains
 
Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008
 

Viewers also liked

SoundCloud API Do:s and Don't:s
SoundCloud API Do:s and Don't:sSoundCloud API Do:s and Don't:s
SoundCloud API Do:s and Don't:s
Eric Wahlforss
 
SoundCloud - Platforma za dijeljenje audiozapisa
SoundCloud - Platforma za dijeljenje audiozapisaSoundCloud - Platforma za dijeljenje audiozapisa
SoundCloud - Platforma za dijeljenje audiozapisaTijana Kranjac
 
SoundCloud @ Music Hackday Barcelona 2010
SoundCloud @ Music Hackday Barcelona 2010SoundCloud @ Music Hackday Barcelona 2010
SoundCloud @ Music Hackday Barcelona 2010Eric Wahlforss
 
SoundCloud API Learnings
SoundCloud API LearningsSoundCloud API Learnings
SoundCloud API Learnings
Eric Wahlforss
 
SoundCloud Presentation @ AWS Startup Event London
SoundCloud Presentation @ AWS Startup Event LondonSoundCloud Presentation @ AWS Startup Event London
SoundCloud Presentation @ AWS Startup Event London
Eric Wahlforss
 
SoundCloud Platform Do:s and Don't:s at How To Web 2011
SoundCloud Platform Do:s and Don't:s at How To Web 2011SoundCloud Platform Do:s and Don't:s at How To Web 2011
SoundCloud Platform Do:s and Don't:s at How To Web 2011Eric Wahlforss
 
Sound cloud
Sound cloudSound cloud
Sound cloudkarbutek
 
Student Support Services on Banner Self-Service
Student Support Services on Banner Self-ServiceStudent Support Services on Banner Self-Service
Student Support Services on Banner Self-ServiceKhalid Tariq
 
디지털미디어특강_soundcloud
디지털미디어특강_soundcloud디지털미디어특강_soundcloud
디지털미디어특강_soundcloudbretonyj
 
Transfers Overview
Transfers OverviewTransfers Overview
Transfers Overviewpulse20
 
Hackday sf 2011
Hackday sf 2011Hackday sf 2011
Hackday sf 2011
Eric Wahlforss
 
Disruptive Media Conference
Disruptive Media ConferenceDisruptive Media Conference
Disruptive Media Conference
Eric Wahlforss
 
My Life
My LifeMy Life
My Life
331904
 
Trustmojo: Architectures For Trust
Trustmojo: Architectures For TrustTrustmojo: Architectures For Trust
Trustmojo: Architectures For Trust
Eric Wahlforss
 
Sound cloud analysis
Sound cloud analysisSound cloud analysis
Sound cloud analysis
alexplatt
 
Sound & Clouds: Reboot 10 Talk
Sound & Clouds: Reboot 10 TalkSound & Clouds: Reboot 10 Talk
Sound & Clouds: Reboot 10 TalkEric Wahlforss
 
Latest SoundCloud Market Research on Vertical Expansion
Latest SoundCloud Market Research on Vertical ExpansionLatest SoundCloud Market Research on Vertical Expansion
Latest SoundCloud Market Research on Vertical ExpansionInes Chen
 
Impresos relativos a_la_declaracion_independencia_-_altamiro_avila
Impresos relativos a_la_declaracion_independencia_-_altamiro_avilaImpresos relativos a_la_declaracion_independencia_-_altamiro_avila
Impresos relativos a_la_declaracion_independencia_-_altamiro_avila
Torres Saavedra Nelson Alberto
 

Viewers also liked (20)

SoundCloud API Do:s and Don't:s
SoundCloud API Do:s and Don't:sSoundCloud API Do:s and Don't:s
SoundCloud API Do:s and Don't:s
 
SoundCloud - Platforma za dijeljenje audiozapisa
SoundCloud - Platforma za dijeljenje audiozapisaSoundCloud - Platforma za dijeljenje audiozapisa
SoundCloud - Platforma za dijeljenje audiozapisa
 
SoundCloud @ Music Hackday Barcelona 2010
SoundCloud @ Music Hackday Barcelona 2010SoundCloud @ Music Hackday Barcelona 2010
SoundCloud @ Music Hackday Barcelona 2010
 
SoundCloud API Learnings
SoundCloud API LearningsSoundCloud API Learnings
SoundCloud API Learnings
 
SoundCloud Presentation @ AWS Startup Event London
SoundCloud Presentation @ AWS Startup Event LondonSoundCloud Presentation @ AWS Startup Event London
SoundCloud Presentation @ AWS Startup Event London
 
SoundCloud Platform Do:s and Don't:s at How To Web 2011
SoundCloud Platform Do:s and Don't:s at How To Web 2011SoundCloud Platform Do:s and Don't:s at How To Web 2011
SoundCloud Platform Do:s and Don't:s at How To Web 2011
 
Sound cloud
Sound cloudSound cloud
Sound cloud
 
Student Support Services on Banner Self-Service
Student Support Services on Banner Self-ServiceStudent Support Services on Banner Self-Service
Student Support Services on Banner Self-Service
 
디지털미디어특강_soundcloud
디지털미디어특강_soundcloud디지털미디어특강_soundcloud
디지털미디어특강_soundcloud
 
Transfers Overview
Transfers OverviewTransfers Overview
Transfers Overview
 
Hackday sf 2011
Hackday sf 2011Hackday sf 2011
Hackday sf 2011
 
Disruptive Media Conference
Disruptive Media ConferenceDisruptive Media Conference
Disruptive Media Conference
 
My Life
My LifeMy Life
My Life
 
Trustmojo: Architectures For Trust
Trustmojo: Architectures For TrustTrustmojo: Architectures For Trust
Trustmojo: Architectures For Trust
 
Sound cloud analysis
Sound cloud analysisSound cloud analysis
Sound cloud analysis
 
Sound & Clouds: Reboot 10 Talk
Sound & Clouds: Reboot 10 TalkSound & Clouds: Reboot 10 Talk
Sound & Clouds: Reboot 10 Talk
 
Latest SoundCloud Market Research on Vertical Expansion
Latest SoundCloud Market Research on Vertical ExpansionLatest SoundCloud Market Research on Vertical Expansion
Latest SoundCloud Market Research on Vertical Expansion
 
Soundcloud PPT-3
Soundcloud PPT-3Soundcloud PPT-3
Soundcloud PPT-3
 
Instrucciones de-acceso-al-portal
Instrucciones de-acceso-al-portalInstrucciones de-acceso-al-portal
Instrucciones de-acceso-al-portal
 
Impresos relativos a_la_declaracion_independencia_-_altamiro_avila
Impresos relativos a_la_declaracion_independencia_-_altamiro_avilaImpresos relativos a_la_declaracion_independencia_-_altamiro_avila
Impresos relativos a_la_declaracion_independencia_-_altamiro_avila
 

Similar to m.soundcloud.com

SeaBeyond 2011 ProcessOne - Eric Cestari: XMPP over WebSocket
SeaBeyond 2011 ProcessOne - Eric Cestari: XMPP over WebSocketSeaBeyond 2011 ProcessOne - Eric Cestari: XMPP over WebSocket
SeaBeyond 2011 ProcessOne - Eric Cestari: XMPP over WebSocketProcessOne
 
Future of web_apps
Future of web_appsFuture of web_apps
Future of web_apps
Lakshan Perera
 
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins WayOpening opensource : The Jenkins Way
Opening opensource : The Jenkins WayNicolas De Loof
 
What's New in GWT 2.2
What's New in GWT 2.2What's New in GWT 2.2
What's New in GWT 2.2
David Chandler
 
Hacking Selenium @ JSConf
Hacking Selenium @ JSConfHacking Selenium @ JSConf
Hacking Selenium @ JSConf
hugs
 
RunDeck
RunDeckRunDeck
RunDeck
Bruno Bonfils
 
Setting up Sphinx Development Environment
Setting up Sphinx Development EnvironmentSetting up Sphinx Development Environment
Setting up Sphinx Development Environment
Annamalai Chockalingam
 
CRX Best practices
CRX Best practicesCRX Best practices
CRX Best practiceslisui0807
 
Symony2 A Next Generation PHP Framework
Symony2 A Next Generation PHP FrameworkSymony2 A Next Generation PHP Framework
Symony2 A Next Generation PHP Framework
Ryan Weaver
 
eZ Publish 5 in depth inspection
eZ Publish 5 in depth inspectioneZ Publish 5 in depth inspection
eZ Publish 5 in depth inspection
Jérôme Vieilledent
 
High Availability from the DevOps side - OpenStack Summit Portland
High Availability from the DevOps side - OpenStack Summit PortlandHigh Availability from the DevOps side - OpenStack Summit Portland
High Availability from the DevOps side - OpenStack Summit PortlandeNovance
 
Academy PRO: Node.js alternative stacks. Lecture 3
Academy PRO: Node.js alternative stacks. Lecture 3Academy PRO: Node.js alternative stacks. Lecture 3
Academy PRO: Node.js alternative stacks. Lecture 3
Binary Studio
 
HAXTheWeb @ Apereo 19
HAXTheWeb @ Apereo 19HAXTheWeb @ Apereo 19
HAXTheWeb @ Apereo 19
btopro
 
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в KubernetesDevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps_Fest
 
Getting Started Running Apache Spark on Apache Mesos
Getting Started Running Apache Spark on Apache MesosGetting Started Running Apache Spark on Apache Mesos
Getting Started Running Apache Spark on Apache Mesos
Paco Nathan
 
Selenium2 and Jenkins: Almost pain-free UI Testing
Selenium2 and Jenkins: Almost pain-free UI TestingSelenium2 and Jenkins: Almost pain-free UI Testing
Selenium2 and Jenkins: Almost pain-free UI Testing
mikereedell
 
History of Android Security – from linux to jelly bean
History of Android Security – from linux to jelly beanHistory of Android Security – from linux to jelly bean
History of Android Security – from linux to jelly bean
Jung Pil (J.P.) Choi
 
Openstack win final
Openstack win finalOpenstack win final
Openstack win final
Jordan Rinke
 
Hack Shack workshop: Persist, optimize and accelerate using persistent storag...
Hack Shack workshop: Persist, optimize and accelerate using persistent storag...Hack Shack workshop: Persist, optimize and accelerate using persistent storag...
Hack Shack workshop: Persist, optimize and accelerate using persistent storag...
Michael Mattsson
 

Similar to m.soundcloud.com (20)

SeaBeyond 2011 ProcessOne - Eric Cestari: XMPP over WebSocket
SeaBeyond 2011 ProcessOne - Eric Cestari: XMPP over WebSocketSeaBeyond 2011 ProcessOne - Eric Cestari: XMPP over WebSocket
SeaBeyond 2011 ProcessOne - Eric Cestari: XMPP over WebSocket
 
Future of web_apps
Future of web_appsFuture of web_apps
Future of web_apps
 
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins WayOpening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
 
What's New in GWT 2.2
What's New in GWT 2.2What's New in GWT 2.2
What's New in GWT 2.2
 
Hacking Selenium @ JSConf
Hacking Selenium @ JSConfHacking Selenium @ JSConf
Hacking Selenium @ JSConf
 
RunDeck
RunDeckRunDeck
RunDeck
 
Setting up Sphinx Development Environment
Setting up Sphinx Development EnvironmentSetting up Sphinx Development Environment
Setting up Sphinx Development Environment
 
CRX Best practices
CRX Best practicesCRX Best practices
CRX Best practices
 
Symony2 A Next Generation PHP Framework
Symony2 A Next Generation PHP FrameworkSymony2 A Next Generation PHP Framework
Symony2 A Next Generation PHP Framework
 
eZ Publish 5 in depth inspection
eZ Publish 5 in depth inspectioneZ Publish 5 in depth inspection
eZ Publish 5 in depth inspection
 
High Availability from the DevOps side - OpenStack Summit Portland
High Availability from the DevOps side - OpenStack Summit PortlandHigh Availability from the DevOps side - OpenStack Summit Portland
High Availability from the DevOps side - OpenStack Summit Portland
 
Academy PRO: Node.js alternative stacks. Lecture 3
Academy PRO: Node.js alternative stacks. Lecture 3Academy PRO: Node.js alternative stacks. Lecture 3
Academy PRO: Node.js alternative stacks. Lecture 3
 
HAXTheWeb @ Apereo 19
HAXTheWeb @ Apereo 19HAXTheWeb @ Apereo 19
HAXTheWeb @ Apereo 19
 
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в KubernetesDevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
 
Getting Started Running Apache Spark on Apache Mesos
Getting Started Running Apache Spark on Apache MesosGetting Started Running Apache Spark on Apache Mesos
Getting Started Running Apache Spark on Apache Mesos
 
Selenium2 and Jenkins: Almost pain-free UI Testing
Selenium2 and Jenkins: Almost pain-free UI TestingSelenium2 and Jenkins: Almost pain-free UI Testing
Selenium2 and Jenkins: Almost pain-free UI Testing
 
5 Thomas Magedanz
5  Thomas Magedanz5  Thomas Magedanz
5 Thomas Magedanz
 
History of Android Security – from linux to jelly bean
History of Android Security – from linux to jelly beanHistory of Android Security – from linux to jelly bean
History of Android Security – from linux to jelly bean
 
Openstack win final
Openstack win finalOpenstack win final
Openstack win final
 
Hack Shack workshop: Persist, optimize and accelerate using persistent storag...
Hack Shack workshop: Persist, optimize and accelerate using persistent storag...Hack Shack workshop: Persist, optimize and accelerate using persistent storag...
Hack Shack workshop: Persist, optimize and accelerate using persistent storag...
 

Recently uploaded

Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 

Recently uploaded (20)

Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 

m.soundcloud.com

  • 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