Slide 1

Slide 1 text

This slide will help you be faster and more efficient Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 2

Slide 2 text

Here's a workflow: Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 3

Slide 3 text

Finish some code run rubocop & linter commit code create pull request Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 4

Slide 4 text

A 10 step process Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 5

Slide 5 text

• bundle exec rubocop -aD • git status • git add • git commit • Edit message in editor Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 6

Slide 6 text

• git push origin • open GitHub • Click to create pull request • Edit to taste • Create Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 7

Slide 7 text

Memorize 5 commands Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 8

Slide 8 text

What's most important? Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 9

Slide 9 text

This is probably not your process Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 10

Slide 10 text

Novice vs. Expert workflow Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 11

Slide 11 text

The Developer's Toolkit Noel Rappin (@noelrap) h"ps:/ /www.tablexi.com/kickstarter h"p:/ /techdoneright.io h"p:/ /www.noelrappin.com h"p:/ /bit.ly/dev-toolkit-cheat Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 12

Slide 12 text

What makes a tool useful? Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 13

Slide 13 text

We have to a)end to detail Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 14

Slide 14 text

Brains have a limited ability to focus Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 15

Slide 15 text

Stay focused on important stuff Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 16

Slide 16 text

Not about saving keystrokes... Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 17

Slide 17 text

Memory and focus Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 18

Slide 18 text

Our tools are complex and flexible Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 19

Slide 19 text

We expect complexity Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 20

Slide 20 text

We valorize complexity Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 21

Slide 21 text

Command line tools are great Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 22

Slide 22 text

They are also opaque and memory intensive Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 23

Slide 23 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 24

Slide 24 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 25

Slide 25 text

You don't need to be a CLI expert to be a real programmer Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 26

Slide 26 text

Types of tools Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 27

Slide 27 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 28

Slide 28 text

Opaque Years To Learn Idiosyncra+c setup Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 29

Slide 29 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 30

Slide 30 text

As an entry-level developer, learning vim may not be the best use of your -me. Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 31

Slide 31 text

(as an senior developer, it also might not be) Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 32

Slide 32 text

The success of Vim means we don't understand exper%se, UX, or workflow Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 33

Slide 33 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 34

Slide 34 text

Single use But pre(y easy to use Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 35

Slide 35 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 36

Slide 36 text

Trivial to use once set up Has unexpected uses Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 37

Slide 37 text

So what? Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 38

Slide 38 text

Choose your stenotypes very carefully Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 39

Slide 39 text

You have limited counter space for waffle irons Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 40

Slide 40 text

But curb cuts... you can have oodles of them Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 41

Slide 41 text

The good stuff Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 42

Slide 42 text

Shell Prompt Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 43

Slide 43 text

How to handle aliases.. Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 44

Slide 44 text

Command History Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 45

Slide 45 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 46

Slide 46 text

Jump h"ps:/ /github.com/gsamokovarov/jump Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 47

Slide 47 text

Fuzzy finder h"ps:/ /github.com/junegunn/fzf Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 48

Slide 48 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 49

Slide 49 text

Please use ITerm2 Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 50

Slide 50 text

Click to open Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 51

Slide 51 text

Op#on-click to posi%on mouse Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 52

Slide 52 text

Let's talk about Git Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 53

Slide 53 text

Git hooks Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 54

Slide 54 text

.git/hooks/pre-commit .git/hooks/pre-push Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 55

Slide 55 text

bundle exec rubocop --force-exclusion \ `git ls-tree -r HEAD --name-only` Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 56

Slide 56 text

Use a Git GUI tool like Fork Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 57

Slide 57 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 58

Slide 58 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 59

Slide 59 text

GitHub T Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 60

Slide 60 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 61

Slide 61 text

Github Push Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 62

Slide 62 text

GitHub hub h"ps:/ /hub.github.com Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 63

Slide 63 text

alias gitprq='git pull-request --no-edit --browse --push' Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 64

Slide 64 text

Editor Tricks Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 65

Slide 65 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 66

Slide 66 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 67

Slide 67 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 68

Slide 68 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 69

Slide 69 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 70

Slide 70 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 71

Slide 71 text

Also Git and GitHub support Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 72

Slide 72 text

Fira Code Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 73

Slide 73 text

Web-Based Waffle Irons Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 74

Slide 74 text

Rubular Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 75

Slide 75 text

Str$ime Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 76

Slide 76 text

Some General Mac U&li&es Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 77

Slide 77 text

Alfred Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 78

Slide 78 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 79

Slide 79 text

Be#er Touch Tool Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 80

Slide 80 text

Dash Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 81

Slide 81 text

Transmit Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 82

Slide 82 text

Sequel Pro Pos$co Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 83

Slide 83 text

Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 84

Slide 84 text

Window manager Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 85

Slide 85 text

The Touch Bar Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 86

Slide 86 text

VS Code Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 87

Slide 87 text

ITerm2 Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 88

Slide 88 text

Remember the task? Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 89

Slide 89 text

Finish some code run rubocop commit create PR Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 90

Slide 90 text

What I actually do • Open Fork • examine changes easily • Edit commit message in fork • Commit -- rubocop runs automa=cally • gitprq (or fork) (or click link) Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 91

Slide 91 text

This has fewer steps Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 92

Slide 92 text

Faster Less prone to mistakes Less to memorize Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 93

Slide 93 text

Focus on important parts Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 94

Slide 94 text

How to evaluate a tool Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 95

Slide 95 text

Just knowing there's something to be improved is a big first step Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 96

Slide 96 text

Things to look for: Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 97

Slide 97 text

I do these steps all the 'me Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 98

Slide 98 text

I make this mistake a lot Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 99

Slide 99 text

I wish I could see... Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap

Slide 100

Slide 100 text

Noel Rappin (@noelrap) h"p:/ /pragprog.com/book/nrtest3 h"p:/ /tablexi.com/kickstarter h"p:/ /techdoneright.io h"p:/ /bit.ly/dev-toolkit-cheat Noel Rappin | The Developer's Toolkit | RubyConf 2018 | h>ps:/ /www.tablexi.com | @noelrap