Slide 1

Slide 1 text

Zen Mode: Developing While You're Offline John Blackbourn @johnbillion ✈

Slide 2

Slide 2 text

Let's go offline

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Welcome to Zen Mode ✈

Slide 5

Slide 5 text

How are you feeling?

Slide 6

Slide 6 text

Why go offline?

Slide 7

Slide 7 text

"I'm going offline for a while to concentrate"

Slide 8

Slide 8 text

Let's get to work

Slide 9

Slide 9 text

1. Preparation 2. Tools 3. Mindset 4. Reconnection 5. Backup Plan

Slide 10

Slide 10 text

1. Preparation

Slide 11

Slide 11 text

First, download the Internet

Slide 12

Slide 12 text

What will you work on?

Slide 13

Slide 13 text

Local environment •git clone --recursive •npm install •composer install •vagrant up

Slide 14

Slide 14 text

Local environment •Clone the GitHub wiki

Slide 15

Slide 15 text

Local environment •Identify assets on CDNs & other hosts •Install fonts locally

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Local environment •Spend time testing dependencies
 on external hosts •Improve resilience to network
 failures for end users

Slide 18

Slide 18 text

Connect before you disconnect

Slide 19

Slide 19 text

Connect before you disconnect •Dropbox •Google Drive •Email client •git fetch --all

Slide 20

Slide 20 text

Communicate •Tell your colleagues & clients
 when you're going offline

Slide 21

Slide 21 text

2. Tools

Slide 22

Slide 22 text

Offline documentation

Slide 23

Slide 23 text

Offline documentation •Dash for Mac •Zeal for Windows & Linux

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

Offline documentation •man grep •wp --help

Slide 30

Slide 30 text

Working offline Airplane Mode •Blocks external JS and CSS •Replaces Gravatar with local image •Removes HTTP API requests •Disables update checks

Slide 31

Slide 31 text

Airplane Mode on Airplane Mode off 0.39s 2.35s

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

Working offline Mocking, not Blocking

Slide 35

Slide 35 text

Working offline Charles HTTP Proxy •DNS spoofing •Monitoring, throttling, recording •Breakpoints & rewriting •Mapping to local files

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

Working offline Capturing emails •MailHog - for all outgoing email •Email Log - for wp_mail()

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

3. Mindset

Slide 43

Slide 43 text

Embrace offline

Slide 44

Slide 44 text

Change your habits

Slide 45

Slide 45 text

See the benefits to others

Slide 46

Slide 46 text

See the benefits to you

Slide 47

Slide 47 text

Always be charging

Slide 48

Slide 48 text

4. Reconnection

Slide 49

Slide 49 text

Avoid the immediate social binge

Slide 50

Slide 50 text

Action points

Slide 51

Slide 51 text

Problems?

Slide 52

Slide 52 text

5. Backup Plan

Slide 53

Slide 53 text

Documentation •Inline docblocks •Update that readme •Wiki pages

Slide 54

Slide 54 text

Learning & reading

Slide 55

Slide 55 text

Non development work

Slide 56

Slide 56 text

If all else fails

Slide 57

Slide 57 text

thedisconnect.co

Slide 58

Slide 58 text

John Blackbourn @johnbillion ✈