What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's...
Transcript of What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's...
![Page 1: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/1.jpg)
![Page 3: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/3.jpg)
Contains opinions - not just facts. Beware!
![Page 4: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/4.jpg)
102 presentations
![Page 5: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/5.jpg)
in 82 slides
![Page 6: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/6.jpg)
in 30 minutes
![Page 7: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/7.jpg)
"The Web Platform"
Dion Almaer, Ajaxian.comBen Galbraith, Ajaxian.com
![Page 8: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/8.jpg)
![Page 9: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/9.jpg)
Acceptable delay
![Page 10: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/10.jpg)
Instantaneous / Snappy< 0.1 sec
User stays in flow< 1 sec
![Page 11: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/11.jpg)
Instantaneous / Snappy< 0.1 sec
User stays in flow< 1 sec
![Page 12: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/12.jpg)
Instantaneous / Snappy< 0.1 sec
User stays in flow< 1 sec
![Page 13: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/13.jpg)
❤Developers must
LOVEthe development tools
![Page 14: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/14.jpg)
ManagingExpectations
![Page 15: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/15.jpg)
![Page 16: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/16.jpg)
![Page 17: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/17.jpg)
![Page 18: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/18.jpg)
Canvas for everything!
![Page 19: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/19.jpg)
S P E E D !
[ DOM is slow ]
![Page 20: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/20.jpg)
IE?
![Page 21: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/21.jpg)
Jef Raskin(March 9, 1943–February 26, 2005)
![Page 22: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/22.jpg)
“As far as the customer is concerned, the interface is the
product.”
![Page 23: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/23.jpg)
“A computer shall not waste your time or
require you to do more work than is strictly
necessary.”
![Page 24: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/24.jpg)
“The system should treat all user input as
sacred.”
![Page 25: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/25.jpg)
“Once the product's task is known, design
the interface first; then implement to the interface design.”
![Page 26: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/26.jpg)
Ask users what they want, but never let the
users design your application.
(not a quote)
![Page 27: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/27.jpg)
"Pragmatic Real-World Scala"
Jonas Bonér, Scalable Solutions
![Page 28: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/28.jpg)
Java
![Page 29: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/29.jpg)
Scala
![Page 30: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/30.jpg)
"What happens when David Hasselhoff meets
the cloud"
Chief Executive Monkey Stefan Fountain, Soocial
![Page 31: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/31.jpg)
![Page 32: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/32.jpg)
Hassle-free
contacts
![Page 33: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/33.jpg)
elastic ip elastic ip
webserver
webserver
webserver
syncserver
syncserver
haproxy haproxy
pgpool pgpool pgpool pgpool pgpool
postgresqlserver
postgresqlserver
postgresqlserver
![Page 34: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/34.jpg)
"Cloud Data Persistence"
Geir Magnusson
![Page 35: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/35.jpg)
BigTable
![Page 36: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/36.jpg)
800TB in a TableRead: 18GB/sec
![Page 37: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/37.jpg)
![Page 38: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/38.jpg)
![Page 39: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/39.jpg)
![Page 40: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/40.jpg)
Cassandra[ facebook ]
![Page 41: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/41.jpg)
![Page 42: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/42.jpg)
![Page 43: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/43.jpg)
![Page 44: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/44.jpg)
distributed, fault-tolerant and schema-free document-oriented database accessible
via a RESTful HTTP/JSON
![Page 45: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/45.jpg)
![Page 46: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/46.jpg)
"Situation normal, everything must
change"
Simon Wardley, Canonical (Ubuntu)
![Page 47: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/47.jpg)
Commoditization
![Page 48: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/48.jpg)
innovation
![Page 49: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/49.jpg)
innovation bespoke
![Page 50: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/50.jpg)
innovation bespoke products
![Page 51: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/51.jpg)
innovation bespoke products services
![Page 52: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/52.jpg)
*aas
![Page 53: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/53.jpg)
data
app
platform
infra[ os, hw, ... ]
Users Users Users
![Page 54: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/54.jpg)
enterprise saas paas iaas
data
app
platform
infra[ os, hw, ... ]
![Page 55: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/55.jpg)
![Page 57: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/57.jpg)
"Groovy and Grails In Depth"
Graeme Rocher, Grails Project Lead
![Page 58: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/58.jpg)
Good ideas from Ruby, Python, Small Talk
•
Integrates with Java•
Runs on JVM
![Page 59: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/59.jpg)
GrailsWeb platform - End-to-end from mnv to ORM[ on top of Hibernate, Maven, Web Flow, Quartz, Spring, ... ]
![Page 60: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/60.jpg)
Unbelievable plugin -system
grails create-auth-domainsgrails create-registration
grails create-wiki...
![Page 61: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/61.jpg)
Grails -Weapon of mass
destruction?
![Page 62: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/62.jpg)
"Windows Azure"
Beat Schwegler
![Page 63: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/63.jpg)
Service
Your service
LB
LB
Web Role
Worker Role
Tables Blobs
Queue
Users
![Page 64: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/64.jpg)
64 bit Window Server 2008
1.5-1.7 GHz x64 CPU
100Mps Network
250GB local storage
1.7GB Memory
![Page 65: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/65.jpg)
"Systems that never stop (and Erlang)"
Joe Armstrong
![Page 66: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/66.jpg)
Six Laws of reliability
-
How to make a system that runs for ever?
![Page 67: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/67.jpg)
I
ISOLATION
![Page 68: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/68.jpg)
Are two Java threads running in one VM really isolated?
![Page 69: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/69.jpg)
II
CONCURRENCY
![Page 70: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/70.jpg)
You must have at least TWO computers
[ computers might crash ]
![Page 71: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/71.jpg)
“They forgot to put concurrency in programming languages”
![Page 72: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/72.jpg)
III
MUST DETECT FAILURES
![Page 73: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/73.jpg)
How to correct them if you do not know about them?
![Page 74: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/74.jpg)
IV
FAILURE IDENTIFICATION
![Page 75: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/75.jpg)
V
LIVE CODE UPGRADE
![Page 76: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/76.jpg)
VI
STABLE STORAGE
![Page 77: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/77.jpg)
No backups!
![Page 78: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/78.jpg)
![Page 79: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/79.jpg)
"Improving Running Components"
Evan Weaver, Twitter
![Page 80: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/80.jpg)
Rails
C
Scala
Java
MySQL
![Page 81: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/81.jpg)
“Ruby is optimization resistant”
=> Scala
![Page 82: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/82.jpg)
Optimization plan
1. stop working2. share the work
3. work faster
![Page 83: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/83.jpg)
“Everything runs from memory in Web 2.0”
[ in many cases memcached is the key ]
![Page 84: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/84.jpg)
API Web
Page cache
Fragment cache
Row cache
Vector cache
DB DB DB
Mem
cach
ed
![Page 85: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/85.jpg)
Obama mania350 tweets / sec
Normally80 tweets / sec
![Page 86: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/86.jpg)
each is delivered toaround 120 followers
![Page 87: What I learned @ QConshare.jole.fi.s3.amazonaws.com/blog/2009/QCON-Recap.pdf“Once the product's task is known, design the interface first; then implement to the interface design.”](https://reader035.fdocuments.net/reader035/viewer/2022081607/5ed3cb1f7ac79b44002012bf/html5/thumbnails/87.jpg)
Adds up to ~1 billion tweet deliveries / day