Slide 1

Slide 1 text

BUILD HIGHER RailsConf 2014 Yehuda Katz @wycats Co-founder Tilde Inc

Slide 2

Slide 2 text

10 Years!

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

"CONVENTION OVER CONFIGURATION"

Slide 5

Slide 5 text

PARADOX OF CHOICE

Slide 6

Slide 6 text

People like choices a lot more than they like having to choose. DHH Basecamp

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

EGO DEPLETION

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

!

Slide 14

Slide 14 text

COGNITIVE DEPLETION

Slide 15

Slide 15 text

willpower challenging tasks cognitive dissonance making choices "Paradox of Choice" "Ego Depletion" "Decision Fatigue" heated discussions

Slide 16

Slide 16 text

SOLUTION: PSYCHOLOGICAL HACKS

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

DEFAULTS

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

Most Surprising App on Home Screen: Operator ! “It’s a custom-designed, one-of-a-kind bespoke app I had built for my assistant and I to communicate and collaborate through.”

Slide 25

Slide 25 text

"This is a toolset for building the framework most suited to your application development"

Slide 26

Slide 26 text

In an ecosystem where overarching, decides-everything-for-you frameworks are commonplace, and many libraries require your site to be reorganized to suit their look, feel, and default behavior — we should continue to be a tool that gives you the freedom to design the full experience of your web application

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

"THE LAW OF LEAKY ABSTRACTIONS"

Slide 29

Slide 29 text

"THE LAW OF LEAKY ABSTRACTIONS"

Slide 30

Slide 30 text

But I'd also argue that virtually all good programming abstractions are failed abstractions. I don't think I've ever used one that didn't leak like a sieve. But I think that's an awfully architecture astronaut way of looking at things. Jeff Atwood Discourse

Slide 31

Slide 31 text

Instead, let's ask ourselves a more pragmatic question: ! "Does this abstraction make our code at least a little easier to write? To understand? To troubleshoot? Are we better off with this abstraction than we were without it?" Jeff Atwood Discourse

Slide 32

Slide 32 text

It's our job as modern programmers not to abandon abstractions due to these deficiencies, but to embrace the useful elements of them, to adapt the working parts and construct ever so slightly less leaky and broken abstractions over time. Jeff Atwood Discourse

Slide 33

Slide 33 text

x86 C Linux x86-64 ARM OSX NT Kernel POSIX Ruby Rack Rails x86 C Linux x86-64 ARM OSX POSIX libuv Node Core Windows NT Kernel Windows

Slide 34

Slide 34 text

SHARED SOLUTIONS

Slide 35

Slide 35 text

PROGRESS

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

x86 C Linux x86-64 ARM OSX NT Kernel POSIX Ruby Rack Rails x86 C Linux x86-64 ARM OSX POSIX libuv Node Core Windows NT Kernel Windows

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

START ON THE 400TH FLOOR

Slide 40

Slide 40 text

Shared Solution Area of Experimentation

Slide 41

Slide 41 text

CONVENTION OVER CONFIGURATION

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

RAILS IS NOT THE ONLY WAY TO SHARE

Slide 45

Slide 45 text

Resque ? ? Sidekiq DelayedJob ? ? ? ? ? ??? ?

Slide 46

Slide 46 text

Q Promises/A+ DOM Promises RSVP Sparrow Q.async async function ? ??? Task.js

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

No content