WEBVTT

1
00:00:03.600 --> 00:00:06.600
<00:00:03.600>Thank <00:00:03.833>you <00:00:04.066>very <00:00:04.300>much. <00:00:04.533>So <00:00:04.766>thanks <00:00:05.000>everybody

2
00:00:06.600 --> 00:00:07.700
<00:00:06.600>for <00:00:06.930>being <00:00:07.260>here <00:00:07.590>and

3
00:00:10.100 --> 00:00:13.400
<00:00:10.100>wanting <00:00:10.240>to <00:00:10.379>learn <00:00:10.520>about <00:00:10.660>being <00:00:10.799>a <00:00:10.940>little <00:00:11.080>bit <00:00:11.219>more <00:00:11.360>safe <00:00:11.500>with

4
00:00:13.400 --> 00:00:16.100
<00:00:13.400>your <00:00:13.600>code. <00:00:13.800>So <00:00:14.000>as <00:00:14.200>I <00:00:14.400>was <00:00:14.600>introduced, <00:00:14.800>I'm

5
00:00:16.100 --> 00:00:19.500
<00:00:16.100>Dwayne. <00:00:16.216>I <00:00:16.333>live <00:00:16.450>in <00:00:16.566>Chicago, <00:00:16.683>Illinois. <00:00:16.800>I'm <00:00:16.916>joining <00:00:17.033>you <00:00:17.150>from <00:00:17.266>San <00:00:17.383>Francisco <00:00:17.500>today,

6
00:00:19.500 --> 00:00:20.500
but

7
00:00:22.200 --> 00:00:25.500
<00:00:22.200>I <00:00:22.340>live <00:00:22.480>on <00:00:22.619>the <00:00:22.759>internet. <00:00:22.900>Mostly. <00:00:23.040>I <00:00:23.180>also <00:00:23.320>host <00:00:23.460>a <00:00:23.599>security

8
00:00:25.500 --> 00:00:28.400
<00:00:25.500>repo <00:00:25.655>podcast. <00:00:25.811>That's <00:00:25.966>what <00:00:26.122>it's <00:00:26.277>called <00:00:26.433>the <00:00:26.588>security <00:00:26.744>repo <00:00:26.900>podcast

9
00:00:28.400 --> 00:00:31.600
<00:00:28.400>with <00:00:28.680>my <00:00:28.959>colleague <00:00:29.240>here <00:00:29.520>at <00:00:29.799>get

10
00:00:31.600 --> 00:00:34.700
<00:00:31.600>Guardian <00:00:31.880>McKenzie. <00:00:32.160>We <00:00:32.439>talked <00:00:32.720>to <00:00:33.000>experts

11
00:00:34.700 --> 00:00:37.200
<00:00:34.700>from <00:00:34.800>around <00:00:34.900>the <00:00:35.000>world. <00:00:35.100>So <00:00:35.200>check <00:00:35.300>that <00:00:35.400>out <00:00:35.500>if <00:00:35.600>you <00:00:35.700>get <00:00:35.800>a <00:00:35.900>chance <00:00:36.000>and <00:00:36.100>you

12
00:00:37.200 --> 00:00:40.700
<00:00:37.200>like <00:00:37.400>podcasts, <00:00:37.600>I'm <00:00:37.800>on <00:00:38.000>the <00:00:38.200>social <00:00:38.400>medias <00:00:38.600>at

13
00:00:40.700 --> 00:00:43.900
<00:00:40.700>MC <00:00:40.933>Dwayne <00:00:41.166>over <00:00:41.400>on <00:00:41.633>Mastodon <00:00:41.866>social. <00:00:42.100>I'm

14
00:00:43.900 --> 00:00:46.900
<00:00:43.900>more <00:00:44.074>and <00:00:44.250>more <00:00:44.425>there <00:00:44.600>these <00:00:44.775>days <00:00:44.949>over <00:00:45.125>Twitter, <00:00:45.300>but

15
00:00:46.900 --> 00:00:49.500
<00:00:46.900>I'm <00:00:47.180>on <00:00:47.460>both <00:00:47.739>honestly <00:00:48.019>and <00:00:48.300>hit

16
00:00:49.500 --> 00:00:52.300
<00:00:49.500>me <00:00:49.640>up <00:00:49.780>about <00:00:49.920>anything. <00:00:50.060>Like <00:00:50.200>I <00:00:50.340>was <00:00:50.480>introduced <00:00:50.620>a <00:00:50.760>little <00:00:50.900>rock

17
00:00:52.300 --> 00:00:55.700
<00:00:52.300>and <00:00:52.500>roll. <00:00:52.699>I <00:00:52.900>love <00:00:53.099>performing <00:00:53.300>improv <00:00:53.500>all <00:00:53.699>of

18
00:00:55.700 --> 00:00:58.200
<00:00:55.700>karaoke. <00:00:55.840>You <00:00:55.980>want <00:00:56.120>to <00:00:56.260>talk <00:00:56.400>about <00:00:56.540>those <00:00:56.680>things <00:00:56.820>or <00:00:56.960>remember <00:00:57.100>in

19
00:00:58.200 --> 00:01:01.500
<00:00:58.200>your <00:00:58.287>area <00:00:58.375>and <00:00:58.462>you <00:00:58.550>want <00:00:58.637>to <00:00:58.725>go <00:00:58.812>do <00:00:58.900>one <00:00:58.987>of <00:00:59.075>those <00:00:59.162>things <00:00:59.250>I <00:00:59.337>will <00:00:59.425>always <00:00:59.512>be <00:00:59.600>down

20
00:01:01.500 --> 00:01:02.900
<00:01:01.500>to <00:01:01.710>go <00:01:01.920>do <00:01:02.130>that <00:01:02.339>stuff <00:01:02.550>with <00:01:02.760>you.

21
00:01:04.500 --> 00:01:07.300
<00:01:04.500>So <00:01:04.616>I <00:01:04.733>work <00:01:04.849>for <00:01:04.966>a <00:01:05.083>company <00:01:05.200>called <00:01:05.316>get <00:01:05.433>guardian. <00:01:05.550>We <00:01:05.666>are <00:01:05.783>a <00:01:05.900>platform

22
00:01:07.300 --> 00:01:10.400
<00:01:07.300>as <00:01:07.440>a <00:01:07.580>service. <00:01:07.720>We <00:01:07.860>also <00:01:08.000>make <00:01:08.140>a <00:01:08.280>standalone <00:01:08.420>version, <00:01:08.560>but <00:01:08.700>we're

23
00:01:10.400 --> 00:01:13.800
<00:01:10.400>obsessed <00:01:10.555>with <00:01:10.711>helping <00:01:10.866>people <00:01:11.022>figure <00:01:11.177>out <00:01:11.333>where <00:01:11.488>their <00:01:11.644>hard-coded <00:01:11.800>secrets

24
00:01:13.800 --> 00:01:15.200
<00:01:13.800>are <00:01:14.430>throughout <00:01:15.060>their

25
00:01:17.200 --> 00:01:20.500
<00:01:17.200>Throughout <00:01:17.400>their <00:01:17.600>source <00:01:17.800>code <00:01:18.000>whether <00:01:18.200>that's <00:01:18.400>at <00:01:18.600>the

26
00:01:20.500 --> 00:01:22.900
<00:01:20.500>local <00:01:20.700>development <00:01:20.900>level <00:01:21.100>or <00:01:21.300>out <00:01:21.500>their <00:01:21.700>CI <00:01:21.900>environments.

27
00:01:23.700 --> 00:01:26.800
<00:01:23.700>Detect <00:01:23.875>where <00:01:24.050>those <00:01:24.225>secrets <00:01:24.400>of <00:01:24.575>leaks <00:01:24.750>and <00:01:24.925>then <00:01:25.100>give

28
00:01:26.800 --> 00:01:29.600
<00:01:26.800>you <00:01:26.927>a <00:01:27.054>platform <00:01:27.181>to <00:01:27.309>figure <00:01:27.436>out <00:01:27.563>what <00:01:27.690>to <00:01:27.818>do <00:01:27.945>about <00:01:28.072>them <00:01:28.200>with

29
00:01:29.600 --> 00:01:33.000
<00:01:29.600>just <00:01:29.755>our <00:01:29.911>releasing <00:01:30.066>a <00:01:30.222>honey <00:01:30.377>token <00:01:30.533>product <00:01:30.688>this <00:01:30.844>week <00:01:31.000>won't

30
00:01:32.200 --> 00:01:35.700
<00:01:32.200>we <00:01:32.375>mentioned <00:01:32.550>anywhere <00:01:32.725>on <00:01:32.900>this <00:01:33.075>talk? <00:01:33.250>But <00:01:33.425>honey <00:01:33.600>tokens

31
00:01:35.700 --> 00:01:38.300
<00:01:35.700>are <00:01:35.855>credentials <00:01:36.011>that <00:01:36.166>don't <00:01:36.322>go <00:01:36.477>to <00:01:36.633>anything <00:01:36.788>but <00:01:36.944>use <00:01:37.100>them

32
00:01:38.300 --> 00:01:41.100
<00:01:38.300>gives <00:01:38.533>you <00:01:38.766>an <00:01:39.000>alert <00:01:39.233>so <00:01:39.466>you <00:01:39.700>can

33
00:01:41.100 --> 00:01:42.400
<00:01:41.100>set <00:01:41.685>threats <00:01:42.270>earlier.

34
00:01:43.300 --> 00:01:45.900
<00:01:43.300>It's <00:01:43.393>all <00:01:43.486>I'll <00:01:43.580>say <00:01:43.673>about <00:01:43.766>that. <00:01:43.860>You <00:01:43.953>can <00:01:44.046>go <00:01:44.140>to <00:01:44.233>their <00:01:44.326>website <00:01:44.420>to <00:01:44.513>find <00:01:44.606>out <00:01:44.700>more.

35
00:01:47.200 --> 00:01:50.200
<00:01:47.200>But <00:01:47.316>what <00:01:47.433>I'm <00:01:47.550>really <00:01:47.666>here <00:01:47.783>to <00:01:47.900>talk <00:01:48.016>about <00:01:48.133>is <00:01:48.250>this <00:01:48.366>constant <00:01:48.483>cat <00:01:48.600>and

36
00:01:50.200 --> 00:01:51.500
<00:01:50.200>mouse <00:01:50.434>game <00:01:50.668>that <00:01:50.902>we're <00:01:51.136>all <00:01:51.370>playing.

37
00:01:52.400 --> 00:01:56.000
<00:01:52.400>All <00:01:52.575>the <00:01:52.750>time <00:01:52.925>if <00:01:53.100>you <00:01:53.275>work <00:01:53.450>in <00:01:53.625>development <00:01:53.800>and

38
00:01:55.200 --> 00:01:58.300
<00:01:55.200>that <00:01:55.433>is <00:01:55.666>that <00:01:55.900>developers <00:01:56.133>are <00:01:56.366>constantly <00:01:56.600>trying

39
00:01:58.300 --> 00:02:01.900
<00:01:58.300>to <00:01:58.533>guard <00:01:58.766>their <00:01:59.000>code <00:01:59.233>from <00:01:59.466>attackers <00:01:59.700>and

40
00:02:01.900 --> 00:02:04.500
<00:02:01.900>they're <00:02:02.100>not <00:02:02.300>on <00:02:02.500>their <00:02:02.700>own <00:02:02.900>security <00:02:03.100>teams <00:02:03.300>are

41
00:02:04.500 --> 00:02:07.600
<00:02:04.500>there <00:02:04.675>to <00:02:04.850>help <00:02:05.025>them <00:02:05.200>out, <00:02:05.375>but <00:02:05.550>from <00:02:05.725>the <00:02:05.900>security

42
00:02:07.600 --> 00:02:10.100
<00:02:07.600>team <00:02:07.740>that <00:02:07.880>doesn't <00:02:08.019>talk <00:02:08.160>to <00:02:08.299>developer <00:02:08.440>and <00:02:08.579>the <00:02:08.720>developer <00:02:08.859>doesn't <00:02:09.000>talk

43
00:02:10.100 --> 00:02:13.200
<00:02:10.100>to <00:02:10.227>the <00:02:10.354>security <00:02:10.481>team. <00:02:10.609>It <00:02:10.736>can <00:02:10.863>feel <00:02:10.990>very <00:02:11.118>isolating <00:02:11.245>and <00:02:11.372>very <00:02:11.500>scary

44
00:02:13.200 --> 00:02:16.400
<00:02:13.200>out <00:02:13.327>there. <00:02:13.454>We're <00:02:13.581>going <00:02:13.709>to <00:02:13.836>talk <00:02:13.963>about <00:02:14.090>a <00:02:14.218>few <00:02:14.345>scary <00:02:14.472>examples <00:02:14.600>of

45
00:02:16.400 --> 00:02:18.700
<00:02:16.400>where <00:02:16.680>that <00:02:16.960>communication <00:02:17.240>between <00:02:17.520>security <00:02:17.800>and

46
00:02:19.500 --> 00:02:22.600
<00:02:19.500>the <00:02:19.655>dev <00:02:19.811>team <00:02:19.966>has <00:02:20.122>broken <00:02:20.277>down <00:02:20.433>a <00:02:20.588>bit <00:02:20.744>and <00:02:20.900>what

47
00:02:22.600 --> 00:02:25.700
<00:02:22.600>that <00:02:22.739>has <00:02:22.880>looked <00:02:23.019>like <00:02:23.160>in <00:02:23.299>the <00:02:23.440>real <00:02:23.579>world. <00:02:23.720>So <00:02:23.859>if <00:02:24.000>you

48
00:02:25.700 --> 00:02:28.300
<00:02:25.700>get <00:02:25.875>a <00:02:26.049>little <00:02:26.225>panicky <00:02:26.399>if <00:02:26.575>you <00:02:26.750>ever <00:02:26.924>find <00:02:27.100>yourself,

49
00:02:28.300 --> 00:02:31.800
<00:02:28.300>wow, <00:02:28.475>this <00:02:28.650>is <00:02:28.825>a <00:02:29.000>little <00:02:29.175>scarier <00:02:29.350>triggering <00:02:29.525>just <00:02:29.700>recite

50
00:02:31.800 --> 00:02:34.100
<00:02:31.800>the <00:02:31.955>bitter <00:02:32.111>Jesuit. <00:02:32.266>Let <00:02:32.422>me <00:02:32.577>against <00:02:32.733>fear <00:02:32.888>and <00:02:33.044>you <00:02:33.200>should

51
00:02:34.100 --> 00:02:37.200
<00:02:34.100>be <00:02:34.299>fine. <00:02:34.500>I <00:02:34.700>recite <00:02:34.900>this <00:02:35.100>about <00:02:35.299>once <00:02:35.500>a

52
00:02:37.200 --> 00:02:40.500
<00:02:37.200>day <00:02:37.287>at <00:02:37.375>this <00:02:37.462>point <00:02:37.549>because <00:02:37.637>I <00:02:37.725>work <00:02:37.812>in <00:02:37.899>security <00:02:37.987>and <00:02:38.075>I'm <00:02:38.162>always <00:02:38.250>reading <00:02:38.337>about <00:02:38.424>the <00:02:38.512>newest <00:02:38.600>vulnerabilities.

53
00:02:41.600 --> 00:02:44.300
<00:02:41.600>But <00:02:41.707>let's <00:02:41.815>look <00:02:41.923>at <00:02:42.030>one <00:02:42.138>in <00:02:42.246>depth <00:02:42.353>and <00:02:42.461>then <00:02:42.569>we'll <00:02:42.676>talk <00:02:42.784>about <00:02:42.892>a <00:02:43.000>few

54
00:02:44.300 --> 00:02:46.200
<00:02:44.300>others, <00:02:45.000>but <00:02:45.700>Uber.

55
00:02:47.100 --> 00:02:50.700
<00:02:47.100>Last <00:02:47.380>year <00:02:47.660>was <00:02:47.940>hacked. <00:02:48.220>Maybe <00:02:48.500>you

56
00:02:50.700 --> 00:02:53.900
<00:02:50.700>heard <00:02:50.875>about <00:02:51.049>this. <00:02:51.225>Maybe <00:02:51.399>you <00:02:51.575>didn't <00:02:51.750>but <00:02:51.924>they <00:02:52.100>fished

57
00:02:53.900 --> 00:02:56.200
<00:02:53.900>a <00:02:54.180>super <00:02:54.460>users <00:02:54.740>account <00:02:55.020>of <00:02:55.300>a

58
00:02:56.200 --> 00:02:59.100
<00:02:56.200>super <00:02:56.480>admins <00:02:56.760>account <00:02:57.040>hit <00:02:57.320>him <00:02:57.600>with

59
00:02:59.100 --> 00:03:02.900
<00:02:59.100>so <00:02:59.299>many <00:02:59.500>multi-factor <00:02:59.700>authentication <00:02:59.900>requests <00:03:00.100>that <00:03:00.299>eventually <00:03:00.500>one

60
00:03:02.900 --> 00:03:03.400
<00:03:02.900>slip <00:03:03.350>through.

61
00:03:04.600 --> 00:03:07.300
<00:03:04.600>Those <00:03:04.799>a <00:03:05.000>teenager <00:03:05.200>from <00:03:05.400>the <00:03:05.600>UK <00:03:05.799>got <00:03:06.000>in.

62
00:03:08.100 --> 00:03:12.100
<00:03:08.100>Found <00:03:08.255>that <00:03:08.411>with <00:03:08.566>that <00:03:08.722>super <00:03:08.877>admin <00:03:09.033>access. <00:03:09.188>He <00:03:09.344>had <00:03:09.500>a

63
00:03:11.100 --> 00:03:15.100
<00:03:11.100>lot <00:03:11.299>of <00:03:11.500>power <00:03:11.700>just <00:03:11.900>look <00:03:12.100>around <00:03:12.299>what <00:03:12.500>he

64
00:03:14.100 --> 00:03:17.600
<00:03:14.100>found <00:03:14.333>were <00:03:14.566>Powershell <00:03:14.799>scripts <00:03:15.033>ultimately <00:03:15.266>that <00:03:15.500>contained

65
00:03:17.600 --> 00:03:20.400
<00:03:17.600>hard-coded <00:03:17.880>credentials <00:03:18.160>to <00:03:18.440>literally <00:03:18.720>everything <00:03:19.000>else

66
00:03:20.400 --> 00:03:21.500
<00:03:20.400>and <00:03:20.895>Uber's <00:03:21.390>Network.

67
00:03:22.600 --> 00:03:26.100
<00:03:22.600>He <00:03:23.066>actually <00:03:23.533>tormented <00:03:24.000>the

68
00:03:25.100 --> 00:03:28.500
<00:03:25.100>team <00:03:25.799>got <00:03:26.500>into

69
00:03:28.500 --> 00:03:31.700
<00:03:28.500>their <00:03:28.655>slack <00:03:28.811>and <00:03:28.966>said <00:03:29.122>hey, <00:03:29.277>I've <00:03:29.433>done <00:03:29.588>this <00:03:29.744>changed <00:03:29.900>a

70
00:03:31.700 --> 00:03:34.100
<00:03:31.700>bunch <00:03:31.899>of <00:03:32.100>things <00:03:32.299>internally <00:03:32.500>and <00:03:32.700>then <00:03:32.899>didn't <00:03:33.100>believe

71
00:03:34.100 --> 00:03:37.700
<00:03:34.100>him. <00:03:34.216>They <00:03:34.333>thought <00:03:34.450>it <00:03:34.566>was <00:03:34.683>some <00:03:34.799>internal <00:03:34.916>prankster <00:03:35.033>it <00:03:35.150>was <00:03:35.266>so <00:03:35.383>well <00:03:35.500>done

72
00:03:37.700 --> 00:03:42.200
<00:03:37.700>and <00:03:37.827>it <00:03:37.954>was <00:03:38.081>so <00:03:38.209>well, <00:03:38.336>he <00:03:38.463>covered <00:03:38.590>his <00:03:38.718>track. <00:03:38.845>So <00:03:38.972>well, <00:03:39.100>ultimately

73
00:03:40.200 --> 00:03:43.100
<00:03:40.200>he <00:03:40.899>went <00:03:41.600>to

74
00:03:43.100 --> 00:03:46.800
<00:03:43.100>the <00:03:43.207>New <00:03:43.315>York <00:03:43.423>Times <00:03:43.530>to <00:03:43.638>tell <00:03:43.746>them <00:03:43.853>and <00:03:43.961>that <00:03:44.069>was <00:03:44.176>front <00:03:44.284>page <00:03:44.392>news. <00:03:44.500>That's

75
00:03:46.800 --> 00:03:47.600
<00:03:46.800>how <00:03:46.980>we <00:03:47.160>know <00:03:47.340>about <00:03:47.519>it.

76
00:03:48.700 --> 00:03:49.400
Toyota

77
00:03:50.400 --> 00:03:53.100
<00:03:50.400>they <00:03:50.680>had <00:03:50.960>an <00:03:51.240>incident <00:03:51.520>last <00:03:51.800>year

78
00:03:53.100 --> 00:03:53.700
<00:03:53.100>where <00:03:53.640>they

79
00:03:54.900 --> 00:03:57.100
<00:03:54.900>a <00:03:55.250>subcontractor <00:03:55.600>who <00:03:55.950>would <00:03:56.300>pushed

80
00:03:57.100 --> 00:03:58.500
<00:03:57.100>part <00:03:57.415>of <00:03:57.730>a <00:03:58.045>repo <00:03:58.360>public

81
00:03:59.200 --> 00:04:02.400
<00:03:59.200>that <00:03:59.327>part <00:03:59.454>of <00:03:59.581>the <00:03:59.709>repo <00:03:59.836>we <00:03:59.963>pushed <00:04:00.090>public <00:04:00.218>contained <00:04:00.345>a <00:04:00.472>data <00:04:00.600>key

82
00:04:02.400 --> 00:04:05.200
<00:04:02.400>are <00:04:02.555>a <00:04:02.711>key <00:04:02.866>to <00:04:03.022>a <00:04:03.177>data <00:04:03.333>server <00:04:03.488>that <00:04:03.644>contained <00:04:03.800>over

83
00:04:05.200 --> 00:04:09.400
<00:04:05.200>296,000 <00:04:05.549>customers <00:04:05.899>credentials <00:04:06.250>are <00:04:06.600>their

84
00:04:08.400 --> 00:04:13.100
<00:04:08.400>email <00:04:08.600>addresses <00:04:08.800>and <00:04:09.000>some <00:04:09.200>private <00:04:09.400>information <00:04:09.600>and <00:04:09.800>it

85
00:04:11.100 --> 00:04:14.500
<00:04:11.100>took <00:04:11.380>them <00:04:11.660>five <00:04:11.940>years <00:04:12.220>to <00:04:12.500>figure

86
00:04:14.500 --> 00:04:16.700
<00:04:14.500>that <00:04:14.640>out <00:04:14.780>file. <00:04:14.920>It <00:04:15.060>took <00:04:15.200>a <00:04:15.340>third <00:04:15.480>party <00:04:15.620>to <00:04:15.760>point <00:04:15.900>out.

87
00:04:17.700 --> 00:04:19.500
<00:04:17.700>That <00:04:17.979>hey, <00:04:18.260>this <00:04:18.539>thing <00:04:18.820>is <00:04:19.099>public.

88
00:04:21.200 --> 00:04:24.200
<00:04:21.200>We <00:04:21.307>probably <00:04:21.415>all <00:04:21.523>remember <00:04:21.630>Samsung. <00:04:21.738>They <00:04:21.846>were <00:04:21.953>evolved <00:04:22.061>in <00:04:22.169>a <00:04:22.276>couple <00:04:22.384>things <00:04:22.492>last <00:04:22.599>year.

89
00:04:24.200 --> 00:04:27.600
<00:04:24.200>I'll <00:04:24.375>speed <00:04:24.550>up <00:04:24.724>a <00:04:24.900>little <00:04:25.075>bit <00:04:25.250>on <00:04:25.425>these <00:04:25.599>horror

90
00:04:27.600 --> 00:04:27.800
stories.

91
00:04:29.400 --> 00:04:30.400
<00:04:29.400>Data <00:04:29.849>was <00:04:30.299>leaked.

92
00:04:31.100 --> 00:04:34.100
<00:04:31.100>Immediately <00:04:31.450>the <00:04:31.800>6,000 <00:04:32.150>Secrets <00:04:32.500>they

93
00:04:34.100 --> 00:04:37.200
<00:04:34.100>had <00:04:34.275>in <00:04:34.450>their <00:04:34.625>source <00:04:34.800>code <00:04:34.975>were <00:04:35.150>all <00:04:35.325>attempted <00:04:35.500>to

94
00:04:37.200 --> 00:04:37.800
<00:04:37.200>be <00:04:37.740>exploited.

95
00:04:39.200 --> 00:04:43.500
<00:04:39.200>That <00:04:39.340>was <00:04:39.479>in <00:04:39.620>March <00:04:39.760>in <00:04:39.900>September. <00:04:40.039>They <00:04:40.180>had <00:04:40.320>a <00:04:40.460>different <00:04:40.599>incident

96
00:04:42.500 --> 00:04:43.800
altogether.

97
00:04:44.800 --> 00:04:47.200
<00:04:44.800>They've <00:04:44.975>never <00:04:45.150>said <00:04:45.325>publicly <00:04:45.500>that <00:04:45.675>there <00:04:45.850>was <00:04:46.025>two <00:04:46.200>are

98
00:04:47.200 --> 00:04:49.900
<00:04:47.200>linked, <00:04:47.375>but <00:04:47.550>it's <00:04:47.724>pretty <00:04:47.900>obvious. <00:04:48.075>The <00:04:48.250>two <00:04:48.425>were <00:04:48.599>linked.

99
00:04:50.500 --> 00:04:51.400
AstraZeneca

100
00:04:52.100 --> 00:04:55.200
<00:04:52.100>they <00:04:52.300>had <00:04:52.500>an <00:04:52.700>issue <00:04:52.900>where <00:04:53.100>they <00:04:53.300>leaked <00:04:53.500>the

101
00:04:55.200 --> 00:04:58.300
<00:04:55.200>credentials <00:04:55.433>to <00:04:55.666>a <00:04:55.900>test <00:04:56.133>environment <00:04:56.366>and <00:04:56.599>there

102
00:04:58.300 --> 00:05:00.600
<00:04:58.300>shouldn't <00:04:58.500>be <00:04:58.700>anything <00:04:58.900>in <00:04:59.100>test <00:04:59.300>environment <00:04:59.500>right? <00:04:59.700>Well

103
00:05:02.100 --> 00:05:05.100
<00:05:02.100>They <00:05:02.216>actually <00:05:02.333>had <00:05:02.450>pushed <00:05:02.566>a <00:05:02.683>bunch <00:05:02.800>of <00:05:02.916>actual <00:05:03.033>real <00:05:03.150>patient <00:05:03.266>data <00:05:03.383>due <00:05:03.500>to

104
00:05:05.100 --> 00:05:08.200
<00:05:05.100>just <00:05:05.240>pushing <00:05:05.380>the <00:05:05.520>wrong <00:05:05.660>database <00:05:05.800>to <00:05:05.940>the <00:05:06.080>wrong <00:05:06.220>place <00:05:06.360>and <00:05:06.500>connecting

105
00:05:08.200 --> 00:05:08.600
<00:05:08.200>the <00:05:08.380>wrong <00:05:08.560>thing.

106
00:05:09.500 --> 00:05:12.200
<00:05:09.500>And <00:05:09.780>expose <00:05:10.060>an <00:05:10.340>undisclosed <00:05:10.620>number <00:05:10.900>of

107
00:05:12.200 --> 00:05:14.900
<00:05:12.200>end <00:05:12.550>user <00:05:12.900>credentials <00:05:13.250>and <00:05:13.599>Healthcare.

108
00:05:15.900 --> 00:05:16.400
<00:05:15.900>Not <00:05:16.349>good.

109
00:05:17.400 --> 00:05:20.400
<00:05:17.400>So <00:05:17.487>what <00:05:17.575>does <00:05:17.662>all <00:05:17.750>those <00:05:17.837>have <00:05:17.924>in <00:05:18.012>common? <00:05:18.099>Why <00:05:18.187>don't <00:05:18.275>I <00:05:18.362>just <00:05:18.450>tell <00:05:18.537>you <00:05:18.625>all <00:05:18.712>these <00:05:18.799>horrible

110
00:05:20.400 --> 00:05:23.800
<00:05:20.400>facts? <00:05:20.866>Hopefully <00:05:21.333>your <00:05:21.799>security

111
00:05:23.800 --> 00:05:26.400
<00:05:23.800>is <00:05:24.080>a <00:05:24.360>little <00:05:24.640>more <00:05:24.920>robust <00:05:25.200>more

112
00:05:26.400 --> 00:05:29.600
<00:05:26.400>safe, <00:05:26.516>but <00:05:26.633>those <00:05:26.750>are <00:05:26.866>big <00:05:26.983>companies <00:05:27.099>and <00:05:27.216>they <00:05:27.333>have <00:05:27.450>taken <00:05:27.566>security <00:05:27.683>very <00:05:27.799>seriously

113
00:05:29.600 --> 00:05:29.900
<00:05:29.600>as <00:05:29.870>well.

114
00:05:31.100 --> 00:05:34.100
<00:05:31.100>The <00:05:31.227>one <00:05:31.354>thing <00:05:31.481>and <00:05:31.609>all <00:05:31.736>of <00:05:31.863>those <00:05:31.990>is <00:05:32.118>that <00:05:32.245>there <00:05:32.372>was <00:05:32.500>a

115
00:05:34.100 --> 00:05:35.900
<00:05:34.100>hard <00:05:34.566>coded <00:05:35.033>credential <00:05:35.500>somewhere.

116
00:05:37.400 --> 00:05:40.700
<00:05:37.400>You <00:05:37.500>can <00:05:37.599>have <00:05:37.700>the <00:05:37.799>best <00:05:37.900>security <00:05:38.000>in <00:05:38.099>the <00:05:38.200>world. <00:05:38.299>You <00:05:38.400>can <00:05:38.500>build <00:05:38.599>the <00:05:38.700>biggest <00:05:38.799>walls.

117
00:05:40.700 --> 00:05:43.800
<00:05:40.700>You <00:05:40.840>can <00:05:40.979>big <00:05:41.120>moats. <00:05:41.260>You <00:05:41.400>can <00:05:41.539>have <00:05:41.680>the <00:05:41.820>best <00:05:41.960>firewalls <00:05:42.099>and

118
00:05:43.800 --> 00:05:46.300
<00:05:43.800>the <00:05:44.080>universe <00:05:44.360>but <00:05:44.640>if <00:05:44.920>someone <00:05:45.200>has

119
00:05:46.300 --> 00:05:49.000
<00:05:46.300>the <00:05:46.580>actual <00:05:46.860>key <00:05:47.140>to <00:05:47.420>get <00:05:47.700>in.

120
00:05:50.900 --> 00:05:51.700
<00:05:50.900>They <00:05:51.140>can <00:05:51.380>get <00:05:51.620>in.

121
00:05:52.800 --> 00:05:55.600
<00:05:52.800>This <00:05:53.000>is <00:05:53.200>obviously <00:05:53.400>a <00:05:53.600>funny <00:05:53.800>picture. <00:05:54.000>These <00:05:54.200>are

122
00:05:55.600 --> 00:05:59.400
<00:05:55.600>my <00:05:55.740>Photoshop <00:05:55.880>skills. <00:05:56.020>It <00:05:56.160>doesn't <00:05:56.300>get <00:05:56.440>better <00:05:56.580>than <00:05:56.720>this <00:05:56.860>folks. <00:05:57.000>But

123
00:05:58.400 --> 00:06:01.400
<00:05:58.400>if <00:05:58.599>you <00:05:58.799>hit <00:05:59.000>the <00:05:59.200>key <00:05:59.400>to <00:05:59.599>a <00:05:59.799>big

124
00:06:01.400 --> 00:06:04.600
<00:06:01.400>place <00:06:01.527>where <00:06:01.654>this <00:06:01.781>is <00:06:01.909>where <00:06:02.036>if <00:06:02.163>you're <00:06:02.290>not <00:06:02.418>familiar <00:06:02.545>with <00:06:02.672>Fort <00:06:02.799>Knox

125
00:06:04.600 --> 00:06:07.400
<00:06:04.600>Fort <00:06:04.775>Knox <00:06:04.950>is <00:06:05.125>the <00:06:05.300>Fort <00:06:05.475>where <00:06:05.650>America <00:06:05.825>used <00:06:06.000>to

126
00:06:07.400 --> 00:06:10.800
<00:06:07.400>keep <00:06:07.555>its <00:06:07.711>gold <00:06:07.866>reserves. <00:06:08.022>So <00:06:08.177>this <00:06:08.333>is <00:06:08.488>like <00:06:08.644>literally <00:06:08.799>with

127
00:06:10.800 --> 00:06:13.100
<00:06:10.800>the <00:06:10.975>Army <00:06:11.150>was <00:06:11.325>guarded <00:06:11.500>All <00:06:11.675>the <00:06:11.850>Gold <00:06:12.025>in <00:06:12.200>America.

128
00:06:14.100 --> 00:06:17.100
<00:06:14.100>That <00:06:14.333>America <00:06:14.566>owned <00:06:14.800>so <00:06:15.033>normally <00:06:15.266>leave <00:06:15.500>the

129
00:06:17.100 --> 00:06:20.100
<00:06:17.100>key <00:06:17.227>to <00:06:17.354>Fort <00:06:17.481>Knox <00:06:17.609>out <00:06:17.736>front. <00:06:17.863>That's <00:06:17.990>just <00:06:18.118>a <00:06:18.245>little <00:06:18.372>bit <00:06:18.500>silly.

130
00:06:21.300 --> 00:06:22.300
<00:06:21.300>But <00:06:21.600>we <00:06:21.900>do <00:06:22.200>find.

131
00:06:23.500 --> 00:06:26.600
<00:06:23.500>When <00:06:23.733>it's <00:06:23.966>not <00:06:24.200>the <00:06:24.433>National <00:06:24.666>Gold <00:06:24.900>Reserve,

132
00:06:26.600 --> 00:06:29.200
<00:06:26.600>we <00:06:26.755>do <00:06:26.911>start <00:06:27.066>doing <00:06:27.222>things <00:06:27.377>like <00:06:27.533>this <00:06:27.688>in <00:06:27.844>real <00:06:28.000>life

133
00:06:29.200 --> 00:06:32.200
<00:06:29.200>where <00:06:29.300>I <00:06:29.400>don't <00:06:29.500>know <00:06:29.599>what's <00:06:29.700>on <00:06:29.800>the <00:06:29.900>other <00:06:30.000>side <00:06:30.099>of <00:06:30.200>that <00:06:30.300>door, <00:06:30.400>but <00:06:30.500>that's <00:06:30.599>a

134
00:06:32.200 --> 00:06:33.500
<00:06:32.200>really <00:06:32.784>complicated <00:06:33.370>block.

135
00:06:34.300 --> 00:06:37.500
<00:06:34.300>But <00:06:34.416>my <00:06:34.533>guess <00:06:34.650>my <00:06:34.766>gut <00:06:34.883>would <00:06:35.000>be <00:06:35.116>that <00:06:35.233>there's <00:06:35.350>like <00:06:35.466>pens <00:06:35.583>or <00:06:35.700>the

136
00:06:37.500 --> 00:06:41.200
<00:06:37.500>storage <00:06:37.850>closet <00:06:38.200>or <00:06:38.550>Staples <00:06:38.900>things

137
00:06:40.200 --> 00:06:43.100
<00:06:40.200>that <00:06:40.550>yeah, <00:06:40.900>it <00:06:41.250>would <00:06:41.599>be

138
00:06:43.100 --> 00:06:46.300
<00:06:43.100>bad <00:06:43.255>if <00:06:43.411>people <00:06:43.566>took <00:06:43.722>those <00:06:43.877>but <00:06:44.033>it's <00:06:44.188>not <00:06:44.344>Mission <00:06:44.500>critical

139
00:06:46.300 --> 00:06:49.700
<00:06:46.300>and <00:06:46.475>this <00:06:46.650>lock <00:06:46.825>came <00:06:47.000>with <00:06:47.175>the <00:06:47.350>door. <00:06:47.525>Okay. <00:06:47.700>That's

140
00:06:49.700 --> 00:06:51.500
<00:06:49.700>just <00:06:49.827>what <00:06:49.954>the <00:06:50.081>code <00:06:50.209>on <00:06:50.336>the <00:06:50.463>door <00:06:50.590>make <00:06:50.718>it <00:06:50.845>easy <00:06:50.972>for <00:06:51.099>everyone.

141
00:06:52.800 --> 00:06:55.400
<00:06:52.800>Little <00:06:52.955>bit <00:06:53.111>secure. <00:06:53.266>You <00:06:53.422>can't <00:06:53.577>just <00:06:53.733>walk <00:06:53.888>in <00:06:54.044>you <00:06:54.200>do

142
00:06:55.400 --> 00:06:58.300
<00:06:55.400>got <00:06:55.527>to <00:06:55.654>mess <00:06:55.781>with <00:06:55.909>a <00:06:56.036>lock. <00:06:56.163>It's <00:06:56.290>a <00:06:56.418>little <00:06:56.545>silly <00:06:56.672>and <00:06:56.799>you

143
00:06:58.300 --> 00:07:01.000
<00:06:58.300>might <00:06:58.400>be <00:06:58.500>thinking <00:06:58.600>well, <00:06:58.700>of <00:06:58.800>course, <00:06:58.900>we <00:06:59.000>would <00:06:59.100>never <00:06:59.200>do <00:06:59.300>this <00:06:59.400>in <00:06:59.500>our <00:06:59.600>code, <00:06:59.700>right?

144
00:07:02.200 --> 00:07:05.300
<00:07:02.200>Unfortunately, <00:07:02.479>we <00:07:02.760>do <00:07:03.039>this <00:07:03.320>an <00:07:03.599>awful

145
00:07:05.300 --> 00:07:07.200
<00:07:05.300>lot <00:07:05.500>and <00:07:05.700>I'm <00:07:05.900>not <00:07:06.100>here <00:07:06.300>to <00:07:06.500>shame <00:07:06.700>anybody.

146
00:07:08.100 --> 00:07:11.200
<00:07:08.100>Sometimes <00:07:08.240>you <00:07:08.380>just <00:07:08.520>got <00:07:08.660>a <00:07:08.800>test. <00:07:08.940>Sometimes <00:07:09.080>you <00:07:09.220>just <00:07:09.360>got <00:07:09.500>to

147
00:07:11.200 --> 00:07:14.300
<00:07:11.200>make <00:07:11.375>sure <00:07:11.550>that <00:07:11.724>that <00:07:11.900>database <00:07:12.075>credential <00:07:12.250>worked. <00:07:12.425>Sometimes <00:07:12.599>you

148
00:07:14.300 --> 00:07:17.700
<00:07:14.300>just <00:07:14.416>got <00:07:14.533>to <00:07:14.650>make <00:07:14.766>sure <00:07:14.883>that <00:07:15.000>that <00:07:15.116>API <00:07:15.233>endpoint <00:07:15.350>is <00:07:15.466>up <00:07:15.583>and <00:07:15.700>you

149
00:07:17.700 --> 00:07:18.800
<00:07:17.700>have <00:07:17.947>to <00:07:18.195>authenticate <00:07:18.442>it <00:07:18.690>quickly.

150
00:07:20.200 --> 00:07:23.300
<00:07:20.200>And <00:07:20.307>if <00:07:20.415>you <00:07:20.523>do <00:07:20.630>it <00:07:20.738>and <00:07:20.846>you <00:07:20.953>immediately <00:07:21.061>take <00:07:21.169>it <00:07:21.276>back <00:07:21.384>out, <00:07:21.492>there's <00:07:21.599>no

151
00:07:23.300 --> 00:07:26.500
<00:07:23.300>harm <00:07:23.455>done. <00:07:23.611>But <00:07:23.766>as <00:07:23.922>I <00:07:24.077>mentioned <00:07:24.233>in <00:07:24.388>the <00:07:24.544>preface <00:07:24.700>here,

152
00:07:26.500 --> 00:07:29.400
<00:07:26.500>we <00:07:26.640>put <00:07:26.780>out <00:07:26.920>a <00:07:27.060>state <00:07:27.200>of <00:07:27.340>Secrets <00:07:27.480>for <00:07:27.620>all <00:07:27.760>report <00:07:27.900>every

153
00:07:29.400 --> 00:07:32.800
<00:07:29.400>year <00:07:29.507>at <00:07:29.615>the <00:07:29.723>company. <00:07:29.830>I <00:07:29.938>work <00:07:30.046>for <00:07:30.153>get <00:07:30.261>Guardian. <00:07:30.369>You <00:07:30.476>can <00:07:30.584>go <00:07:30.692>get <00:07:30.799>it

154
00:07:32.800 --> 00:07:33.500
<00:07:32.800>yourself <00:07:33.010>down <00:07:33.220>that <00:07:33.430>link.

155
00:07:34.300 --> 00:07:36.000
<00:07:34.300>Or <00:07:34.475>just <00:07:34.650>go <00:07:34.825>to <00:07:35.000>the <00:07:35.175>website <00:07:35.350>and <00:07:35.525>it's <00:07:35.700>there.

156
00:07:38.300 --> 00:07:41.300
<00:07:38.300>Last <00:07:38.475>year, <00:07:38.650>we <00:07:38.825>found <00:07:39.000>over <00:07:39.175>10 <00:07:39.350>million <00:07:39.525>hardcoded <00:07:39.700>credentials.

157
00:07:42.100 --> 00:07:46.000
<00:07:42.100>In <00:07:42.275>public <00:07:42.450>GitHub <00:07:42.625>repos, <00:07:42.800>that's <00:07:42.975>just <00:07:43.150>last <00:07:43.325>year. <00:07:43.500>That's

158
00:07:46.900 --> 00:07:49.300
<00:07:46.900>five <00:07:47.250>point <00:07:47.599>five <00:07:47.950>commits <00:07:48.299>out

159
00:07:49.300 --> 00:07:49.900
<00:07:49.300>of <00:07:49.570>every <00:07:49.840>thousand

160
00:07:50.700 --> 00:07:52.200
<00:07:50.700>exposed <00:07:51.037>at <00:07:51.375>least <00:07:51.712>one <00:07:52.050>Secret

161
00:07:53.700 --> 00:07:56.200
<00:07:53.700>This <00:07:53.840>is <00:07:53.979>a <00:07:54.120>giant <00:07:54.260>jump <00:07:54.400>from <00:07:54.539>previous <00:07:54.680>years. <00:07:54.820>I <00:07:54.960>don't <00:07:55.099>have

162
00:07:56.200 --> 00:07:59.700
<00:07:56.200>it <00:07:56.316>here, <00:07:56.433>but <00:07:56.550>it <00:07:56.666>was <00:07:56.783>six <00:07:56.900>million <00:07:57.016>we <00:07:57.133>found <00:07:57.250>in <00:07:57.366>2021. <00:07:57.483>It <00:07:57.599>was

163
00:07:59.700 --> 00:08:02.100
<00:07:59.700>two <00:07:59.875>and <00:08:00.050>a <00:08:00.224>half <00:08:00.400>million <00:08:00.575>we <00:08:00.750>found <00:08:00.925>in <00:08:01.099>2020.

164
00:08:03.900 --> 00:08:06.300
<00:08:03.900>It's <00:08:04.099>growing. <00:08:04.299>It's <00:08:04.500>almost <00:08:04.700>a <00:08:04.900>doubling <00:08:05.099>every <00:08:05.299>year

165
00:08:06.300 --> 00:08:06.700
<00:08:06.300>we're <00:08:06.659>seeing.

166
00:08:07.900 --> 00:08:10.300
<00:08:07.900>But <00:08:08.055>this <00:08:08.211>is <00:08:08.366>the <00:08:08.522>same <00:08:08.677>time <00:08:08.833>when <00:08:08.988>GitHub <00:08:09.144>itself <00:08:09.299>is

167
00:08:10.300 --> 00:08:13.000
<00:08:10.300>only <00:08:10.533>experiencing <00:08:10.766>27% <00:08:11.000>growth <00:08:11.233>year <00:08:11.466>over <00:08:11.700>year.

168
00:08:13.600 --> 00:08:16.500
<00:08:13.600>So <00:08:13.740>it <00:08:13.880>can't <00:08:14.020>just <00:08:14.160>be <00:08:14.300>students. <00:08:14.440>It <00:08:14.580>can't <00:08:14.720>just <00:08:14.860>be <00:08:15.000>new

169
00:08:16.500 --> 00:08:19.400
<00:08:16.500>people <00:08:16.780>putting <00:08:17.060>out <00:08:17.340>insecure <00:08:17.620>code <00:08:17.900>because

170
00:08:19.400 --> 00:08:22.100
<00:08:19.400>they <00:08:19.516>don't <00:08:19.633>know <00:08:19.750>what <00:08:19.866>they're <00:08:19.983>doing. <00:08:20.099>And <00:08:20.216>as <00:08:20.333>we <00:08:20.450>saw <00:08:20.566>earlier, <00:08:20.683>these <00:08:20.799>are

171
00:08:22.100 --> 00:08:25.800
<00:08:22.100>some <00:08:22.240>major <00:08:22.380>companies. <00:08:22.520>These <00:08:22.660>are <00:08:22.800>people <00:08:22.940>with <00:08:23.080>very <00:08:23.220>serious <00:08:23.360>security <00:08:23.500>postures.

172
00:08:28.100 --> 00:08:31.200
<00:08:28.100>So <00:08:28.240>what's <00:08:28.380>going <00:08:28.520>on? <00:08:28.660>Well, <00:08:28.800>we <00:08:28.940>think <00:08:29.080>it's <00:08:29.220>not <00:08:29.360>intentional. <00:08:29.500>We

173
00:08:31.200 --> 00:08:34.100
<00:08:31.200>think <00:08:31.340>it's <00:08:31.479>well <00:08:31.620>people <00:08:31.760>get <00:08:31.900>in <00:08:32.039>a <00:08:32.179>hurry. <00:08:32.319>I <00:08:32.460>forgot <00:08:32.600>to

174
00:08:34.100 --> 00:08:34.200
take

175
00:08:35.400 --> 00:08:38.300
<00:08:35.400>my <00:08:35.555>secret <00:08:35.711>back <00:08:35.866>out <00:08:36.022>because <00:08:36.177>I <00:08:36.333>put <00:08:36.488>it <00:08:36.644>in <00:08:36.799>test

176
00:08:38.300 --> 00:08:41.300
<00:08:38.299>and <00:08:38.474>now <00:08:38.650>the <00:08:38.824>database <00:08:39.000>works, <00:08:39.174>but <00:08:39.349>oh <00:08:39.525>now <00:08:39.699>I

177
00:08:41.300 --> 00:08:44.300
<00:08:41.299>have <00:08:41.416>this <00:08:41.533>other <00:08:41.650>bug <00:08:41.766>related <00:08:41.883>to <00:08:42.000>that. <00:08:42.116>So <00:08:42.233>let <00:08:42.349>me <00:08:42.466>go <00:08:42.583>debug <00:08:42.699>that

178
00:08:44.300 --> 00:08:44.600
<00:08:44.300>real <00:08:44.570>quick.

179
00:08:45.500 --> 00:08:48.400
<00:08:45.500>Oh <00:08:45.616>and <00:08:45.733>that <00:08:45.850>now <00:08:45.966>is <00:08:46.083>caused <00:08:46.200>something <00:08:46.316>else <00:08:46.433>in <00:08:46.550>the <00:08:46.666>code <00:08:46.783>to <00:08:46.900>go

180
00:08:48.400 --> 00:08:51.300
<00:08:48.400>wrong. <00:08:48.540>Now. <00:08:48.680>I <00:08:48.819>need <00:08:48.959>to <00:08:49.100>go <00:08:49.240>fix <00:08:49.380>that. <00:08:49.520>Meanwhile, <00:08:49.660>I <00:08:49.800>get

181
00:08:51.300 --> 00:08:52.100
<00:08:51.300>alerts <00:08:51.660>on <00:08:52.020>Slack.

182
00:08:52.900 --> 00:08:55.400
<00:08:52.900>Oh, <00:08:53.133>I'm <00:08:53.366>gonna <00:08:53.600>pull <00:08:53.833>request <00:08:54.066>that. <00:08:54.300>I

183
00:08:55.400 --> 00:08:58.200
<00:08:55.400>need <00:08:55.516>to <00:08:55.633>go <00:08:55.750>deal <00:08:55.866>with <00:08:55.983>immediately. <00:08:56.100>So <00:08:56.216>what <00:08:56.333>do <00:08:56.449>we <00:08:56.566>do <00:08:56.683>and <00:08:56.800>get

184
00:08:58.200 --> 00:09:01.000
<00:08:58.200>when <00:08:58.433>we <00:08:58.666>already <00:08:58.900>stopping <00:08:59.133>point? <00:08:59.366>We <00:08:59.600>need

185
00:09:01.300 --> 00:09:04.000
<00:09:01.300>to <00:09:01.407>save <00:09:01.515>our <00:09:01.623>work <00:09:01.730>we <00:09:01.838>get <00:09:01.946>ad <00:09:02.053>get <00:09:02.161>commit <00:09:02.269>get <00:09:02.376>push <00:09:02.484>and <00:09:02.592>we <00:09:02.699>move

186
00:09:04.000 --> 00:09:04.200
on.

187
00:09:05.700 --> 00:09:07.100
<00:09:05.700>Sometimes <00:09:05.952>for <00:09:06.204>getting <00:09:06.456>this <00:09:06.708>is <00:09:06.960>here.

188
00:09:08.400 --> 00:09:12.100
<00:09:08.400>Other <00:09:08.527>times <00:09:08.654>we <00:09:08.781>push <00:09:08.909>our <00:09:09.036>code <00:09:09.163>to <00:09:09.290>the <00:09:09.418>wrong <00:09:09.545>place <00:09:09.672>get <00:09:09.800>remote

189
00:09:11.100 --> 00:09:12.600
<00:09:11.100>is <00:09:12.450>awesome.

190
00:09:13.500 --> 00:09:16.300
<00:09:13.500>But <00:09:13.655>get <00:09:13.811>remote <00:09:13.966>also <00:09:14.122>means <00:09:14.277>that <00:09:14.433>you <00:09:14.588>can <00:09:14.744>work <00:09:14.900>around

191
00:09:16.300 --> 00:09:19.900
<00:09:16.300>your <00:09:16.533>company's <00:09:16.766>security <00:09:17.000>policy <00:09:17.233>with <00:09:17.466>one <00:09:17.699>configuration

192
00:09:19.900 --> 00:09:22.200
<00:09:19.900>change <00:09:20.100>to <00:09:20.300>your <00:09:20.500>local <00:09:20.699>machine. <00:09:20.900>You <00:09:21.100>can <00:09:21.300>have

193
00:09:22.200 --> 00:09:25.400
<00:09:22.200>the <00:09:22.400>most <00:09:22.600>lockdown <00:09:22.800>GitHub <00:09:23.000>Enterprise <00:09:23.200>or <00:09:23.400>gitlab <00:09:23.600>instance

194
00:09:25.400 --> 00:09:28.600
<00:09:25.400>in <00:09:25.507>the <00:09:25.615>world. <00:09:25.723>But <00:09:25.830>if <00:09:25.938>that <00:09:26.046>copy <00:09:26.153>of <00:09:26.261>the <00:09:26.369>repo <00:09:26.476>is <00:09:26.584>on <00:09:26.692>your <00:09:26.800>machine,

195
00:09:28.600 --> 00:09:31.300
<00:09:28.600>you <00:09:28.716>can <00:09:28.833>do <00:09:28.950>anything <00:09:29.066>you <00:09:29.183>want <00:09:29.300>with <00:09:29.416>it <00:09:29.533>as <00:09:29.650>we <00:09:29.766>saw <00:09:29.883>with <00:09:30.000>the

196
00:09:31.300 --> 00:09:31.800
<00:09:31.300>case <00:09:31.449>of <00:09:31.599>the <00:09:31.750>Toyota.

197
00:09:33.300 --> 00:09:36.400
<00:09:33.300>Who's <00:09:33.500>ultimately <00:09:33.699>responsible <00:09:33.900>for <00:09:34.099>keeping <00:09:34.300>our <00:09:34.500>credentials <00:09:34.699>out

198
00:09:36.400 --> 00:09:36.800
<00:09:36.400>of <00:09:36.579>our <00:09:36.760>code?

199
00:09:38.500 --> 00:09:41.300
<00:09:38.500>Alex <00:09:38.733>rice <00:09:38.966>from <00:09:39.200>hacker <00:09:39.433>one <00:09:39.666>said <00:09:39.900>last

200
00:09:41.300 --> 00:09:44.000
<00:09:41.300>year <00:09:41.650>at <00:09:42.000>security <00:09:42.349>in <00:09:42.699>the

201
00:09:44.300 --> 00:09:47.700
<00:09:44.300>best <00:09:44.407>of <00:09:44.515>organizations. <00:09:44.623>We're <00:09:44.730>looking <00:09:44.838>at <00:09:44.946>about <00:09:45.053>a <00:09:45.161>hundred <00:09:45.269>to <00:09:45.376>one <00:09:45.484>ratio <00:09:45.592>of <00:09:45.699>all

202
00:09:47.700 --> 00:09:50.600
<00:09:47.700>of <00:09:47.980>your <00:09:48.260>engineers <00:09:48.540>at <00:09:48.820>your <00:09:49.100>developers

203
00:09:50.600 --> 00:09:50.900
your

204
00:09:52.600 --> 00:09:55.500
<00:09:52.600>Plum <00:09:52.727>people <00:09:52.854>that <00:09:52.981>touch <00:09:53.109>code <00:09:53.236>it's <00:09:53.363>about <00:09:53.490>a <00:09:53.618>hundred <00:09:53.745>to <00:09:53.872>one <00:09:54.000>to

205
00:09:55.500 --> 00:09:56.400
<00:09:55.500>the <00:09:55.905>security <00:09:56.310>team.

206
00:09:57.700 --> 00:10:00.100
<00:09:57.700>I <00:09:57.875>think <00:09:58.050>in <00:09:58.225>smaller <00:09:58.400>companies. <00:09:58.575>It's <00:09:58.750>about <00:09:58.925>a <00:09:59.100>40

207
00:10:00.100 --> 00:10:03.300
<00:10:00.100>to <00:10:00.216>one <00:10:00.333>the <00:10:00.450>larger <00:10:00.566>the <00:10:00.683>companies. <00:10:00.800>I <00:10:00.916>think <00:10:01.033>this <00:10:01.150>number <00:10:01.266>holds <00:10:01.383>pretty <00:10:01.500>true

208
00:10:03.300 --> 00:10:04.200
<00:10:03.300>and <00:10:03.705>pretty <00:10:04.110>accurate.

209
00:10:05.400 --> 00:10:08.900
<00:10:05.400>So <00:10:05.540>it <00:10:05.680>can't <00:10:05.819>just <00:10:05.959>be <00:10:06.100>the <00:10:06.240>security <00:10:06.380>team's <00:10:06.520>job. <00:10:06.660>It <00:10:06.800>really

210
00:10:08.900 --> 00:10:11.900
<00:10:08.900>does <00:10:09.040>need <00:10:09.180>to <00:10:09.319>be <00:10:09.459>the <00:10:09.600>developers <00:10:09.740>job <00:10:09.880>because <00:10:10.020>we're <00:10:10.160>well <00:10:10.300>shifting

211
00:10:11.900 --> 00:10:12.200
left.

212
00:10:13.300 --> 00:10:16.100
<00:10:13.300>Shifting <00:10:13.500>left <00:10:13.699>I <00:10:13.900>think <00:10:14.099>has <00:10:14.300>been <00:10:14.500>misinterpreted <00:10:14.699>by

213
00:10:16.100 --> 00:10:19.300
<00:10:16.100>some <00:10:16.216>teams <00:10:16.333>as <00:10:16.450>well. <00:10:16.566>Let's <00:10:16.683>just <00:10:16.800>put <00:10:16.916>all <00:10:17.033>the <00:10:17.150>onus <00:10:17.266>on <00:10:17.383>the <00:10:17.500>developer.

214
00:10:20.500 --> 00:10:22.700
<00:10:20.500>They're <00:10:20.655>the <00:10:20.811>ones <00:10:20.966>that <00:10:21.122>are <00:10:21.277>responsible <00:10:21.433>for <00:10:21.588>their <00:10:21.744>own <00:10:21.900>security.

215
00:10:23.700 --> 00:10:26.600
<00:10:23.700>And <00:10:23.980>developers <00:10:24.260>don't <00:10:24.540>think <00:10:24.820>about <00:10:25.100>security

216
00:10:26.600 --> 00:10:27.200
last.

217
00:10:28.100 --> 00:10:31.600
<00:10:28.100>Because <00:10:28.240>developers <00:10:28.380>typically <00:10:28.520>don't <00:10:28.660>think <00:10:28.800>about <00:10:28.940>Security <00:10:29.080>in <00:10:29.220>the <00:10:29.360>bigger <00:10:29.500>sense.

218
00:10:31.600 --> 00:10:33.500
<00:10:31.600>Not <00:10:31.775>the <00:10:31.950>same <00:10:32.125>way <00:10:32.300>if <00:10:32.475>your <00:10:32.650>security <00:10:32.825>teams <00:10:33.000>do

219
00:10:35.100 --> 00:10:37.000
<00:10:35.100>but <00:10:35.275>we <00:10:35.450>live <00:10:35.625>in <00:10:35.800>a <00:10:35.975>very <00:10:36.150>interconnected <00:10:36.325>world <00:10:36.500>where

220
00:10:38.500 --> 00:10:42.400
<00:10:38.500>a <00:10:38.655>developer <00:10:38.811>making <00:10:38.966>a <00:10:39.122>mistake <00:10:39.277>in <00:10:39.433>their <00:10:39.588>code <00:10:39.744>here <00:10:39.900>in

221
00:10:41.400 --> 00:10:44.800
<00:10:41.400>the <00:10:41.680>development <00:10:41.959>life <00:10:42.240>cycle. <00:10:42.520>It's <00:10:42.800>gonna

222
00:10:44.800 --> 00:10:47.000
<00:10:44.800>result <00:10:44.955>in <00:10:45.111>problems <00:10:45.266>over <00:10:45.422>here <00:10:45.577>in <00:10:45.733>the <00:10:45.888>development <00:10:46.044>life <00:10:46.199>cycle

223
00:10:47.700 --> 00:10:51.000
<00:10:47.700>as <00:10:47.840>it <00:10:47.980>goes <00:10:48.120>out <00:10:48.260>to <00:10:48.400>production <00:10:48.540>and <00:10:48.680>affect <00:10:48.820>other <00:10:48.960>systems <00:10:49.100>that

224
00:10:50.100 --> 00:10:52.900
<00:10:50.100>they <00:10:50.300>might <00:10:50.500>not <00:10:50.700>even <00:10:50.900>be <00:10:51.100>aware. <00:10:51.300>They're <00:10:51.500>affecting.

225
00:10:56.300 --> 00:11:00.200
<00:10:56.300>There's <00:10:56.474>a <00:10:56.650>tool <00:10:56.824>though <00:10:57.000>that <00:10:57.175>every <00:10:57.349>developer <00:10:57.525>today <00:10:57.699>is

226
00:10:59.200 --> 00:11:00.500
using.

227
00:11:02.300 --> 00:11:06.100
<00:11:02.300>And <00:11:02.439>if <00:11:02.579>we <00:11:02.719>use <00:11:02.859>the <00:11:03.000>tool <00:11:03.140>that's <00:11:03.280>already <00:11:03.420>there <00:11:03.560>then <00:11:03.699>developers

228
00:11:05.100 --> 00:11:09.000
<00:11:05.100>are <00:11:05.380>more <00:11:05.660>likely <00:11:05.940>to <00:11:06.220>embrace <00:11:06.500>a

229
00:11:08.200 --> 00:11:09.600
<00:11:08.200>new <00:11:09.460>technology.

230
00:11:10.400 --> 00:11:13.100
<00:11:10.400>If <00:11:10.507>a <00:11:10.615>security <00:11:10.723>team <00:11:10.830>goes <00:11:10.938>to <00:11:11.046>a <00:11:11.153>development <00:11:11.261>team <00:11:11.369>and <00:11:11.476>says, <00:11:11.584>hey <00:11:11.692>you <00:11:11.800>need

231
00:11:13.100 --> 00:11:16.300
<00:11:13.100>to <00:11:13.300>use <00:11:13.500>this <00:11:13.700>very <00:11:13.900>heavy-handed <00:11:14.100>product. <00:11:14.300>You <00:11:14.500>need

232
00:11:16.300 --> 00:11:17.900
<00:11:16.300>to <00:11:16.650>change <00:11:17.000>your <00:11:17.349>workflow <00:11:17.699>dramatically.

233
00:11:19.600 --> 00:11:22.300
<00:11:19.600>It's <00:11:19.775>not <00:11:19.950>going <00:11:20.125>to <00:11:20.300>go <00:11:20.475>well <00:11:20.650>because <00:11:20.825>developers <00:11:21.000>like

234
00:11:22.300 --> 00:11:23.100
<00:11:22.300>their <00:11:22.660>own <00:11:23.020>workflows.

235
00:11:24.300 --> 00:11:26.900
<00:11:24.300>but <00:11:24.474>fortunately <00:11:24.650>they <00:11:24.824>do <00:11:25.000>use <00:11:25.175>this <00:11:25.349>thing <00:11:25.525>called <00:11:25.699>get

236
00:11:28.500 --> 00:11:29.800
<00:11:28.500>so <00:11:28.792>if <00:11:29.085>you <00:11:29.377>allow <00:11:29.670>me.

237
00:11:32.200 --> 00:11:35.400
<00:11:32.200>To <00:11:32.316>dig <00:11:32.433>in <00:11:32.550>here. <00:11:32.666>There's <00:11:32.783>a <00:11:32.900>little <00:11:33.016>bit <00:11:33.133>and <00:11:33.250>explain <00:11:33.366>why <00:11:33.483>kit <00:11:33.600>is

238
00:11:35.400 --> 00:11:35.600
important?

239
00:11:36.800 --> 00:11:38.200
<00:11:36.800>I <00:11:37.115>think <00:11:37.430>it <00:11:37.745>is <00:11:38.060>awesome.

240
00:11:39.100 --> 00:11:42.400
<00:11:39.100>But <00:11:39.227>in <00:11:39.354>and <00:11:39.481>of <00:11:39.609>itself <00:11:39.736>doesn't <00:11:39.863>make <00:11:39.990>your <00:11:40.118>code <00:11:40.245>any <00:11:40.372>more <00:11:40.500>or

241
00:11:42.400 --> 00:11:45.800
<00:11:42.400>less <00:11:42.574>secure <00:11:42.750>if <00:11:42.925>you <00:11:43.100>type <00:11:43.275>man <00:11:43.449>get <00:11:43.625>into <00:11:43.800>your

242
00:11:45.800 --> 00:11:48.900
<00:11:45.800>terminal <00:11:46.079>the <00:11:46.359>actual <00:11:46.640>manual <00:11:46.920>forget <00:11:47.199>calls

243
00:11:48.900 --> 00:11:51.400
<00:11:48.900>get <00:11:49.074>the <00:11:49.250>stupid <00:11:49.425>content <00:11:49.600>tracker. <00:11:49.775>That's <00:11:49.949>what <00:11:50.125>Linus <00:11:50.300>and

244
00:11:51.400 --> 00:11:54.300
<00:11:51.400>team <00:11:51.555>originally <00:11:51.711>thought <00:11:51.866>of <00:11:52.022>it <00:11:52.177>as <00:11:52.333>it's <00:11:52.488>just <00:11:52.644>a <00:11:52.800>stupid

245
00:11:54.300 --> 00:11:57.300
<00:11:54.300>content <00:11:54.474>tracker. <00:11:54.650>In <00:11:54.824>fact <00:11:55.000>git <00:11:55.175>was <00:11:55.349>never <00:11:55.525>even <00:11:55.699>supposed

246
00:11:57.300 --> 00:12:00.300
<00:11:57.300>to <00:11:57.455>be <00:11:57.611>a <00:11:57.766>source <00:11:57.922>control <00:11:58.077>management <00:11:58.233>system. <00:11:58.388>The <00:11:58.544>according <00:11:58.699>to

247
00:12:00.300 --> 00:12:03.500
<00:12:00.300>Linus <00:12:00.533>the <00:12:00.766>original <00:12:01.000>email <00:12:01.233>list <00:12:01.466>on <00:12:01.699>the

248
00:12:03.500 --> 00:12:07.400
<00:12:03.500>minutes <00:12:03.675>are <00:12:03.850>the <00:12:04.025>Linux <00:12:04.200>email <00:12:04.375>list <00:12:04.550>and <00:12:04.725>2005 <00:12:04.900>said

249
00:12:06.400 --> 00:12:09.300
<00:12:06.400>this <00:12:06.574>will <00:12:06.750>never <00:12:06.925>be <00:12:07.100>a <00:12:07.275>full <00:12:07.449>blown <00:12:07.625>Source <00:12:07.800>control

250
00:12:09.300 --> 00:12:12.700
<00:12:09.300>system. <00:12:09.474>This <00:12:09.650>is <00:12:09.824>just <00:12:10.000>some <00:12:10.175>patches <00:12:10.349>are <00:12:10.525>some <00:12:10.699>scripts.

251
00:12:12.700 --> 00:12:13.700
<00:12:12.700>I <00:12:12.880>wrote <00:12:13.060>to <00:12:13.240>manage <00:12:13.420>my <00:12:13.600>patches.

252
00:12:14.400 --> 00:12:15.700
<00:12:14.400>That <00:12:14.634>was <00:12:14.868>how <00:12:15.102>it <00:12:15.336>was <00:12:15.570>born.

253
00:12:17.600 --> 00:12:17.800
so

254
00:12:19.600 --> 00:12:21.100
<00:12:19.600>get <00:12:19.870>as <00:12:20.140>a <00:12:20.410>two-edged <00:12:20.680>sword <00:12:20.950>here.

255
00:12:22.100 --> 00:12:25.700
<00:12:22.100>It's <00:12:22.333>them <00:12:22.566>become <00:12:22.800>the <00:12:23.033>default <00:12:23.266>mechanism. <00:12:23.500>We

256
00:12:25.700 --> 00:12:28.200
<00:12:25.700>use <00:12:25.855>to <00:12:26.011>move <00:12:26.166>our <00:12:26.322>code <00:12:26.477>around <00:12:26.633>as <00:12:26.788>well <00:12:26.944>as <00:12:27.100>the

257
00:12:28.200 --> 00:12:30.400
<00:12:28.200>storage <00:12:28.433>system <00:12:28.666>for <00:12:28.900>our <00:12:29.133>code <00:12:29.366>long <00:12:29.600>term.

258
00:12:33.500 --> 00:12:36.800
<00:12:33.500>If <00:12:33.640>we <00:12:33.780>don't <00:12:33.920>treat <00:12:34.060>it <00:12:34.200>correctly <00:12:34.340>if <00:12:34.480>we <00:12:34.620>don't <00:12:34.760>treat <00:12:34.900>it

259
00:12:36.800 --> 00:12:39.200
<00:12:36.800>for <00:12:36.955>what <00:12:37.111>it <00:12:37.266>really <00:12:37.422>is. <00:12:37.577>We're <00:12:37.733>gonna <00:12:37.888>make <00:12:38.044>our <00:12:38.199>code

260
00:12:39.200 --> 00:12:41.100
<00:12:39.200>very <00:12:39.666>insecure <00:12:40.133>overall. <00:12:40.600>So

261
00:12:42.200 --> 00:12:45.500
<00:12:42.200>there's <00:12:42.375>another <00:12:42.550>talk <00:12:42.725>I <00:12:42.900>give <00:12:43.075>that <00:12:43.250>is <00:12:43.425>the <00:12:43.600>nuts

262
00:12:45.500 --> 00:12:48.500
<00:12:45.500>and <00:12:45.607>bolts <00:12:45.715>of <00:12:45.823>how <00:12:45.930>get <00:12:46.038>works <00:12:46.146>and <00:12:46.253>I <00:12:46.361>think <00:12:46.469>it <00:12:46.576>fits <00:12:46.684>right <00:12:46.792>here. <00:12:46.900>So

263
00:12:48.500 --> 00:12:51.700
<00:12:48.500>welcome <00:12:48.655>to <00:12:48.811>my <00:12:48.966>other <00:12:49.122>talk <00:12:49.277>within <00:12:49.433>this <00:12:49.588>talk <00:12:49.744>to <00:12:49.900>mystifying

264
00:12:51.700 --> 00:12:54.200
<00:12:51.700>get <00:12:51.900>vertic <00:12:52.100>control <00:12:52.300>first <00:12:52.500>principles. <00:12:52.700>I'm <00:12:52.900>gonna <00:12:53.100>give

265
00:12:54.200 --> 00:12:57.700
<00:12:54.200>a <00:12:54.293>lightning <00:12:54.386>talk <00:12:54.480>of <00:12:54.573>this <00:12:54.666>and <00:12:54.760>then <00:12:54.853>we'll <00:12:54.946>get <00:12:55.040>back <00:12:55.133>to <00:12:55.226>the <00:12:55.320>main <00:12:55.413>point <00:12:55.506>because <00:12:55.600>I

266
00:12:57.700 --> 00:13:01.100
<00:12:57.700>know <00:12:57.827>you're <00:12:57.954>all <00:12:58.081>dying <00:12:58.209>to <00:12:58.336>see <00:12:58.463>how <00:12:58.590>get <00:12:58.718>hooks <00:12:58.845>work, <00:12:58.972>but <00:12:59.100>it

267
00:13:00.100 --> 00:13:03.500
<00:13:00.100>is <00:13:00.300>hard <00:13:00.500>get <00:13:00.700>as <00:13:00.900>a <00:13:01.100>file <00:13:01.300>tracking <00:13:01.500>system.

268
00:13:03.500 --> 00:13:06.500
<00:13:03.500>That's <00:13:03.675>what <00:13:03.850>it <00:13:04.025>really <00:13:04.200>does. <00:13:04.375>It's <00:13:04.550>not <00:13:04.725>just <00:13:04.900>tracking

269
00:13:06.500 --> 00:13:07.400
<00:13:06.500>your <00:13:07.310>changes.

270
00:13:08.200 --> 00:13:11.200
<00:13:08.200>It's <00:13:08.400>making <00:13:08.600>a <00:13:08.800>full-blown <00:13:09.000>copy <00:13:09.200>of <00:13:09.400>what <00:13:09.600>happened

271
00:13:11.200 --> 00:13:12.900
<00:13:11.200>in <00:13:11.480>the <00:13:11.760>directory <00:13:12.040>every <00:13:12.320>single <00:13:12.600>time.

272
00:13:14.100 --> 00:13:17.500
<00:13:14.100>Then <00:13:14.240>writing <00:13:14.380>down <00:13:14.520>when <00:13:14.660>that <00:13:14.800>thing <00:13:14.940>happened <00:13:15.080>and <00:13:15.220>who <00:13:15.360>caused <00:13:15.500>that

273
00:13:17.500 --> 00:13:20.300
<00:13:17.500>thing <00:13:17.655>to <00:13:17.811>happen. <00:13:17.966>If <00:13:18.122>you <00:13:18.277>were <00:13:18.433>in <00:13:18.588>fact <00:13:18.744>gonna <00:13:18.900>build

274
00:13:20.300 --> 00:13:23.500
<00:13:20.300>get <00:13:20.474>today, <00:13:20.650>you <00:13:20.824>might <00:13:21.000>use <00:13:21.175>seven <00:13:21.349>zip <00:13:21.525>you <00:13:21.699>might

275
00:13:23.500 --> 00:13:26.300
<00:13:23.500>use <00:13:23.850>p-zip <00:13:24.200>a <00:13:24.550>z-lib <00:13:24.900>is

276
00:13:26.300 --> 00:13:29.600
<00:13:26.300>what <00:13:26.455>they <00:13:26.611>use <00:13:26.766>internally <00:13:26.922>and <00:13:27.077>it's <00:13:27.233>super <00:13:27.388>super <00:13:27.544>efficient <00:13:27.699>or

277
00:13:29.600 --> 00:13:32.600
<00:13:29.600>Z <00:13:29.755>Pack. <00:13:29.911>I'm <00:13:30.066>sorry <00:13:30.222>guys. <00:13:30.377>He <00:13:30.533>loop <00:13:30.688>z-pack. <00:13:30.844>It's <00:13:31.000>a

278
00:13:32.600 --> 00:13:35.500
<00:13:32.600>super <00:13:32.833>efficient <00:13:33.066>file <00:13:33.300>compression <00:13:33.533>system <00:13:33.766>in <00:13:34.000>the

279
00:13:35.500 --> 00:13:38.600
<00:13:35.500>universal <00:13:35.640>time <00:13:35.780>tracking <00:13:35.920>system. <00:13:36.060>Fortunately. <00:13:36.200>We <00:13:36.340>have <00:13:36.480>one <00:13:36.620>of <00:13:36.760>those <00:13:36.900>it's

280
00:13:38.600 --> 00:13:41.600
<00:13:38.600>called <00:13:38.775>Unix <00:13:38.950>time. <00:13:39.125>Um, <00:13:39.300>that's <00:13:39.475>like <00:13:39.650>the <00:13:39.825>six <00:13:40.000>billion

281
00:13:41.600 --> 00:13:44.600
<00:13:41.600>and <00:13:41.833>Unix <00:13:42.066>time <00:13:42.300>right <00:13:42.533>now <00:13:42.766>our <00:13:43.000>1.6

282
00:13:44.600 --> 00:13:47.200
<00:13:44.600>billion <00:13:44.880>a <00:13:45.160>go <00:13:45.440>check <00:13:45.720>what <00:13:46.000>time

283
00:13:47.200 --> 00:13:50.100
<00:13:47.200>it <00:13:47.300>is <00:13:47.400>in <00:13:47.500>Unix. <00:13:47.600>I'm <00:13:47.700>very <00:13:47.800>early <00:13:47.900>in <00:13:48.000>the <00:13:48.100>morning <00:13:48.200>for <00:13:48.300>me. <00:13:48.400>You <00:13:48.500>don't <00:13:48.600>have

284
00:13:50.100 --> 00:13:50.600
<00:13:50.100>it <00:13:50.325>pulled <00:13:50.550>up.

285
00:13:52.300 --> 00:13:55.200
<00:13:52.300>Um, <00:13:52.455>but <00:13:52.611>every <00:13:52.766>computer <00:13:52.922>in <00:13:53.077>the <00:13:53.233>world <00:13:53.388>knows <00:13:53.544>what <00:13:53.699>time

286
00:13:55.200 --> 00:13:56.600
<00:13:55.200>it <00:13:55.410>is <00:13:55.620>according <00:13:55.830>to <00:13:56.040>you <00:13:56.250>next <00:13:56.460>time.

287
00:13:57.600 --> 00:14:00.300
<00:13:57.600>And <00:13:57.800>then <00:13:58.000>we <00:13:58.200>need <00:13:58.400>a <00:13:58.600>universal <00:13:58.800>way <00:13:59.000>to

288
00:14:00.300 --> 00:14:03.300
<00:14:00.300>track <00:14:00.500>those <00:14:00.699>things. <00:14:00.900>Well <00:14:01.099>text <00:14:01.300>files <00:14:01.500>work <00:14:01.699>really.

289
00:14:03.300 --> 00:14:05.400
<00:14:03.300>Well <00:14:03.407>if <00:14:03.515>it <00:14:03.623>was <00:14:03.730>good <00:14:03.838>enough <00:14:03.946>for <00:14:04.053>Linus. <00:14:04.161>It's <00:14:04.269>good <00:14:04.376>enough <00:14:04.484>for <00:14:04.592>us, <00:14:04.699>right?

290
00:14:07.300 --> 00:14:10.000
<00:14:07.300>There's <00:14:07.439>also <00:14:07.579>this <00:14:07.719>fun <00:14:07.859>thing <00:14:08.000>about <00:14:08.140>get <00:14:08.280>that <00:14:08.420>everything <00:14:08.560>is <00:14:08.699>local.

291
00:14:10.800 --> 00:14:13.600
<00:14:10.800>That <00:14:10.955>get <00:14:11.111>is <00:14:11.266>tracking. <00:14:11.422>It's <00:14:11.577>point <00:14:11.733>of <00:14:11.888>view <00:14:12.044>of <00:14:12.199>what

292
00:14:13.600 --> 00:14:14.300
<00:14:13.600>reality <00:14:14.230>is.

293
00:14:15.400 --> 00:14:18.500
<00:14:15.400>I <00:14:15.540>love <00:14:15.680>this <00:14:15.819>picture <00:14:15.959>because <00:14:16.100>this <00:14:16.240>is <00:14:16.380>an <00:14:16.520>Oakland. <00:14:16.660>There's <00:14:16.800>a

294
00:14:18.500 --> 00:14:21.200
<00:14:18.500>poet <00:14:18.850>and <00:14:19.200>author <00:14:19.550>Gertrude <00:14:19.900>Stein.

295
00:14:22.100 --> 00:14:25.400
<00:14:22.100>On <00:14:22.275>American <00:14:22.450>author, <00:14:22.625>who <00:14:22.800>said <00:14:22.975>the <00:14:23.150>problem <00:14:23.325>of <00:14:23.500>Oakland

296
00:14:25.400 --> 00:14:27.100
<00:14:25.400>is <00:14:25.750>there's <00:14:26.100>no <00:14:26.449>there <00:14:26.800>there.

297
00:14:28.400 --> 00:14:31.100
<00:14:28.400>Well <00:14:28.540>some <00:14:28.680>artists <00:14:28.819>in <00:14:28.959>the <00:14:29.100>70s <00:14:29.240>put <00:14:29.380>a <00:14:29.520>there <00:14:29.660>in <00:14:29.800>Oakland

298
00:14:31.100 --> 00:14:34.600
<00:14:31.100>and <00:14:31.275>here <00:14:31.450>in <00:14:31.625>Berkeley. <00:14:31.800>This <00:14:31.975>is <00:14:32.150>the <00:14:32.325>Berkeley <00:14:32.500>Oakland

299
00:14:34.600 --> 00:14:37.000
<00:14:34.600>border. <00:14:34.755>So <00:14:34.911>no <00:14:35.066>matter <00:14:35.222>where <00:14:35.377>you <00:14:35.533>are <00:14:35.688>and <00:14:35.844>I <00:14:36.000>love

300
00:14:37.100 --> 00:14:40.100
<00:14:37.100>this <00:14:37.193>picture <00:14:37.286>because <00:14:37.380>no <00:14:37.473>matter <00:14:37.566>where <00:14:37.660>you <00:14:37.753>are <00:14:37.846>in <00:14:37.940>the <00:14:38.033>world <00:14:38.126>looking <00:14:38.220>at <00:14:38.313>this <00:14:38.406>you <00:14:38.500>are

301
00:14:40.100 --> 00:14:43.600
<00:14:40.100>here <00:14:40.333>to <00:14:40.566>you <00:14:40.800>and <00:14:41.033>here <00:14:41.266>is <00:14:41.500>there

302
00:14:43.600 --> 00:14:44.900
<00:14:43.600>and <00:14:44.185>there's <00:14:44.770>there.

303
00:14:45.600 --> 00:14:48.400
<00:14:45.600>And <00:14:45.775>if <00:14:45.950>you <00:14:46.125>were <00:14:46.300>standing <00:14:46.475>by <00:14:46.650>there <00:14:46.825>in <00:14:47.000>the

304
00:14:48.400 --> 00:14:51.900
<00:14:48.400>picture, <00:14:48.540>you <00:14:48.680>came <00:14:48.819>to <00:14:48.959>Oakland <00:14:49.100>and <00:14:49.240>stood <00:14:49.380>by <00:14:49.520>there <00:14:49.660>here <00:14:49.800>would

305
00:14:51.900 --> 00:14:52.200
<00:14:51.900>be <00:14:52.170>there.

306
00:14:53.500 --> 00:14:54.700
<00:14:53.500>And <00:14:53.770>you <00:14:54.040>would <00:14:54.310>be <00:14:54.580>here.

307
00:14:56.300 --> 00:14:59.500
<00:14:56.300>That's <00:14:56.474>a <00:14:56.650>little <00:14:56.824>confusing <00:14:57.000>but <00:14:57.175>that's <00:14:57.349>how <00:14:57.525>get <00:14:57.699>things

308
00:14:59.500 --> 00:15:03.000
<00:14:59.500>like <00:14:59.700>wherever <00:14:59.900>gets <00:15:00.100>standing. <00:15:00.300>Whatever <00:15:00.500>get <00:15:00.700>is <00:15:00.900>specifically

309
00:15:02.300 --> 00:15:05.700
<00:15:02.300>told <00:15:02.533>it <00:15:02.766>is <00:15:03.000>that's <00:15:03.233>where <00:15:03.466>it's <00:15:03.699>reality

310
00:15:05.700 --> 00:15:06.000
is.

311
00:15:07.400 --> 00:15:09.100
<00:15:07.400>It <00:15:07.600>tracks <00:15:07.800>that <00:15:08.000>in <00:15:08.199>a <00:15:08.400>file <00:15:08.600>called <00:15:08.800>Head.

312
00:15:10.100 --> 00:15:13.600
<00:15:10.100>And <00:15:10.227>you <00:15:10.354>notice <00:15:10.481>heads <00:15:10.609>only <00:15:10.736>20 <00:15:10.863>bytes <00:15:10.990>big <00:15:11.118>that's <00:15:11.245>not <00:15:11.372>kilobytes <00:15:11.500>that's

313
00:15:13.600 --> 00:15:14.300
bytes.

314
00:15:14.900 --> 00:15:17.300
<00:15:14.900>Because <00:15:15.133>heaven <00:15:15.366>looks <00:15:15.600>like <00:15:15.833>this <00:15:16.066>head <00:15:16.300>is

315
00:15:17.300 --> 00:15:20.500
<00:15:17.300>just <00:15:17.474>a <00:15:17.650>very <00:15:17.824>very <00:15:18.000>tiny <00:15:18.175>text <00:15:18.349>file <00:15:18.525>that <00:15:18.699>says

316
00:15:20.500 --> 00:15:22.300
<00:15:20.500>the <00:15:20.780>reference <00:15:21.060>that <00:15:21.340>I'm <00:15:21.620>currently <00:15:21.900>here.

317
00:15:23.500 --> 00:15:25.900
<00:15:23.500>Is <00:15:23.700>reference <00:15:23.900>heads <00:15:24.100>main, <00:15:24.300>what <00:15:24.500>does <00:15:24.700>that <00:15:24.900>mean?

318
00:15:26.700 --> 00:15:28.300
<00:15:26.700>We <00:15:26.900>have <00:15:27.100>this <00:15:27.300>other <00:15:27.500>file <00:15:27.700>that <00:15:27.900>tracks <00:15:28.100>that.

319
00:15:29.200 --> 00:15:32.600
<00:15:29.200>Again, <00:15:29.340>this <00:15:29.480>is <00:15:29.620>Linus <00:15:29.760>torball <00:15:29.900>just <00:15:30.040>writing <00:15:30.180>down <00:15:30.320>and <00:15:30.460>lists <00:15:30.600>and

320
00:15:32.600 --> 00:15:33.700
<00:15:32.600>in <00:15:33.095>text <00:15:33.590>files.

321
00:15:34.500 --> 00:15:37.200
<00:15:34.500>Oh <00:15:34.780>that <00:15:35.060>goes <00:15:35.340>to <00:15:35.620>head's <00:15:35.900>main

322
00:15:37.200 --> 00:15:39.300
<00:15:37.200>goes <00:15:37.550>to <00:15:37.900>this <00:15:38.250>particular <00:15:38.600>hash.

323
00:15:40.200 --> 00:15:41.600
<00:15:40.200>That <00:15:40.515>is <00:15:40.830>a <00:15:41.145>git <00:15:41.460>commit.

324
00:15:43.500 --> 00:15:46.200
<00:15:43.500>In <00:15:43.733>this <00:15:43.966>case. <00:15:44.200>This <00:15:44.433>is <00:15:44.666>gitlins <00:15:44.900>the

325
00:15:46.200 --> 00:15:50.000
<00:15:46.200>open <00:15:46.327>source <00:15:46.454>git <00:15:46.581>lens <00:15:46.709>project. <00:15:46.836>I <00:15:46.963>used <00:15:47.090>to <00:15:47.218>work <00:15:47.345>for <00:15:47.472>a <00:15:47.600>company

326
00:15:49.200 --> 00:15:52.100
<00:15:49.200>that <00:15:49.355>made <00:15:49.511>gitlins. <00:15:49.666>That's <00:15:49.822>when <00:15:49.977>I <00:15:50.133>made <00:15:50.288>the <00:15:50.444>slide <00:15:50.600>originally.

327
00:15:54.000 --> 00:15:54.200
anyway

328
00:15:56.200 --> 00:15:58.700
<00:15:56.200>Why <00:15:56.355>is <00:15:56.511>that <00:15:56.666>important? <00:15:56.822>Well, <00:15:56.977>what <00:15:57.133>are <00:15:57.288>those <00:15:57.444>references <00:15:57.600>to?

329
00:16:01.700 --> 00:16:04.400
<00:16:01.700>Part <00:16:01.840>of <00:16:01.980>the <00:16:02.120>beauty <00:16:02.260>of <00:16:02.400>get <00:16:02.540>is <00:16:02.680>every <00:16:02.820>single <00:16:02.960>time. <00:16:03.100>You

330
00:16:04.400 --> 00:16:06.900
<00:16:04.400>take <00:16:04.633>a <00:16:04.866>snapshot <00:16:05.100>you <00:16:05.333>do <00:16:05.566>a <00:16:05.800>commit.

331
00:16:07.700 --> 00:16:11.400
<00:16:07.700>What <00:16:07.933>you're <00:16:08.166>actually <00:16:08.400>getting <00:16:08.633>is <00:16:08.866>completely <00:16:09.100>compressed

332
00:16:10.400 --> 00:16:13.500
<00:16:10.400>versions <00:16:10.680>of <00:16:10.959>the <00:16:11.240>file <00:16:11.520>at <00:16:11.800>that

333
00:16:13.500 --> 00:16:14.000
<00:16:13.500>point <00:16:13.725>in <00:16:13.950>time.

334
00:16:14.900 --> 00:16:17.700
<00:16:14.900>So <00:16:15.055>these <00:16:15.211>three <00:16:15.366>files <00:16:15.522>we <00:16:15.677>made <00:16:15.833>some <00:16:15.988>changes. <00:16:16.144>We <00:16:16.300>now

335
00:16:17.700 --> 00:16:19.700
<00:16:17.700>have <00:16:17.933>a <00:16:18.166>new <00:16:18.400>compression <00:16:18.633>of <00:16:18.866>those <00:16:19.100>files.

336
00:16:20.700 --> 00:16:23.100
<00:16:20.700>Very <00:16:21.050>efficient <00:16:21.400>compression. <00:16:21.750>So <00:16:22.100>when

337
00:16:23.100 --> 00:16:26.100
<00:16:23.100>we <00:16:23.216>do <00:16:23.333>a <00:16:23.450>git <00:16:23.566>add <00:16:23.683>we <00:16:23.800>take <00:16:23.916>a <00:16:24.033>compression <00:16:24.150>of <00:16:24.266>these <00:16:24.383>and <00:16:24.500>put

338
00:16:26.100 --> 00:16:27.500
<00:16:26.100>them <00:16:26.415>in <00:16:26.730>a <00:16:27.045>working <00:16:27.360>tree.

339
00:16:28.200 --> 00:16:28.800
<00:16:28.200>that <00:16:28.740>tree

340
00:16:29.700 --> 00:16:32.600
<00:16:29.700>is <00:16:29.900>then <00:16:30.100>full <00:16:30.300>of <00:16:30.500>these <00:16:30.700>blobs <00:16:30.900>binary <00:16:31.100>large

341
00:16:32.600 --> 00:16:36.200
<00:16:32.600>objects <00:16:32.880>is <00:16:33.160>what <00:16:33.440>blob <00:16:33.720>theoretically <00:16:34.000>stands

342
00:16:35.200 --> 00:16:38.100
<00:16:35.200>for. <00:16:35.900>Let <00:16:36.600>me

343
00:16:38.100 --> 00:16:40.700
<00:16:38.100>take <00:16:38.240>that <00:16:38.380>tree <00:16:38.520>on <00:16:38.660>a <00:16:38.800>commit <00:16:38.940>and <00:16:39.080>then <00:16:39.220>we <00:16:39.360>commit <00:16:39.500>that.

344
00:16:42.200 --> 00:16:45.300
<00:16:42.200>Get <00:16:42.327>super <00:16:42.454>efficient <00:16:42.581>if <00:16:42.709>we <00:16:42.836>didn't <00:16:42.963>make <00:16:43.090>any <00:16:43.218>changes <00:16:43.345>to <00:16:43.472>a <00:16:43.600>specific

345
00:16:45.300 --> 00:16:45.800
file.

346
00:16:46.600 --> 00:16:50.000
<00:16:46.600>In <00:16:46.800>a <00:16:47.000>commit <00:16:47.200>or <00:16:47.400>that <00:16:47.600>that <00:16:47.800>iteration <00:16:48.000>it

347
00:16:49.400 --> 00:16:51.400
<00:16:49.400>just <00:16:49.633>points <00:16:49.866>back <00:16:50.100>to <00:16:50.333>the <00:16:50.566>previous <00:16:50.800>version.

348
00:16:52.400 --> 00:16:55.200
<00:16:52.400>And <00:16:52.516>says, <00:16:52.633>hey, <00:16:52.750>we'll <00:16:52.866>just <00:16:52.983>use <00:16:53.100>that <00:16:53.216>version. <00:16:53.333>I <00:16:53.449>wouldn't <00:16:53.566>make <00:16:53.683>any <00:16:53.800>changes

349
00:16:55.200 --> 00:16:58.400
<00:16:55.200>this <00:16:55.327>time. <00:16:55.454>We'll <00:16:55.581>just <00:16:55.709>use <00:16:55.836>that <00:16:55.963>version <00:16:56.090>and <00:16:56.218>get <00:16:56.345>trees <00:16:56.472>back <00:16:56.600>all

350
00:16:58.400 --> 00:16:58.600
<00:16:58.400>the <00:16:58.580>way.

351
00:17:00.500 --> 00:17:02.200
<00:17:00.500>But <00:17:00.700>what <00:17:00.900>this <00:17:01.100>means <00:17:01.300>from <00:17:01.500>a <00:17:01.700>security <00:17:01.900>aspect.

352
00:17:03.200 --> 00:17:06.100
<00:17:03.200>Is <00:17:03.307>that <00:17:03.415>if <00:17:03.523>we <00:17:03.630>make <00:17:03.738>a <00:17:03.846>commit <00:17:03.953>here <00:17:04.061>because <00:17:04.169>we're <00:17:04.276>moving <00:17:04.384>forward <00:17:04.492>in <00:17:04.600>time

353
00:17:06.100 --> 00:17:09.100
<00:17:06.099>here <00:17:06.255>this <00:17:06.411>rate <00:17:06.566>to <00:17:06.722>the <00:17:06.877>right <00:17:07.033>is <00:17:07.188>forward <00:17:07.344>in <00:17:07.500>time.

354
00:17:09.100 --> 00:17:12.900
<00:17:09.099>If <00:17:09.227>we <00:17:09.354>make <00:17:09.481>commit <00:17:09.609>here <00:17:09.736>where <00:17:09.863>we <00:17:09.990>added <00:17:10.118>a <00:17:10.245>secret. <00:17:10.372>Let's <00:17:10.500>say

355
00:17:12.900 --> 00:17:14.000
<00:17:12.900>an <00:17:13.395>AWS <00:17:13.890>key.

356
00:17:15.600 --> 00:17:18.200
<00:17:15.599>In <00:17:15.755>plain <00:17:15.911>text <00:17:16.066>in <00:17:16.222>our <00:17:16.377>codes. <00:17:16.533>We <00:17:16.688>were <00:17:16.844>testing <00:17:17.000>something.

357
00:17:19.100 --> 00:17:22.600
<00:17:19.099>And <00:17:19.199>the <00:17:19.300>next <00:17:19.399>time <00:17:19.500>we <00:17:19.599>go <00:17:19.699>to <00:17:19.800>work <00:17:19.899>like <00:17:20.000>oh <00:17:20.099>that <00:17:20.199>shouldn't <00:17:20.300>be <00:17:20.399>there. <00:17:20.500>I'll

358
00:17:22.600 --> 00:17:23.800
<00:17:22.599>just <00:17:22.754>go <00:17:22.908>ahead <00:17:23.062>and <00:17:23.217>take <00:17:23.371>that <00:17:23.525>out <00:17:23.679>now.

359
00:17:25.600 --> 00:17:28.200
<00:17:25.599>And <00:17:25.727>move <00:17:25.854>on <00:17:25.981>with <00:17:26.109>our <00:17:26.236>day <00:17:26.363>by <00:17:26.490>the <00:17:26.618>time <00:17:26.745>our <00:17:26.872>code <00:17:27.000>over

360
00:17:28.200 --> 00:17:32.400
<00:17:28.200>here <00:17:28.316>gets <00:17:28.433>to <00:17:28.550>production <00:17:28.666>and <00:17:28.783>then <00:17:28.900>we <00:17:29.016>go <00:17:29.133>through <00:17:29.250>our <00:17:29.366>normal <00:17:29.483>static <00:17:29.600>code

361
00:17:32.400 --> 00:17:32.700
analysis.

362
00:17:33.600 --> 00:17:36.300
<00:17:33.600>Hey, <00:17:33.755>yeah, <00:17:33.911>the <00:17:34.066>production <00:17:34.222>code <00:17:34.377>there's <00:17:34.533>no <00:17:34.688>secret <00:17:34.844>in <00:17:35.000>there.

363
00:17:36.300 --> 00:17:36.700
<00:17:36.300>That's <00:17:36.660>fine.

364
00:17:39.200 --> 00:17:40.000
<00:17:39.200>If <00:17:39.344>we <00:17:39.488>think <00:17:39.632>back <00:17:39.776>to <00:17:39.920>Samsung.

365
00:17:41.100 --> 00:17:44.800
<00:17:41.100>Part <00:17:41.240>of <00:17:41.379>the <00:17:41.520>way, <00:17:41.659>they <00:17:41.800>discovered <00:17:41.939>the <00:17:42.080>6000 <00:17:42.219>Keys <00:17:42.360>wasn't <00:17:42.500>just

366
00:17:44.800 --> 00:17:46.400
<00:17:44.800>what <00:17:45.080>was <00:17:45.360>in <00:17:45.639>the <00:17:45.919>production <00:17:46.200>branch.

367
00:17:47.100 --> 00:17:51.000
<00:17:47.100>They <00:17:47.207>look <00:17:47.315>through <00:17:47.423>all <00:17:47.530>the <00:17:47.638>branches <00:17:47.746>and <00:17:47.853>started <00:17:47.961>looking <00:17:48.069>through <00:17:48.176>all <00:17:48.284>the <00:17:48.392>commits <00:17:48.500>because

368
00:17:50.200 --> 00:17:52.900
<00:17:50.200>this <00:17:50.480>commit <00:17:50.760>here <00:17:51.040>is <00:17:51.320>there <00:17:51.600>forever.

369
00:17:54.300 --> 00:17:57.300
<00:17:54.300>The <00:17:54.500>secrets <00:17:54.700>in <00:17:54.899>there <00:17:55.100>are <00:17:55.300>accessible <00:17:55.500>as <00:17:55.700>fast

370
00:17:57.300 --> 00:17:59.100
<00:17:57.300>as <00:17:57.580>you <00:17:57.860>can <00:17:58.139>type <00:17:58.419>get <00:17:58.700>checkout.

371
00:18:00.200 --> 00:18:03.300
<00:18:00.200>So <00:18:00.340>writing <00:18:00.480>a <00:18:00.620>script <00:18:00.760>that <00:18:00.900>goes <00:18:01.040>in <00:18:01.180>transverses <00:18:01.320>the <00:18:01.460>entire <00:18:01.600>tree.

372
00:18:04.100 --> 00:18:06.500
<00:18:04.100>checks <00:18:04.300>out <00:18:04.500>and <00:18:04.699>scans <00:18:04.899>checks <00:18:05.100>out <00:18:05.300>and <00:18:05.500>scans

373
00:18:07.100 --> 00:18:10.800
<00:18:07.100>is <00:18:07.255>extremely <00:18:07.411>fast. <00:18:07.566>It's <00:18:07.722>super <00:18:07.877>easy <00:18:08.033>to <00:18:08.188>write <00:18:08.344>and <00:18:08.500>we'll

374
00:18:10.800 --> 00:18:13.200
<00:18:10.800>start <00:18:11.149>producing <00:18:11.500>results <00:18:11.850>very <00:18:12.200>quickly.

375
00:18:16.800 --> 00:18:19.500
<00:18:16.800>Importantly <00:18:17.033>give <00:18:17.266>not <00:18:17.500>tracking <00:18:17.733>diffs. <00:18:17.966>We <00:18:18.200>use

376
00:18:19.500 --> 00:18:22.500
<00:18:19.500>diffs <00:18:19.850>the <00:18:20.200>concept <00:18:20.550>of <00:18:20.900>diffs

377
00:18:22.500 --> 00:18:25.100
<00:18:22.500>when <00:18:22.655>we <00:18:22.811>make <00:18:22.966>patches <00:18:23.122>and <00:18:23.277>that's <00:18:23.433>what <00:18:23.588>gets <00:18:23.744>pushed <00:18:23.900>over

378
00:18:25.100 --> 00:18:28.100
<00:18:25.100>the <00:18:25.274>wire <00:18:25.449>because <00:18:25.625>that's <00:18:25.800>really <00:18:25.975>really <00:18:26.149>small <00:18:26.324>and <00:18:26.500>then

379
00:18:28.100 --> 00:18:31.300
<00:18:28.100>we <00:18:28.240>reapply <00:18:28.379>that <00:18:28.520>patch <00:18:28.659>made <00:18:28.800>out <00:18:28.939>of <00:18:29.080>the <00:18:29.219>diff <00:18:29.360>on <00:18:29.500>the

380
00:18:31.300 --> 00:18:34.500
<00:18:31.300>other <00:18:31.440>end. <00:18:31.580>So <00:18:31.720>when <00:18:31.860>you <00:18:32.000>do <00:18:32.139>a <00:18:32.280>get <00:18:32.419>commit <00:18:32.560>You're <00:18:32.700>Building

381
00:18:35.300 --> 00:18:38.200
<00:18:35.300>of <00:18:35.475>real <00:18:35.649>actual <00:18:35.825>compression, <00:18:36.000>but <00:18:36.175>then <00:18:36.350>when <00:18:36.524>you <00:18:36.700>do

382
00:18:38.200 --> 00:18:41.500
<00:18:38.200>a <00:18:38.355>get <00:18:38.511>push <00:18:38.666>get <00:18:38.822>just <00:18:38.977>moves <00:18:39.133>the <00:18:39.288>changes <00:18:39.444>over <00:18:39.600>the

383
00:18:41.500 --> 00:18:42.800
<00:18:41.500>wire, <00:18:41.792>so <00:18:42.085>it's <00:18:42.377>super <00:18:42.670>efficient.

384
00:18:43.900 --> 00:18:44.700
<00:18:43.900>But <00:18:44.080>once <00:18:44.260>you <00:18:44.440>do <00:18:44.620>that.

385
00:18:45.500 --> 00:18:48.200
<00:18:45.500>The <00:18:45.733>same <00:18:45.966>principle <00:18:46.200>applies <00:18:46.433>you're <00:18:46.666>if <00:18:46.900>you

386
00:18:48.200 --> 00:18:51.800
<00:18:48.200>pushed <00:18:48.400>this <00:18:48.600>and <00:18:48.800>then <00:18:49.000>you <00:18:49.200>pushed <00:18:49.400>this <00:18:49.600>all

387
00:18:51.800 --> 00:18:54.100
<00:18:51.800>the <00:18:51.907>things <00:18:52.015>in <00:18:52.123>here <00:18:52.230>still <00:18:52.338>are <00:18:52.446>going <00:18:52.553>to <00:18:52.661>exist <00:18:52.769>for <00:18:52.876>the <00:18:52.984>rest <00:18:53.092>of <00:18:53.200>time.

388
00:18:55.900 --> 00:18:58.700
<00:18:55.900>All <00:18:56.075>right <00:18:56.250>back <00:18:56.425>to <00:18:56.600>our <00:18:56.775>regularly <00:18:56.950>scheduled <00:18:57.125>program. <00:18:57.300>Thanks

389
00:18:58.700 --> 00:19:01.500
<00:18:58.700>for <00:18:58.807>coming <00:18:58.915>to <00:18:59.023>my <00:18:59.130>talk <00:18:59.238>today. <00:18:59.346>It's <00:18:59.453>not <00:18:59.561>coming <00:18:59.669>in <00:18:59.776>your <00:18:59.884>secrets <00:18:59.992>get <00:19:00.100>hooks

390
00:19:01.500 --> 00:19:01.800
<00:19:01.500>for <00:19:01.635>the <00:19:01.770>rescue.

391
00:19:03.200 --> 00:19:06.000
<00:19:03.200>So <00:19:03.375>get <00:19:03.550>gives <00:19:03.725>us <00:19:03.900>away <00:19:04.075>internally <00:19:04.250>to <00:19:04.425>ignore <00:19:04.600>things.

392
00:19:07.200 --> 00:19:10.300
<00:19:07.200>So <00:19:07.433>if <00:19:07.666>we <00:19:07.900>put <00:19:08.133>our <00:19:08.366>secrets <00:19:08.600>our

393
00:19:10.300 --> 00:19:12.200
<00:19:10.300>credentials <00:19:10.649>and <00:19:11.000>an <00:19:11.350>EnV <00:19:11.700>file.

394
00:19:14.400 --> 00:19:14.600
<00:19:14.400>for <00:19:14.580>instance

395
00:19:16.300 --> 00:19:17.300
<00:19:16.300>and <00:19:16.600>then <00:19:16.899>push <00:19:17.200>that

396
00:19:19.600 --> 00:19:22.500
<00:19:19.600>are <00:19:19.740>in <00:19:19.879>any <00:19:20.020>of <00:19:20.159>the <00:19:20.300>file <00:19:20.439>and <00:19:20.580>then <00:19:20.719>we <00:19:20.860>included <00:19:21.000>here

397
00:19:22.500 --> 00:19:25.200
<00:19:22.500>then <00:19:22.640>get <00:19:22.780>will <00:19:22.920>completely <00:19:23.060>ignore <00:19:23.200>it. <00:19:23.340>It <00:19:23.480>will <00:19:23.620>never <00:19:23.760>make <00:19:23.900>it

398
00:19:25.200 --> 00:19:28.500
<00:19:25.200>to <00:19:25.327>source <00:19:25.454>code <00:19:25.581>and <00:19:25.709>everybody's <00:19:25.836>happy <00:19:25.963>except <00:19:26.090>there's <00:19:26.218>a <00:19:26.345>problem <00:19:26.472>right <00:19:26.600>here.

399
00:19:29.500 --> 00:19:30.000
that

400
00:19:31.500 --> 00:19:34.100
<00:19:31.500>we've <00:19:31.733>accidentally <00:19:31.966>commented <00:19:32.200>out <00:19:32.433>Envy. <00:19:32.666>I <00:19:32.900>know

401
00:19:34.100 --> 00:19:37.100
<00:19:34.100>exactly <00:19:34.274>how <00:19:34.449>I <00:19:34.625>did <00:19:34.800>this <00:19:34.975>working <00:19:35.149>in <00:19:35.324>vs <00:19:35.500>code.

402
00:19:37.100 --> 00:19:40.200
<00:19:37.100>I <00:19:37.333>highlighted <00:19:37.566>two <00:19:37.800>lines <00:19:38.033>and <00:19:38.266>did <00:19:38.500>the

403
00:19:40.200 --> 00:19:43.300
<00:19:40.200>command <00:19:40.900>command <00:19:41.600>slash.

404
00:19:44.600 --> 00:19:47.700
<00:19:44.600>I <00:19:44.740>meant <00:19:44.879>to <00:19:45.020>only <00:19:45.159>do <00:19:45.300>it <00:19:45.439>once <00:19:45.580>to <00:19:45.719>add <00:19:45.860>this <00:19:46.000>as

405
00:19:47.700 --> 00:19:50.200
<00:19:47.700>a <00:19:47.900>comment. <00:19:48.100>I <00:19:48.300>accidentally <00:19:48.500>commented <00:19:48.700>the <00:19:48.900>line <00:19:49.100>below

406
00:19:50.200 --> 00:19:53.200
<00:19:50.200>it. <00:19:50.355>I <00:19:50.511>honestly <00:19:50.666>did <00:19:50.822>this <00:19:50.977>by <00:19:51.133>accident <00:19:51.288>once <00:19:51.444>and <00:19:51.600>took

407
00:19:53.200 --> 00:19:55.600
<00:19:53.200>a <00:19:53.327>screenshot <00:19:53.454>of <00:19:53.581>it <00:19:53.709>because <00:19:53.836>I <00:19:53.963>thought <00:19:54.090>wow <00:19:54.218>that's <00:19:54.345>that's <00:19:54.472>not <00:19:54.600>good.

408
00:19:59.100 --> 00:20:00.000
<00:19:59.100>so <00:19:59.504>we <00:19:59.910>can

409
00:20:01.100 --> 00:20:04.200
<00:20:01.100>use <00:20:01.227>it <00:20:01.354>to <00:20:01.481>make <00:20:01.609>sure <00:20:01.736>that <00:20:01.863>we <00:20:01.990>don't <00:20:02.118>so <00:20:02.245>you <00:20:02.372>might <00:20:02.500>be

410
00:20:04.200 --> 00:20:07.000
<00:20:04.200>thinking. <00:20:04.316>Well, <00:20:04.433>I'll <00:20:04.550>just <00:20:04.666>move <00:20:04.783>my <00:20:04.900>Envy <00:20:05.016>file <00:20:05.133>somewhere <00:20:05.250>else <00:20:05.366>and <00:20:05.483>reference <00:20:05.600>it.

411
00:20:07.300 --> 00:20:10.700
<00:20:07.300>That's <00:20:07.440>what <00:20:07.580>AWS <00:20:07.720>does. <00:20:07.860>That's <00:20:08.000>why <00:20:08.139>AWS <00:20:08.280>gives <00:20:08.419>you <00:20:08.560>by <00:20:08.700>default

412
00:20:10.700 --> 00:20:13.500
<00:20:10.700>a <00:20:10.980>DOT <00:20:11.260>AWS <00:20:11.540>directory <00:20:11.820>out <00:20:12.100>on

413
00:20:13.500 --> 00:20:14.200
<00:20:13.500>your <00:20:13.815>home <00:20:14.130>directory.

414
00:20:14.800 --> 00:20:17.700
<00:20:14.800>That <00:20:15.080>AWS <00:20:15.360>slash <00:20:15.639>credentials <00:20:15.919>is <00:20:16.200>on

415
00:20:17.700 --> 00:20:20.100
<00:20:17.700>your <00:20:17.855>home. <00:20:18.011>It's <00:20:18.166>not <00:20:18.322>in <00:20:18.477>your <00:20:18.633>project <00:20:18.788>file. <00:20:18.944>So <00:20:19.100>it's

416
00:20:20.100 --> 00:20:24.300
<00:20:20.100>it <00:20:20.227>should <00:20:20.354>be <00:20:20.481>safe <00:20:20.609>out <00:20:20.736>there. <00:20:20.863>If <00:20:20.990>you <00:20:21.118>add <00:20:21.245>then <00:20:21.372>Dottie <00:20:21.500>AWS

417
00:20:23.300 --> 00:20:26.000
<00:20:23.300>into <00:20:23.766>your <00:20:24.233>git <00:20:24.700>ignore.

418
00:20:26.900 --> 00:20:28.200
<00:20:26.900>Well, <00:20:27.134>it <00:20:27.368>should <00:20:27.602>be <00:20:27.836>fine, <00:20:28.070>right?

419
00:20:30.800 --> 00:20:33.700
<00:20:30.800>The <00:20:31.033>other <00:20:31.266>path <00:20:31.500>is <00:20:31.733>using <00:20:31.966>encrypted <00:20:32.200>vaults

420
00:20:33.700 --> 00:20:37.600
<00:20:33.700>and <00:20:33.840>this <00:20:33.980>is <00:20:34.120>the <00:20:34.260>preferred <00:20:34.400>method. <00:20:34.540>This <00:20:34.680>is <00:20:34.820>what <00:20:34.960>you <00:20:35.100>should

421
00:20:37.600 --> 00:20:38.700
<00:20:37.600>be <00:20:37.847>doing <00:20:38.095>with <00:20:38.342>your <00:20:38.590>secrets.

422
00:20:40.200 --> 00:20:43.500
<00:20:40.200>Adding <00:20:40.327>them <00:20:40.454>to <00:20:40.581>things <00:20:40.709>like <00:20:40.836>hash <00:20:40.963>Court <00:20:41.090>Vault <00:20:41.218>or <00:20:41.345>Azure <00:20:41.472>key <00:20:41.600>Vault

423
00:20:43.500 --> 00:20:46.300
<00:20:43.500>or <00:20:43.780>I <00:20:44.060>am <00:20:44.340>secret <00:20:44.620>manager <00:20:44.900>on

424
00:20:46.300 --> 00:20:49.400
<00:20:46.300>Amazon. <00:20:46.533>Every <00:20:46.766>platform <00:20:47.000>has <00:20:47.233>some <00:20:47.466>version <00:20:47.700>of

425
00:20:49.400 --> 00:20:52.500
<00:20:49.400>this <00:20:49.575>and <00:20:49.750>there <00:20:49.925>are <00:20:50.100>tools <00:20:50.275>like <00:20:50.450>Doppler <00:20:50.625>which <00:20:50.800>company

426
00:20:52.500 --> 00:20:55.500
<00:20:52.500>out <00:20:52.640>of <00:20:52.780>Australia <00:20:52.920>who <00:20:53.060>makes <00:20:53.200>a <00:20:53.340>really <00:20:53.480>cool <00:20:53.620>universal <00:20:53.760>one. <00:20:53.900>You

427
00:20:55.500 --> 00:20:58.100
<00:20:55.500>can <00:20:55.700>use <00:20:55.900>everywhere. <00:20:56.100>So <00:20:56.300>you <00:20:56.500>you <00:20:56.700>store <00:20:56.900>your

428
00:20:58.100 --> 00:20:58.600
<00:20:58.100>secrets <00:20:58.324>in <00:20:58.550>there.

429
00:20:59.500 --> 00:21:02.600
<00:20:59.500>In <00:20:59.655>one <00:20:59.811>of <00:20:59.966>these <00:21:00.122>services <00:21:00.277>and <00:21:00.433>then <00:21:00.588>you <00:21:00.744>programmatically <00:21:00.900>call

430
00:21:02.600 --> 00:21:05.500
<00:21:02.600>them <00:21:02.833>back <00:21:03.066>into <00:21:03.300>the <00:21:03.533>code. <00:21:03.766>So <00:21:04.000>if

431
00:21:05.500 --> 00:21:08.800
<00:21:05.500>a <00:21:05.675>developer <00:21:05.850>does <00:21:06.025>it <00:21:06.200>the <00:21:06.375>right <00:21:06.550>way <00:21:06.725>if <00:21:06.900>they're

432
00:21:08.800 --> 00:21:11.400
<00:21:08.800>code <00:21:09.000>leaks <00:21:09.200>they'll <00:21:09.399>say <00:21:09.600>all <00:21:09.800>right <00:21:10.000>database <00:21:10.200>credentials

433
00:21:11.400 --> 00:21:14.200
<00:21:11.400>equal <00:21:11.633>Vault <00:21:11.866>dot <00:21:12.100>the <00:21:12.333>name <00:21:12.566>of <00:21:12.800>the

434
00:21:14.200 --> 00:21:16.500
<00:21:14.200>secret <00:21:14.550>dot <00:21:14.900>some <00:21:15.250>internal <00:21:15.600>code.

435
00:21:18.300 --> 00:21:21.800
<00:21:18.300>To <00:21:18.533>the <00:21:18.766>attacker <00:21:19.000>that's <00:21:19.233>useless. <00:21:19.466>They <00:21:19.700>know

436
00:21:21.800 --> 00:21:24.600
<00:21:21.800>that <00:21:21.955>oh, <00:21:22.111>man, <00:21:22.266>all <00:21:22.422>the <00:21:22.577>secrets <00:21:22.733>are <00:21:22.888>involved. <00:21:23.044>I'm <00:21:23.200>just

437
00:21:24.600 --> 00:21:26.800
<00:21:24.600>gonna <00:21:24.740>move <00:21:24.879>on <00:21:25.020>to <00:21:25.159>look <00:21:25.300>for <00:21:25.439>something <00:21:25.580>else <00:21:25.719>because <00:21:25.860>I <00:21:26.000>can't

438
00:21:27.500 --> 00:21:30.500
<00:21:27.500>that's <00:21:27.675>such <00:21:27.850>a <00:21:28.025>headache <00:21:28.200>to <00:21:28.375>even <00:21:28.550>go <00:21:28.725>try <00:21:28.900>to

439
00:21:30.500 --> 00:21:32.600
<00:21:30.500>break <00:21:30.700>into <00:21:30.900>that. <00:21:31.100>I'm <00:21:31.300>not <00:21:31.500>even <00:21:31.700>gonna <00:21:31.900>bother.

440
00:21:34.500 --> 00:21:37.600
<00:21:34.500>And <00:21:34.640>if <00:21:34.780>we <00:21:34.920>just <00:21:35.060>did <00:21:35.200>those <00:21:35.340>two <00:21:35.480>things <00:21:35.620>consistently <00:21:35.760>use <00:21:35.900>get

441
00:21:37.600 --> 00:21:40.900
<00:21:37.600>ignore <00:21:37.800>and <00:21:38.000>hashcore <00:21:38.199>on <00:21:38.399>things <00:21:38.600>like <00:21:38.800>Vault, <00:21:39.000>um

442
00:21:40.900 --> 00:21:43.300
<00:21:40.900>key <00:21:41.180>stores <00:21:41.460>that <00:21:41.740>we <00:21:42.020>can <00:21:42.300>programmatically

443
00:21:43.300 --> 00:21:46.300
<00:21:43.300>call <00:21:43.580>then <00:21:43.860>this <00:21:44.139>talk <00:21:44.419>would <00:21:44.700>need

444
00:21:46.300 --> 00:21:46.800
<00:21:46.300>to <00:21:46.750>exist.

445
00:21:49.200 --> 00:21:52.300
<00:21:49.200>Unfortunately, <00:21:49.316>I <00:21:49.433>showed <00:21:49.550>the <00:21:49.666>numbers <00:21:49.783>earlier. <00:21:49.900>This <00:21:50.016>is <00:21:50.133>a <00:21:50.250>growing <00:21:50.366>problem. <00:21:50.483>Not <00:21:50.600>a

446
00:21:52.300 --> 00:21:52.700
<00:21:52.300>shrinking <00:21:52.660>one.

447
00:21:54.300 --> 00:21:57.400
<00:21:54.300>It's <00:21:54.399>not <00:21:54.500>from <00:21:54.600>the <00:21:54.700>lack <00:21:54.800>of <00:21:54.899>people <00:21:55.000>wanting <00:21:55.100>to <00:21:55.200>be <00:21:55.300>in <00:21:55.399>more <00:21:55.500>insecure. <00:21:55.600>It's <00:21:55.700>from

448
00:21:57.400 --> 00:22:00.600
<00:21:57.400>the <00:21:57.493>fact <00:21:57.586>that <00:21:57.680>we're <00:21:57.773>in <00:21:57.866>a <00:21:57.960>hurry <00:21:58.053>that <00:21:58.146>we <00:21:58.240>have <00:21:58.333>so <00:21:58.426>many <00:21:58.520>things <00:21:58.613>to <00:21:58.706>balance <00:21:58.800>in

449
00:22:00.600 --> 00:22:03.000
<00:22:00.600>our <00:22:00.755>lives. <00:22:00.911>There's <00:22:01.066>only <00:22:01.222>so <00:22:01.377>many <00:22:01.533>hours <00:22:01.688>in <00:22:01.844>the <00:22:02.000>day.

450
00:22:05.100 --> 00:22:08.800
<00:22:05.100>And <00:22:05.177>we <00:22:05.255>just <00:22:05.333>got <00:22:05.411>to <00:22:05.488>make <00:22:05.566>sure <00:22:05.644>that <00:22:05.722>endpoints <00:22:05.800>up. <00:22:05.877>We <00:22:05.955>just <00:22:06.033>got <00:22:06.111>to <00:22:06.188>test <00:22:06.266>this. <00:22:06.344>I <00:22:06.422>actually <00:22:06.500>caught

451
00:22:08.800 --> 00:22:11.700
<00:22:08.800>myself <00:22:08.955>a <00:22:09.111>couple <00:22:09.266>weeks <00:22:09.422>ago <00:22:09.577>while <00:22:09.733>I <00:22:09.888>was <00:22:10.044>tinkering <00:22:10.200>with

452
00:22:11.700 --> 00:22:14.700
<00:22:11.700>something <00:22:12.050>almost <00:22:12.400>committing <00:22:12.750>secret <00:22:13.100>doing

453
00:22:14.700 --> 00:22:17.000
<00:22:14.700>exactly <00:22:14.900>this <00:22:15.100>it's <00:22:15.300>just <00:22:15.500>so <00:22:15.700>easy <00:22:15.900>to <00:22:16.100>do.

454
00:22:18.800 --> 00:22:20.100
<00:22:18.800>And <00:22:18.995>I'm <00:22:19.190>not <00:22:19.385>here <00:22:19.580>to <00:22:19.774>shame <00:22:19.969>anyone.

455
00:22:20.800 --> 00:22:23.400
<00:22:20.800>I'm <00:22:20.975>not <00:22:21.149>saying <00:22:21.325>you <00:22:21.500>shouldn't <00:22:21.675>test <00:22:21.850>that <00:22:22.024>that <00:22:22.200>Secret's

456
00:22:23.400 --> 00:22:26.000
<00:22:23.400>working. <00:22:23.527>Of <00:22:23.654>course <00:22:23.781>not <00:22:23.909>I'm <00:22:24.036>not <00:22:24.163>gonna <00:22:24.290>tell <00:22:24.418>you <00:22:24.545>how <00:22:24.672>to <00:22:24.800>develop.

457
00:22:26.900 --> 00:22:29.100
<00:22:26.900>But <00:22:27.133>realize <00:22:27.366>that <00:22:27.600>is <00:22:27.833>not <00:22:28.066>an <00:22:28.300>issue

458
00:22:29.100 --> 00:22:30.100
<00:22:29.100>you're <00:22:29.280>ever <00:22:29.459>going <00:22:29.639>to <00:22:29.820>solve <00:22:30.000>either

459
00:22:30.900 --> 00:22:33.400
<00:22:30.900>That's <00:22:31.133>just <00:22:31.366>a <00:22:31.600>workflow <00:22:31.833>when <00:22:32.066>you're <00:22:32.300>debugging

460
00:22:33.400 --> 00:22:35.600
<00:22:33.400>something. <00:22:33.600>Sometimes <00:22:33.800>that's <00:22:34.000>the <00:22:34.200>right <00:22:34.400>answer <00:22:34.600>to <00:22:34.800>do.

461
00:22:39.500 --> 00:22:42.100
<00:22:39.500>But <00:22:39.655>if <00:22:39.811>you <00:22:39.966>actually <00:22:40.122>commit <00:22:40.277>that <00:22:40.433>secret <00:22:40.588>and <00:22:40.744>push <00:22:40.900>it

462
00:22:42.100 --> 00:22:45.300
<00:22:42.100>that's <00:22:42.274>what <00:22:42.449>I'm <00:22:42.625>here <00:22:42.800>to <00:22:42.975>really <00:22:43.149>real <00:22:43.324>rally <00:22:43.500>against

463
00:22:45.300 --> 00:22:48.800
<00:22:45.300>and <00:22:45.533>hopefully <00:22:45.766>encourage <00:22:46.000>you <00:22:46.233>to <00:22:46.466>never <00:22:46.700>actually

464
00:22:48.800 --> 00:22:49.900
<00:22:48.800>commit <00:22:49.130>and <00:22:49.460>push <00:22:49.790>again.

465
00:22:50.700 --> 00:22:53.300
<00:22:50.700>So <00:22:50.816>in <00:22:50.933>theory, <00:22:51.050>if <00:22:51.166>you <00:22:51.283>do <00:22:51.400>push <00:22:51.516>a <00:22:51.633>secret <00:22:51.750>you <00:22:51.866>can <00:22:51.983>get <00:22:52.100>it

466
00:22:53.300 --> 00:22:53.600
<00:22:53.300>back <00:22:53.570>out.

467
00:22:54.400 --> 00:22:56.600
<00:22:54.400>It's <00:22:54.540>get <00:22:54.680>after <00:22:54.820>all <00:22:54.960>you <00:22:55.100>have <00:22:55.240>complete <00:22:55.380>control <00:22:55.520>of <00:22:55.660>your <00:22:55.800>history.

468
00:22:57.800 --> 00:23:00.500
<00:22:57.800>If <00:22:57.955>he's <00:22:58.111>only <00:22:58.266>you <00:22:58.422>when <00:22:58.577>you're <00:22:58.733>working <00:22:58.888>completely <00:22:59.044>by <00:22:59.200>yourself

469
00:23:00.500 --> 00:23:03.500
<00:23:00.500>and <00:23:00.640>no <00:23:00.780>one <00:23:00.920>else <00:23:01.060>is <00:23:01.200>can <00:23:01.340>get <00:23:01.480>access <00:23:01.620>to <00:23:01.760>that <00:23:01.900>code

470
00:23:03.500 --> 00:23:03.900
<00:23:03.500>you <00:23:03.860>pushed.

471
00:23:04.700 --> 00:23:07.200
<00:23:04.700>It's <00:23:05.050>pretty <00:23:05.400>straightforward. <00:23:05.750>Even <00:23:06.100>if

472
00:23:07.200 --> 00:23:08.700
<00:23:07.200>it's <00:23:07.537>of <00:23:07.875>you <00:23:08.212>commits <00:23:08.550>back.

473
00:23:09.600 --> 00:23:12.200
<00:23:09.600>It <00:23:09.727>gives <00:23:09.854>you <00:23:09.981>the <00:23:10.109>tools. <00:23:10.236>I'm <00:23:10.363>not <00:23:10.490>gonna <00:23:10.618>give <00:23:10.745>a <00:23:10.872>demo <00:23:11.000>today,

474
00:23:12.200 --> 00:23:15.400
<00:23:12.200>but <00:23:12.355>the <00:23:12.511>documentation <00:23:12.666>is <00:23:12.822>there. <00:23:12.977>How <00:23:13.133>do <00:23:13.288>you <00:23:13.444>surgically <00:23:13.600>remove?

475
00:23:16.400 --> 00:23:17.800
<00:23:16.400>a <00:23:16.652>single <00:23:16.904>commit <00:23:17.156>from <00:23:17.408>your <00:23:17.659>history

476
00:23:19.800 --> 00:23:22.100
<00:23:19.800>But <00:23:19.940>we're <00:23:20.080>not <00:23:20.220>working <00:23:20.360>by <00:23:20.500>ourselves. <00:23:20.639>That's <00:23:20.780>the <00:23:20.919>whole <00:23:21.060>point <00:23:21.200>of

477
00:23:22.100 --> 00:23:25.500
<00:23:22.100>devops. <00:23:22.199>You're <00:23:22.300>working <00:23:22.399>on <00:23:22.500>a <00:23:22.600>team <00:23:22.699>you're <00:23:22.800>working <00:23:22.899>with <00:23:23.000>a <00:23:23.100>bunch <00:23:23.199>of <00:23:23.300>teams. <00:23:23.399>Your <00:23:23.500>code

478
00:23:25.500 --> 00:23:28.100
<00:23:25.500>is <00:23:25.627>going <00:23:25.754>to <00:23:25.881>end <00:23:26.009>up <00:23:26.136>in <00:23:26.263>a <00:23:26.390>pipeline <00:23:26.518>with <00:23:26.645>a <00:23:26.772>bunch <00:23:26.900>of

479
00:23:28.100 --> 00:23:28.500
<00:23:28.100>other <00:23:28.460>code.

480
00:23:30.700 --> 00:23:33.400
<00:23:30.700>Then <00:23:30.900>it <00:23:31.100>becomes <00:23:31.300>really <00:23:31.500>painful <00:23:31.700>to <00:23:31.900>to <00:23:32.100>remove

481
00:23:33.400 --> 00:23:36.000
<00:23:33.400>because <00:23:33.540>now <00:23:33.680>you <00:23:33.820>have <00:23:33.960>to <00:23:34.100>coordinate <00:23:34.240>between <00:23:34.380>all <00:23:34.520>of <00:23:34.660>the <00:23:34.800>team.

482
00:23:36.800 --> 00:23:37.700
<00:23:36.800>What <00:23:37.002>are <00:23:37.205>we <00:23:37.407>doing <00:23:37.610>here?

483
00:23:38.600 --> 00:23:41.500
<00:23:38.600>At <00:23:38.716>the <00:23:38.833>same <00:23:38.949>time <00:23:39.066>we <00:23:39.183>have <00:23:39.300>to <00:23:39.416>remove <00:23:39.533>it <00:23:39.649>and <00:23:39.766>then <00:23:39.883>we <00:23:40.000>push

484
00:23:41.500 --> 00:23:45.100
<00:23:41.500>rebase <00:23:41.850>and <00:23:42.200>understand <00:23:42.550>exactly <00:23:42.900>which

485
00:23:44.100 --> 00:23:46.300
<00:23:44.100>is <00:23:44.449>the <00:23:44.800>true <00:23:45.149>version <00:23:45.500>now.

486
00:23:47.200 --> 00:23:47.900
<00:23:47.200>Not <00:23:47.515>to <00:23:47.830>mention.

487
00:23:49.200 --> 00:23:52.400
<00:23:49.200>You <00:23:49.355>have <00:23:49.511>to <00:23:49.666>actually <00:23:49.822>admit <00:23:49.977>to <00:23:50.133>your <00:23:50.288>team <00:23:50.444>and <00:23:50.600>to

488
00:23:52.400 --> 00:23:55.200
<00:23:52.400>the <00:23:52.555>world <00:23:52.711>like <00:23:52.866>I <00:23:53.022>messed <00:23:53.177>up. <00:23:53.333>Sorry <00:23:53.488>everybody. <00:23:53.644>We <00:23:53.800>have

489
00:23:55.200 --> 00:23:56.300
<00:23:55.200>to <00:23:55.447>rotate <00:23:55.695>a <00:23:55.942>key <00:23:56.190>now.

490
00:23:56.900 --> 00:23:58.700
<00:23:56.900>I <00:23:57.180>know <00:23:57.460>that's <00:23:57.740>painful. <00:23:58.020>But <00:23:58.300>hey.

491
00:24:00.100 --> 00:24:01.800
<00:24:00.100>It's <00:24:00.333>better <00:24:00.566>than <00:24:00.800>having <00:24:01.033>a <00:24:01.266>security <00:24:01.500>incident.

492
00:24:05.200 --> 00:24:08.700
<00:24:05.200>So <00:24:05.316>if <00:24:05.433>you <00:24:05.550>haven't <00:24:05.666>manual <00:24:05.783>tell <00:24:05.900>one <00:24:06.016>of <00:24:06.133>the <00:24:06.250>things <00:24:06.366>that <00:24:06.483>I <00:24:06.600>firmly

493
00:24:08.700 --> 00:24:11.600
<00:24:08.700>believe <00:24:08.855>is <00:24:09.011>it <00:24:09.166>fault <00:24:09.322>here <00:24:09.477>is <00:24:09.633>human <00:24:09.788>error. <00:24:09.944>I <00:24:10.100>haven't

494
00:24:11.600 --> 00:24:14.600
<00:24:11.600>used <00:24:11.800>the <00:24:12.000>word <00:24:12.199>human <00:24:12.399>error <00:24:12.600>here <00:24:12.800>explicitly <00:24:13.000>until

495
00:24:14.600 --> 00:24:14.900
now.

496
00:24:16.200 --> 00:24:20.700
<00:24:16.200>Humans <00:24:16.375>are <00:24:16.550>awesome <00:24:16.725>at <00:24:16.900>so <00:24:17.075>many <00:24:17.250>things <00:24:17.425>consistency <00:24:17.600>is

497
00:24:19.700 --> 00:24:21.400
<00:24:19.700>not <00:24:20.166>one <00:24:20.633>of <00:24:21.100>them.

498
00:24:22.500 --> 00:24:23.700
<00:24:22.500>robots <00:24:22.770>on <00:24:23.040>the <00:24:23.310>other <00:24:23.580>hand

499
00:24:24.700 --> 00:24:27.300
<00:24:24.700>are <00:24:24.840>terrible <00:24:24.980>at <00:24:25.120>most <00:24:25.260>things <00:24:25.400>I <00:24:25.540>would <00:24:25.680>not <00:24:25.820>trust <00:24:25.960>a <00:24:26.100>robot

500
00:24:27.300 --> 00:24:31.000
<00:24:27.300>to <00:24:27.416>drive <00:24:27.533>my <00:24:27.649>car <00:24:27.766>yet <00:24:27.883>as <00:24:28.000>we <00:24:28.116>heard <00:24:28.233>from <00:24:28.350>the <00:24:28.466>previous <00:24:28.583>speaker. <00:24:28.700>We're

501
00:24:30.300 --> 00:24:33.400
<00:24:30.300>not <00:24:30.500>quite <00:24:30.700>there <00:24:30.899>yet <00:24:31.100>with <00:24:31.300>completely <00:24:31.500>autonomous <00:24:31.700>self-driving

502
00:24:33.400 --> 00:24:33.800
cars.

503
00:24:35.800 --> 00:24:36.800
<00:24:35.800>but <00:24:36.250>I <00:24:36.700>trust

504
00:24:37.900 --> 00:24:40.900
<00:24:37.900>a <00:24:38.100>robot <00:24:38.300>to <00:24:38.500>keep <00:24:38.700>me <00:24:38.900>a <00:24:39.100>consistent <00:24:39.300>speed.

505
00:24:42.700 --> 00:24:44.800
<00:24:42.700>Cruise <00:24:42.855>control <00:24:43.011>I <00:24:43.166>trust <00:24:43.322>that <00:24:43.477>I <00:24:43.633>trusted <00:24:43.788>that <00:24:43.944>for <00:24:44.100>years.

506
00:24:45.800 --> 00:24:48.200
<00:24:45.800>I <00:24:46.033>trust <00:24:46.266>a <00:24:46.500>robot <00:24:46.733>to <00:24:46.966>every <00:24:47.200>day.

507
00:24:48.200 --> 00:24:51.100
<00:24:48.200>Wake <00:24:48.400>up <00:24:48.600>at <00:24:48.800>5 <00:24:49.000>am <00:24:49.200>to <00:24:49.400>run <00:24:49.600>a

508
00:24:51.100 --> 00:24:51.700
<00:24:51.100>Cron <00:24:51.640>job.

509
00:24:52.300 --> 00:24:55.300
<00:24:52.300>And <00:24:52.440>execute <00:24:52.580>a <00:24:52.720>script <00:24:52.860>one <00:24:53.000>or <00:24:53.139>after <00:24:53.280>another. <00:24:53.419>I <00:24:53.560>trust <00:24:53.700>that

510
00:24:55.300 --> 00:24:57.300
<00:24:55.300>because <00:24:55.533>that's <00:24:55.766>what <00:24:56.000>robots <00:24:56.233>are <00:24:56.466>great <00:24:56.700>at.

511
00:24:58.200 --> 00:25:01.300
<00:24:58.200>So <00:24:58.340>why <00:24:58.480>don't <00:24:58.620>we <00:24:58.760>ball <00:24:58.900>a <00:24:59.040>robot <00:24:59.180>that <00:24:59.320>stops <00:24:59.460>us <00:24:59.600>from

512
00:25:01.300 --> 00:25:02.100
<00:25:01.300>coming <00:25:01.540>in <00:25:01.780>our <00:25:02.020>secrets?

513
00:25:03.800 --> 00:25:06.300
<00:25:03.800>I <00:25:03.955>bet <00:25:04.111>you <00:25:04.266>when <00:25:04.422>I <00:25:04.577>showed <00:25:04.733>you <00:25:04.888>get <00:25:05.044>earlier <00:25:05.200>like

514
00:25:06.300 --> 00:25:10.200
<00:25:06.300>why <00:25:06.399>where <00:25:06.500>is <00:25:06.600>he <00:25:06.700>going <00:25:06.800>with <00:25:06.899>this <00:25:07.000>showing <00:25:07.100>me <00:25:07.200>to <00:25:07.300>get <00:25:07.399>folder <00:25:07.500>thing? <00:25:07.600>Well, <00:25:07.700>it

515
00:25:09.200 --> 00:25:12.400
<00:25:09.200>turns <00:25:09.355>out <00:25:09.511>internally <00:25:09.666>to <00:25:09.822>get <00:25:09.977>there <00:25:10.133>is <00:25:10.288>a <00:25:10.444>folder <00:25:10.600>called

516
00:25:12.400 --> 00:25:12.900
hooks.

517
00:25:13.800 --> 00:25:16.700
<00:25:13.800>Hooks <00:25:14.080>is <00:25:14.360>this <00:25:14.639>amazing <00:25:14.919>automation <00:25:15.200>platform

518
00:25:16.700 --> 00:25:19.500
<00:25:16.700>built <00:25:16.980>into <00:25:17.260>the <00:25:17.540>tools <00:25:17.820>that <00:25:18.100>the

519
00:25:19.500 --> 00:25:20.900
<00:25:19.500>developers <00:25:20.130>already <00:25:20.760>using.

520
00:25:21.900 --> 00:25:22.900
<00:25:21.900>I <00:25:22.050>told <00:25:22.200>you <00:25:22.350>it'll <00:25:22.500>come <00:25:22.650>back <00:25:22.800>around.

521
00:25:25.600 --> 00:25:27.400
<00:25:25.600>You <00:25:25.774>can <00:25:25.949>go <00:25:26.125>to <00:25:26.300>a <00:25:26.475>developer <00:25:26.649>and <00:25:26.824>like <00:25:27.000>hey.

522
00:25:28.300 --> 00:25:31.800
<00:25:28.300>that's <00:25:28.500>modify <00:25:28.700>your <00:25:28.899>workflow <00:25:29.100>by <00:25:29.300>changing <00:25:29.500>something <00:25:29.700>inside

523
00:25:31.800 --> 00:25:32.200
<00:25:31.800>of <00:25:32.160>get

524
00:25:33.600 --> 00:25:36.500
<00:25:33.600>And <00:25:33.716>that's <00:25:33.833>all <00:25:33.949>you <00:25:34.066>have <00:25:34.183>to <00:25:34.300>think <00:25:34.416>about <00:25:34.533>it. <00:25:34.649>I <00:25:34.766>promise <00:25:34.883>you <00:25:35.000>nothing

525
00:25:36.500 --> 00:25:39.400
<00:25:36.500>else <00:25:36.616>of <00:25:36.733>your <00:25:36.850>workflow <00:25:36.966>will <00:25:37.083>change <00:25:37.200>if <00:25:37.316>you <00:25:37.433>start <00:25:37.550>that <00:25:37.666>conversation <00:25:37.783>that <00:25:37.900>way.

526
00:25:41.200 --> 00:25:44.000
<00:25:41.200>One <00:25:41.327>you <00:25:41.454>might <00:25:41.581>get <00:25:41.709>their <00:25:41.836>curiosity <00:25:41.963>but <00:25:42.090>you're <00:25:42.218>gonna <00:25:42.345>get <00:25:42.472>a <00:25:42.600>lot

527
00:25:44.200 --> 00:25:47.200
<00:25:44.200>less <00:25:44.307>resistance <00:25:44.415>Oh <00:25:44.523>you <00:25:44.630>mean <00:25:44.738>I <00:25:44.846>don't <00:25:44.953>want <00:25:45.061>to <00:25:45.169>install <00:25:45.276>anything. <00:25:45.384>Oh, <00:25:45.492>like <00:25:45.600>what?

528
00:25:47.200 --> 00:25:48.000
<00:25:47.200>Is <00:25:47.380>that <00:25:47.560>good <00:25:47.740>hook <00:25:47.920>do.

529
00:25:48.800 --> 00:25:51.400
<00:25:48.800>That's <00:25:49.033>a <00:25:49.266>different <00:25:49.500>conversation <00:25:49.733>than <00:25:49.966>please <00:25:50.200>use

530
00:25:51.400 --> 00:25:55.600
<00:25:51.400>this <00:25:51.600>other <00:25:51.800>entirely <00:25:52.000>different <00:25:52.200>system <00:25:52.400>and <00:25:52.600>it <00:25:52.800>learn

531
00:25:54.600 --> 00:25:57.500
<00:25:54.600>a <00:25:54.879>new <00:25:55.159>tool <00:25:55.439>people <00:25:55.719>don't <00:25:56.000>have

532
00:25:57.500 --> 00:25:58.700
<00:25:57.500>time <00:25:57.654>to <00:25:57.808>learn <00:25:57.962>new <00:25:58.117>tools <00:25:58.271>all <00:25:58.425>the <00:25:58.580>time.

533
00:26:00.400 --> 00:26:04.800
<00:26:00.400>So <00:26:00.600>githooks <00:26:00.800>is <00:26:01.000>a <00:26:01.200>folder <00:26:01.400>that <00:26:01.600>basically <00:26:01.800>lets

534
00:26:04.800 --> 00:26:07.500
<00:26:04.800>you <00:26:04.975>build <00:26:05.149>your <00:26:05.325>own <00:26:05.500>Contraptions. <00:26:05.675>I <00:26:05.850>really <00:26:06.024>love <00:26:06.200>Rube

535
00:26:07.500 --> 00:26:10.600
<00:26:07.500>Goldberg. <00:26:07.733>This <00:26:07.966>is <00:26:08.200>from <00:26:08.433>Wikipedia <00:26:08.666>the <00:26:08.900>self

536
00:26:10.600 --> 00:26:13.600
<00:26:10.600>operating <00:26:10.949>napkin <00:26:11.300>when <00:26:11.649>he <00:26:12.000>sits

537
00:26:13.600 --> 00:26:16.600
<00:26:13.600>his <00:26:13.800>soup <00:26:14.000>eventually <00:26:14.199>wipes <00:26:14.399>his <00:26:14.600>mouth <00:26:14.800>and <00:26:15.000>it

538
00:26:16.600 --> 00:26:17.800
<00:26:16.600>does <00:26:16.780>all <00:26:16.960>these <00:26:17.139>crazy <00:26:17.320>steps <00:26:17.500>in <00:26:17.679>between

539
00:26:19.400 --> 00:26:23.100
<00:26:19.400>You <00:26:19.527>can <00:26:19.654>build <00:26:19.781>your <00:26:19.909>own <00:26:20.036>crazy <00:26:20.163>scripts <00:26:20.290>out <00:26:20.418>of <00:26:20.545>there <00:26:20.672>because <00:26:20.800>get

540
00:26:22.100 --> 00:26:25.800
<00:26:22.100>just <00:26:22.333>like, <00:26:22.566>you <00:26:22.800>know, <00:26:23.033>the <00:26:23.266>character <00:26:23.500>moving

541
00:26:25.800 --> 00:26:26.300
<00:26:25.800>the <00:26:26.250>spoon.

542
00:26:27.500 --> 00:26:30.300
<00:26:27.500>There <00:26:27.850>are <00:26:28.200>17 <00:26:28.550>places <00:26:28.900>that

543
00:26:30.300 --> 00:26:33.400
<00:26:30.300>inside <00:26:30.766>of <00:26:31.233>get <00:26:31.700>hooks.

544
00:26:34.300 --> 00:26:37.700
<00:26:34.300>That <00:26:34.533>when <00:26:34.766>one <00:26:35.000>of <00:26:35.233>these <00:26:35.466>thresholds <00:26:35.700>has

545
00:26:37.700 --> 00:26:37.900
passed.

546
00:26:40.100 --> 00:26:43.300
<00:26:40.100>Get <00:26:40.240>looks <00:26:40.379>into <00:26:40.520>the <00:26:40.659>hooks <00:26:40.800>folder <00:26:40.939>and <00:26:41.080>says <00:26:41.219>is <00:26:41.360>there <00:26:41.500>a

547
00:26:43.300 --> 00:26:46.700
<00:26:43.300>script <00:26:43.649>named <00:26:44.000>exactly <00:26:44.350>pre-commit? <00:26:44.700>Is

548
00:26:46.700 --> 00:26:48.500
<00:26:46.700>there <00:26:46.980>one <00:26:47.260>named <00:26:47.540>exactly <00:26:47.820>commit <00:26:48.100>message?

549
00:26:49.300 --> 00:26:52.400
<00:26:49.300>So <00:26:49.399>if <00:26:49.500>you <00:26:49.600>go <00:26:49.700>to <00:26:49.800>make <00:26:49.899>a <00:26:50.000>git <00:26:50.100>commit <00:26:50.200>it <00:26:50.300>says <00:26:50.399>all <00:26:50.500>right. <00:26:50.600>Is <00:26:50.700>there

550
00:26:52.400 --> 00:26:55.200
<00:26:52.400>a <00:26:52.555>script <00:26:52.711>called <00:26:52.866>commit <00:26:53.022>message <00:26:53.177>if <00:26:53.333>there <00:26:53.488>is <00:26:53.644>let's <00:26:53.800>go

551
00:26:55.200 --> 00:26:56.800
<00:26:55.200>fire <00:26:55.433>off <00:26:55.666>what's <00:26:55.900>ever <00:26:56.133>in <00:26:56.366>that <00:26:56.600>script?

552
00:26:57.400 --> 00:27:00.100
<00:26:57.400>So <00:26:57.507>if <00:26:57.615>you <00:26:57.723>don't <00:26:57.830>go <00:26:57.938>to <00:26:58.046>any <00:26:58.153>other <00:26:58.261>website <00:26:58.369>as <00:26:58.476>a <00:26:58.584>result <00:26:58.692>of <00:26:58.800>this

553
00:27:00.100 --> 00:27:00.500
talk.

554
00:27:01.300 --> 00:27:04.500
<00:27:01.300>Even <00:27:01.399>if <00:27:01.500>you <00:27:01.600>don't <00:27:01.700>go <00:27:01.800>to <00:27:01.899>get <00:27:02.000>Guardian <00:27:02.100>website, <00:27:02.200>I'm <00:27:02.300>fine <00:27:02.399>with <00:27:02.500>that. <00:27:02.600>Go <00:27:02.700>to

555
00:27:04.500 --> 00:27:05.300
githooks.com.

556
00:27:06.200 --> 00:27:09.400
<00:27:06.200>If <00:27:06.327>you're <00:27:06.454>watching <00:27:06.581>this <00:27:06.709>from <00:27:06.836>home, <00:27:06.963>or <00:27:07.090>you're <00:27:07.218>not <00:27:07.345>driving <00:27:07.472>a <00:27:07.600>vehicle

557
00:27:09.400 --> 00:27:12.200
<00:27:09.400>or <00:27:09.555>your <00:27:09.711>own <00:27:09.866>little <00:27:10.022>autonomous <00:27:10.177>vehicles <00:27:10.333>you <00:27:10.488>can <00:27:10.644>your <00:27:10.800>hands

558
00:27:12.200 --> 00:27:15.900
<00:27:12.200>are <00:27:12.375>free. <00:27:12.550>Just <00:27:12.725>pop <00:27:12.900>open <00:27:13.075>a <00:27:13.250>new <00:27:13.425>window <00:27:13.600>get

559
00:27:15.900 --> 00:27:18.600
<00:27:15.900>hooks. <00:27:16.055>You'll <00:27:16.211>thank <00:27:16.366>me <00:27:16.522>later. <00:27:16.677>It's <00:27:16.833>an <00:27:16.988>amazing <00:27:17.144>website <00:27:17.300>full

560
00:27:18.600 --> 00:27:21.100
<00:27:18.600>awesome <00:27:18.879>examples, <00:27:19.159>including <00:27:19.439>what <00:27:19.719>I'm <00:27:20.000>talking

561
00:27:21.100 --> 00:27:24.200
<00:27:21.100>about <00:27:21.379>today <00:27:21.659>in <00:27:21.939>in <00:27:22.219>parts, <00:27:22.500>but

562
00:27:24.200 --> 00:27:27.200
<00:27:24.200>just <00:27:24.550>a <00:27:24.900>big <00:27:25.250>world <00:27:25.600>of

563
00:27:27.200 --> 00:27:30.100
<00:27:27.200>githubs <00:27:27.316>already <00:27:27.433>exists <00:27:27.550>out <00:27:27.666>there. <00:27:27.783>So, <00:27:27.900>you <00:27:28.016>know, <00:27:28.133>you're <00:27:28.250>not <00:27:28.366>working <00:27:28.483>from <00:27:28.600>scratch.

564
00:27:31.200 --> 00:27:34.200
<00:27:31.200>If <00:27:31.375>you <00:27:31.550>go <00:27:31.725>try <00:27:31.900>to <00:27:32.075>build <00:27:32.250>these <00:27:32.425>on <00:27:32.600>your

565
00:27:34.200 --> 00:27:35.900
<00:27:34.200>own <00:27:34.433>you're <00:27:34.666>gonna <00:27:34.900>run <00:27:35.133>into <00:27:35.366>some <00:27:35.600>weirdness.

566
00:27:38.300 --> 00:27:41.200
<00:27:38.300>And <00:27:38.416>weirdness <00:27:38.533>not <00:27:38.649>in <00:27:38.766>a <00:27:38.883>sense <00:27:39.000>of <00:27:39.116>like <00:27:39.233>hey, <00:27:39.350>this <00:27:39.466>is <00:27:39.583>weird <00:27:39.700>how

567
00:27:41.200 --> 00:27:44.600
<00:27:41.200>this <00:27:41.307>works <00:27:41.415>because <00:27:41.523>it's <00:27:41.630>just <00:27:41.738>a <00:27:41.846>bash <00:27:41.953>script <00:27:42.061>in <00:27:42.169>this <00:27:42.276>case. <00:27:42.384>It's <00:27:42.492>a <00:27:42.600>script

568
00:27:44.600 --> 00:27:47.400
<00:27:44.600>or <00:27:44.833>a <00:27:45.066>shell <00:27:45.300>script, <00:27:45.533>but <00:27:45.766>that's <00:27:46.000>all

569
00:27:47.400 --> 00:27:50.200
<00:27:47.400>it <00:27:47.866>that's <00:27:48.333>not <00:27:48.800>the

570
00:27:50.200 --> 00:27:53.900
<00:27:50.200>weird <00:27:50.316>part <00:27:50.433>weird <00:27:50.550>part <00:27:50.666>is <00:27:50.783>you <00:27:50.900>get <00:27:51.016>things <00:27:51.133>like <00:27:51.250>rev <00:27:51.366>Parts <00:27:51.483>rev <00:27:51.600>purse

571
00:27:53.900 --> 00:27:56.100
<00:27:53.900>is <00:27:54.075>my <00:27:54.250>favorite <00:27:54.425>description <00:27:54.600>of <00:27:54.775>a <00:27:54.950>command <00:27:55.125>in <00:27:55.300>history.

572
00:27:56.800 --> 00:28:00.100
<00:27:56.800>This <00:27:56.940>is <00:27:57.080>what <00:27:57.220>pre-commit <00:27:57.360>looks <00:27:57.500>like <00:27:57.639>by <00:27:57.780>the <00:27:57.919>way, <00:27:58.060>you <00:27:58.200>notice

573
00:27:59.100 --> 00:28:01.100
<00:27:59.100>it's <00:27:59.566>called <00:28:00.033>dot <00:28:00.500>sample.

574
00:28:03.100 --> 00:28:06.500
<00:28:03.100>This <00:28:03.227>is <00:28:03.354>by <00:28:03.481>default <00:28:03.609>because <00:28:03.736>well <00:28:03.863>dot <00:28:03.990>sample <00:28:04.118>doesn't <00:28:04.245>run <00:28:04.372>that <00:28:04.500>just

575
00:28:06.500 --> 00:28:09.400
<00:28:06.500>is <00:28:06.616>there <00:28:06.733>to <00:28:06.850>stop <00:28:06.966>the <00:28:07.083>hook <00:28:07.200>from <00:28:07.316>running <00:28:07.433>and <00:28:07.550>give <00:28:07.666>you <00:28:07.783>let <00:28:07.900>you

576
00:28:09.400 --> 00:28:11.300
<00:28:09.400>know <00:28:09.600>that <00:28:09.800>this <00:28:10.000>is <00:28:10.200>still <00:28:10.400>the <00:28:10.600>default <00:28:10.800>sample.

577
00:28:12.200 --> 00:28:15.800
<00:28:12.200>If <00:28:12.355>you <00:28:12.511>removed <00:28:12.666>sample <00:28:12.822>there, <00:28:12.977>this <00:28:13.133>would <00:28:13.288>actually <00:28:13.444>run <00:28:13.600>so

578
00:28:15.800 --> 00:28:16.600
<00:28:15.800>rough <00:28:16.520>parse.

579
00:28:17.500 --> 00:28:20.500
<00:28:17.500>Say <00:28:17.850>man, <00:28:18.200>get <00:28:18.550>rev <00:28:18.900>Parts

580
00:28:20.500 --> 00:28:23.100
<00:28:20.500>into <00:28:20.733>your <00:28:20.966>terminal <00:28:21.200>and <00:28:21.433>it <00:28:21.666>will <00:28:21.900>tell

581
00:28:23.100 --> 00:28:26.100
<00:28:23.100>you <00:28:23.274>that <00:28:23.449>rev <00:28:23.625>Parks <00:28:23.800>picks <00:28:23.975>out <00:28:24.149>and <00:28:24.324>massages <00:28:24.500>parameters.

582
00:28:27.400 --> 00:28:30.100
<00:28:27.400>I <00:28:27.540>don't <00:28:27.680>know <00:28:27.820>what <00:28:27.960>that <00:28:28.100>means <00:28:28.240>exactly <00:28:28.380>either <00:28:28.520>and <00:28:28.660>I've <00:28:28.800>been

583
00:28:30.100 --> 00:28:33.500
<00:28:30.100>doing <00:28:30.300>this <00:28:30.500>for <00:28:30.699>years <00:28:30.899>massage <00:28:31.100>parameters. <00:28:31.300>And <00:28:31.500>then

584
00:28:33.500 --> 00:28:36.700
<00:28:33.500>this <00:28:33.640>other <00:28:33.780>one <00:28:33.920>get <00:28:34.060>hash <00:28:34.200>object. <00:28:34.340>It's <00:28:34.480>a <00:28:34.620>porcelain <00:28:34.760>command <00:28:34.900>and

585
00:28:36.700 --> 00:28:39.600
<00:28:36.700>get <00:28:36.933>this <00:28:37.166>is <00:28:37.400>the <00:28:37.633>actual <00:28:37.866>compute <00:28:38.100>object

586
00:28:39.600 --> 00:28:42.400
<00:28:39.600>ID <00:28:39.800>and <00:28:40.000>optionally <00:28:40.199>create <00:28:40.399>a <00:28:40.600>blob <00:28:40.800>from <00:28:41.000>a

587
00:28:42.400 --> 00:28:42.400
file.

588
00:28:44.400 --> 00:28:47.100
<00:28:44.400>That <00:28:44.507>requires <00:28:44.615>some <00:28:44.723>pretty <00:28:44.830>deep <00:28:44.938>knowledge <00:28:45.046>to <00:28:45.153>know <00:28:45.261>what <00:28:45.369>that <00:28:45.476>means. <00:28:45.584>But <00:28:45.692>you <00:28:45.800>know

589
00:28:47.100 --> 00:28:47.800
<00:28:47.100>who <00:28:47.415>wrote <00:28:47.730>that.

590
00:28:49.100 --> 00:28:49.700
Linus

591
00:28:50.400 --> 00:28:53.500
<00:28:50.400>trying <00:28:50.555>to <00:28:50.711>figure <00:28:50.866>out <00:28:51.022>how <00:28:51.177>to <00:28:51.333>manage <00:28:51.488>his <00:28:51.644>patch <00:28:51.800>messages

592
00:28:53.500 --> 00:28:56.300
<00:28:53.500>correctly <00:28:53.733>while <00:28:53.966>managing <00:28:54.200>the <00:28:54.433>line <00:28:54.666>of <00:28:54.900>the

593
00:28:56.300 --> 00:28:56.600
<00:28:56.300>Linux <00:28:56.570>project.

594
00:28:57.500 --> 00:28:58.900
<00:28:57.500>So <00:28:57.752>for <00:28:58.004>him <00:28:58.256>it <00:28:58.508>made <00:28:58.760>sense.

595
00:28:59.700 --> 00:29:01.100
<00:28:59.700>For <00:28:59.880>me, <00:29:00.060>this <00:29:00.240>makes <00:29:00.420>a <00:29:00.600>lot <00:29:00.780>more <00:29:00.960>sense.

596
00:29:02.900 --> 00:29:05.900
<00:29:02.900>So <00:29:03.055>I'm <00:29:03.211>gonna <00:29:03.366>call <00:29:03.522>my <00:29:03.677>environment <00:29:03.833>bash <00:29:03.988>and <00:29:04.144>I <00:29:04.300>love

597
00:29:05.900 --> 00:29:07.600
<00:29:05.900>bash. <00:29:06.366>I'm <00:29:06.833>giant <00:29:07.300>bastard.

598
00:29:08.300 --> 00:29:11.200
<00:29:08.300>Not <00:29:08.500>even <00:29:08.700>gonna <00:29:08.899>lie. <00:29:09.100>But <00:29:09.300>if <00:29:09.500>as <00:29:09.700>long

599
00:29:11.200 --> 00:29:12.100
<00:29:11.200>as <00:29:11.362>you <00:29:11.524>can <00:29:11.686>reach <00:29:11.848>the <00:29:12.010>environment

600
00:29:13.400 --> 00:29:16.400
<00:29:13.400>It's <00:29:13.680>an <00:29:13.960>executable <00:29:14.240>environment <00:29:14.520>and <00:29:14.800>your

601
00:29:16.400 --> 00:29:17.100
<00:29:16.400>your <00:29:17.030>setup.

602
00:29:18.400 --> 00:29:21.700
<00:29:18.400>But <00:29:18.600>JavaScript <00:29:18.800>or <00:29:19.000>PHP <00:29:19.200>or <00:29:19.400>python <00:29:19.600>whatever <00:29:19.800>you

603
00:29:21.700 --> 00:29:24.400
<00:29:21.700>can <00:29:21.840>make <00:29:21.980>scripts <00:29:22.120>out <00:29:22.260>at <00:29:22.400>whatever <00:29:22.540>language <00:29:22.680>you <00:29:22.820>want, <00:29:22.960>whatever <00:29:23.100>you

604
00:29:24.400 --> 00:29:25.700
<00:29:24.400>prefer, <00:29:24.595>so <00:29:24.790>you're <00:29:24.985>not <00:29:25.180>tied <00:29:25.375>to <00:29:25.570>bash.

605
00:29:26.200 --> 00:29:29.200
<00:29:26.200>I <00:29:26.327>just <00:29:26.454>I <00:29:26.581>just <00:29:26.709>like <00:29:26.836>it <00:29:26.963>but <00:29:27.090>in <00:29:27.218>this <00:29:27.345>case <00:29:27.472>props <00:29:27.600>to

606
00:29:29.200 --> 00:29:30.700
<00:29:29.200>Ed <00:29:29.650>Thompson <00:29:30.100>Edward <00:29:30.550>Thompson.

607
00:29:32.400 --> 00:29:35.800
<00:29:32.400>He <00:29:32.575>used <00:29:32.750>to <00:29:32.925>maintain <00:29:33.100>npm. <00:29:33.275>He <00:29:33.450>was <00:29:33.625>the <00:29:33.800>lead

608
00:29:35.800 --> 00:29:39.300
<00:29:35.800>that <00:29:35.975>pushed <00:29:36.149>get <00:29:36.325>actions <00:29:36.500>into <00:29:36.675>the <00:29:36.850>world. <00:29:37.024>He's <00:29:37.200>responsible

609
00:29:38.300 --> 00:29:41.700
<00:29:38.300>for <00:29:38.475>a <00:29:38.649>lot <00:29:38.825>of <00:29:39.000>things. <00:29:39.175>Um <00:29:39.350>the <00:29:39.524>get <00:29:39.700>Library.

610
00:29:43.300 --> 00:29:46.200
<00:29:43.300>A <00:29:43.580>lib <00:29:43.860>get <00:29:44.139>C <00:29:44.419>which <00:29:44.700>is

611
00:29:46.200 --> 00:29:50.600
<00:29:46.200>our <00:29:46.375>lip <00:29:46.550>get <00:29:46.725>to <00:29:46.900>which <00:29:47.075>is <00:29:47.250>a <00:29:47.425>c <00:29:47.600>portable

612
00:29:49.600 --> 00:29:52.500
<00:29:49.600>C <00:29:49.949>library <00:29:50.300>that <00:29:50.649>accomplishes <00:29:51.000>get

613
00:29:52.500 --> 00:29:55.400
<00:29:52.500>without <00:29:52.700>needing <00:29:52.900>to <00:29:53.100>install <00:29:53.300>the <00:29:53.500>get <00:29:53.700>command <00:29:53.900>line.

614
00:29:55.400 --> 00:29:57.100
<00:29:55.400>So <00:29:55.633>if <00:29:55.866>you <00:29:56.100>think <00:29:56.333>of <00:29:56.566>things <00:29:56.800>like

615
00:29:58.500 --> 00:30:01.500
<00:29:58.500>GitHub <00:29:58.780>or <00:29:59.060>get <00:29:59.340>lab? <00:29:59.620>They're <00:29:59.900>not

616
00:30:01.500 --> 00:30:04.700
<00:30:01.500>running <00:30:01.655>the <00:30:01.811>command <00:30:01.966>line. <00:30:02.122>They're <00:30:02.277>accomplishing <00:30:02.433>the <00:30:02.588>same <00:30:02.744>thing <00:30:02.900>through

617
00:30:04.700 --> 00:30:07.600
<00:30:04.700>a <00:30:04.900>C <00:30:05.100>library <00:30:05.300>for <00:30:05.500>a <00:30:05.700>node <00:30:05.900>Library <00:30:06.100>based

618
00:30:07.600 --> 00:30:10.400
<00:30:07.600>on <00:30:07.800>that <00:30:08.000>C <00:30:08.199>library. <00:30:08.399>Anyway, <00:30:08.600>Edward <00:30:08.800>Thompson <00:30:09.000>wrote.

619
00:30:10.400 --> 00:30:14.000
<00:30:10.400>My <00:30:10.575>favorite <00:30:10.750>thing. <00:30:10.925>He <00:30:11.100>wrote <00:30:11.275>was <00:30:11.450>get <00:30:11.625>Dad. <00:30:11.800>It's

620
00:30:13.300 --> 00:30:16.100
<00:30:13.300>a <00:30:13.455>little <00:30:13.611>tiny <00:30:13.766>tiny <00:30:13.922>thing. <00:30:14.077>You <00:30:14.233>can <00:30:14.388>add <00:30:14.544>to <00:30:14.700>your

621
00:30:16.100 --> 00:30:19.500
<00:30:16.100>machine. <00:30:16.255>So <00:30:16.411>when <00:30:16.566>you <00:30:16.722>accidentally <00:30:16.877>type <00:30:17.033>get <00:30:17.188>Dad <00:30:17.344>instead <00:30:17.500>of

622
00:30:19.500 --> 00:30:22.100
<00:30:19.500>get <00:30:19.640>add <00:30:19.780>it <00:30:19.920>will <00:30:20.060>change <00:30:20.200>it <00:30:20.340>to <00:30:20.480>get <00:30:20.620>ad <00:30:20.760>and <00:30:20.900>then

623
00:30:22.100 --> 00:30:25.200
<00:30:22.100>tell <00:30:22.216>you <00:30:22.333>what <00:30:22.449>Dad <00:30:22.566>joke <00:30:22.683>as <00:30:22.800>a <00:30:22.916>result <00:30:23.033>by <00:30:23.149>curling <00:30:23.266>I <00:30:23.383>can <00:30:23.500>have

624
00:30:25.200 --> 00:30:26.100
<00:30:25.200>Dad <00:30:25.605>joke <00:30:26.010>calm.

625
00:30:27.100 --> 00:30:31.000
<00:30:27.100>Two <00:30:27.255>column <00:30:27.411>explanation <00:30:27.566>for <00:30:27.722>a <00:30:27.877>simple <00:30:28.033>script <00:30:28.188>but <00:30:28.344>this <00:30:28.500>is

626
00:30:30.100 --> 00:30:34.400
<00:30:30.100>actually <00:30:30.227>I <00:30:30.354>do <00:30:30.481>run <00:30:30.609>this <00:30:30.736>in <00:30:30.863>a <00:30:30.990>lot <00:30:31.118>of <00:30:31.245>my <00:30:31.372>private <00:30:31.500>repos

627
00:30:33.400 --> 00:30:36.200
<00:30:33.400>when <00:30:33.555>I'm <00:30:33.711>working <00:30:33.866>on <00:30:34.022>stuff <00:30:34.177>because <00:30:34.333>I <00:30:34.488>like <00:30:34.644>to <00:30:34.800>add

628
00:30:36.200 --> 00:30:39.100
<00:30:36.200>jokes. <00:30:36.316>Why <00:30:36.433>not <00:30:36.550>tell <00:30:36.666>me <00:30:36.783>a <00:30:36.900>dad <00:30:37.016>joke <00:30:37.133>every <00:30:37.250>time <00:30:37.366>I <00:30:37.483>go <00:30:37.600>to

629
00:30:39.100 --> 00:30:40.600
<00:30:39.100>do <00:30:39.550>a <00:30:40.000>get <00:30:40.449>ad.

630
00:30:41.600 --> 00:30:43.800
<00:30:41.600>In <00:30:41.774>this <00:30:41.949>case <00:30:42.125>every <00:30:42.300>time <00:30:42.475>I <00:30:42.649>write <00:30:42.824>a <00:30:43.000>commit.

631
00:30:44.400 --> 00:30:46.400
<00:30:44.400>it <00:30:44.600>will <00:30:44.800>actually <00:30:45.000>tell <00:30:45.200>me <00:30:45.400>that <00:30:45.600>joke, <00:30:45.800>so

632
00:30:47.500 --> 00:30:49.700
<00:30:47.500>There's <00:30:47.627>that <00:30:47.754>one <00:30:47.881>you <00:30:48.009>can <00:30:48.136>go <00:30:48.263>play <00:30:48.390>with <00:30:48.518>that <00:30:48.645>on <00:30:48.772>your <00:30:48.900>own.

633
00:30:50.900 --> 00:30:51.100
so

634
00:30:52.400 --> 00:30:53.700
<00:30:52.400>this <00:30:52.692>robot <00:30:52.985>I <00:30:53.277>mentioned <00:30:53.570>earlier.

635
00:30:54.400 --> 00:30:57.100
<00:30:54.400>That <00:30:54.600>we <00:30:54.800>can <00:30:55.000>build <00:30:55.200>through <00:30:55.400>this <00:30:55.600>automation <00:30:55.800>platform.

636
00:30:58.700 --> 00:31:01.400
<00:30:58.700>What <00:30:58.855>should <00:30:59.011>it <00:30:59.166>do? <00:30:59.322>Well, <00:30:59.477>this <00:30:59.633>is <00:30:59.788>basically <00:30:59.944>the <00:31:00.100>plan.

637
00:31:02.200 --> 00:31:03.000
<00:31:02.200>when <00:31:02.380>I <00:31:02.560>go <00:31:02.740>to <00:31:02.920>commit

638
00:31:04.200 --> 00:31:07.100
<00:31:04.200>I'm <00:31:04.316>going <00:31:04.433>to <00:31:04.550>tie <00:31:04.666>into <00:31:04.783>one <00:31:04.900>of <00:31:05.016>the <00:31:05.133>githooks <00:31:05.250>that <00:31:05.366>are <00:31:05.483>tied <00:31:05.600>to

639
00:31:07.100 --> 00:31:08.400
<00:31:07.100>commit <00:31:07.490>such <00:31:07.880>as <00:31:08.270>pre-commit.

640
00:31:10.400 --> 00:31:10.900
<00:31:10.400>our <00:31:10.625>commit <00:31:10.850>message

641
00:31:11.600 --> 00:31:14.300
<00:31:11.600>That's <00:31:11.879>another <00:31:12.159>good <00:31:12.439>one <00:31:12.719>and <00:31:13.000>I'm

642
00:31:14.300 --> 00:31:17.700
<00:31:14.300>gonna <00:31:14.427>look <00:31:14.554>for <00:31:14.681>any <00:31:14.809>kind <00:31:14.936>of <00:31:15.063>username <00:31:15.190>password <00:31:15.318>API <00:31:15.445>Keys <00:31:15.572>your <00:31:15.700>security

643
00:31:17.700 --> 00:31:20.400
<00:31:17.700>certificates <00:31:17.933>anything <00:31:18.166>that <00:31:18.400>looks <00:31:18.633>like <00:31:18.866>a <00:31:19.100>credential.

644
00:31:21.900 --> 00:31:24.200
<00:31:21.900>Any <00:31:22.075>other <00:31:22.250>defined <00:31:22.425>pattern <00:31:22.600>I <00:31:22.775>like <00:31:22.950>and <00:31:23.125>if <00:31:23.300>it's

645
00:31:24.200 --> 00:31:26.200
<00:31:24.200>there, <00:31:24.400>let's <00:31:24.600>go <00:31:24.800>ahead <00:31:25.000>and <00:31:25.200>throw <00:31:25.400>an <00:31:25.600>error.

646
00:31:26.800 --> 00:31:29.400
<00:31:26.800>And <00:31:27.000>stop <00:31:27.200>the <00:31:27.399>commit <00:31:27.600>from <00:31:27.800>happening <00:31:28.000>sounds <00:31:28.200>like

647
00:31:29.400 --> 00:31:29.700
<00:31:29.400>a <00:31:29.535>good <00:31:29.670>plan.

648
00:31:31.800 --> 00:31:32.800
<00:31:31.800>And <00:31:31.980>you <00:31:32.159>can <00:31:32.340>build <00:31:32.520>this <00:31:32.700>yourself.

649
00:31:34.300 --> 00:31:38.500
<00:31:34.300>Nothing <00:31:34.455>stopping <00:31:34.611>you. <00:31:34.766>So <00:31:34.922>open <00:31:35.077>up <00:31:35.233>your <00:31:35.388>git <00:31:35.544>commit <00:31:35.700>message.

650
00:31:38.500 --> 00:31:40.900
<00:31:38.500>Take <00:31:38.675>out <00:31:38.850>the <00:31:39.025>guts <00:31:39.200>or <00:31:39.375>comment <00:31:39.550>out <00:31:39.725>the <00:31:39.900>guts.

651
00:31:41.600 --> 00:31:43.200
<00:31:41.600>And <00:31:41.879>then <00:31:42.159>write <00:31:42.439>your <00:31:42.719>own <00:31:43.000>logic.

652
00:31:44.400 --> 00:31:44.500
here

653
00:31:45.500 --> 00:31:48.200
<00:31:45.500>I'm <00:31:45.733>using <00:31:45.966>git <00:31:46.200>group. <00:31:46.433>So <00:31:46.666>grep <00:31:46.900>is

654
00:31:48.200 --> 00:31:51.700
<00:31:48.200>one <00:31:48.316>of <00:31:48.433>my <00:31:48.550>favorite <00:31:48.666>tools <00:31:48.783>in <00:31:48.900>the <00:31:49.016>command <00:31:49.133>line <00:31:49.250>a <00:31:49.366>repository. <00:31:49.483>So <00:31:49.600>it's

655
00:31:51.700 --> 00:31:54.700
<00:31:51.700>inside <00:31:51.840>of <00:31:51.980>git <00:31:52.120>as <00:31:52.260>well. <00:31:52.400>They <00:31:52.540>they <00:31:52.680>pulled <00:31:52.820>it <00:31:52.960>in <00:31:53.100>and

656
00:31:54.700 --> 00:31:58.300
<00:31:54.700>it <00:31:54.855>solves <00:31:55.011>the <00:31:55.166>problem <00:31:55.322>of <00:31:55.477>what <00:31:55.633>are <00:31:55.788>you <00:31:55.944>trying <00:31:56.100>to

657
00:31:58.300 --> 00:32:01.300
<00:31:58.300>search <00:31:58.475>because <00:31:58.649>it <00:31:58.825>just <00:31:59.000>searches <00:31:59.175>the <00:31:59.350>index. <00:31:59.524>It <00:31:59.700>makes

658
00:32:01.300 --> 00:32:04.500
<00:32:01.300>it <00:32:01.416>a <00:32:01.533>little <00:32:01.649>simpler. <00:32:01.766>So <00:32:01.883>if <00:32:02.000>you're <00:32:02.116>using <00:32:02.233>get <00:32:02.350>a <00:32:02.466>lot <00:32:02.583>Get <00:32:02.700>Grip

659
00:32:04.500 --> 00:32:05.400
<00:32:04.500>should <00:32:04.702>be <00:32:04.905>in <00:32:05.107>your <00:32:05.310>Repository.

660
00:32:06.200 --> 00:32:07.700
<00:32:06.200>Are <00:32:06.650>your <00:32:07.100>back <00:32:07.550>pocket?

661
00:32:08.700 --> 00:32:12.300
<00:32:08.700>So <00:32:08.840>here <00:32:08.980>I'm <00:32:09.120>using <00:32:09.260>regular <00:32:09.400>expression <00:32:09.540>to <00:32:09.680>look <00:32:09.820>for <00:32:09.960>anything <00:32:10.100>looks

662
00:32:12.300 --> 00:32:13.600
<00:32:12.300>like <00:32:12.533>a <00:32:12.768>password <00:32:13.002>is <00:32:13.235>being <00:32:13.469>set.

663
00:32:14.400 --> 00:32:15.000
<00:32:14.400>Such <00:32:14.670>as <00:32:14.940>here.

664
00:32:16.100 --> 00:32:19.400
<00:32:16.100>Or <00:32:16.227>that <00:32:16.354>I'm <00:32:16.481>looking <00:32:16.609>for <00:32:16.736>something <00:32:16.863>that's <00:32:16.990>20 <00:32:17.118>characters <00:32:17.245>long. <00:32:17.372>That's <00:32:17.500>all

665
00:32:19.400 --> 00:32:22.900
<00:32:19.400>uppercase <00:32:19.633>or <00:32:19.866>numbers <00:32:20.100>such <00:32:20.333>as <00:32:20.566>an <00:32:20.800>AWS

666
00:32:22.900 --> 00:32:23.600
<00:32:22.900>key <00:32:23.110>would <00:32:23.320>look <00:32:23.530>like

667
00:32:24.900 --> 00:32:25.900
<00:32:24.900>and <00:32:25.050>if <00:32:25.200>I <00:32:25.350>try <00:32:25.500>to <00:32:25.650>run <00:32:25.800>this

668
00:32:29.200 --> 00:32:30.500
<00:32:29.200>there's <00:32:29.492>my <00:32:29.785>get <00:32:30.077>Dad <00:32:30.370>joke.

669
00:32:31.400 --> 00:32:34.500
<00:32:31.400>and <00:32:31.575>then <00:32:31.750>oh, <00:32:31.925>well <00:32:32.100>these <00:32:32.275>things <00:32:32.450>look <00:32:32.625>like <00:32:32.800>passwords

670
00:32:34.500 --> 00:32:37.400
<00:32:34.500>no <00:32:34.850>hardcore <00:32:35.200>password <00:32:35.550>exit <00:32:35.900>to

671
00:32:37.400 --> 00:32:38.800
<00:32:37.400>and <00:32:38.030>I've <00:32:38.659>stopped

672
00:32:41.900 --> 00:32:44.400
<00:32:41.900>And <00:32:42.007>I <00:32:42.115>can <00:32:42.223>put <00:32:42.330>any <00:32:42.438>other <00:32:42.546>logic <00:32:42.653>I <00:32:42.761>want <00:32:42.869>around <00:32:42.976>that <00:32:43.084>and <00:32:43.192>start <00:32:43.300>building

673
00:32:44.400 --> 00:32:47.300
<00:32:44.400>my <00:32:44.575>own <00:32:44.750>detectors. <00:32:44.925>You <00:32:45.100>can <00:32:45.275>find <00:32:45.450>repost <00:32:45.625>full <00:32:45.800>of

674
00:32:47.300 --> 00:32:50.500
<00:32:47.300>detectors <00:32:47.649>already <00:32:48.000>pre-built. <00:32:48.350>The <00:32:48.700>Summers

675
00:32:50.500 --> 00:32:52.400
<00:32:50.500>already <00:32:50.700>worked <00:32:50.900>out <00:32:51.100>the <00:32:51.300>the <00:32:51.500>grep <00:32:51.700>for <00:32:51.900>it.

676
00:32:54.200 --> 00:32:54.600
<00:32:54.200>but <00:32:54.560>then

677
00:32:56.300 --> 00:32:59.200
<00:32:56.300>you've <00:32:56.427>built <00:32:56.554>this <00:32:56.681>thing <00:32:56.809>which <00:32:56.936>means <00:32:57.063>you <00:32:57.190>need <00:32:57.318>to <00:32:57.445>maintain <00:32:57.572>the <00:32:57.700>thing

678
00:32:59.200 --> 00:33:02.400
<00:32:59.200>which <00:32:59.340>means <00:32:59.480>you <00:32:59.620>need <00:32:59.760>now <00:32:59.900>to <00:33:00.040>account <00:33:00.180>for <00:33:00.320>false <00:33:00.460>positives <00:33:00.600>and

679
00:33:02.400 --> 00:33:04.700
<00:33:02.400>for <00:33:02.750>example <00:33:03.100>of <00:33:03.450>strings <00:33:03.800>and

680
00:33:06.400 --> 00:33:09.500
<00:33:06.400>things <00:33:06.540>that <00:33:06.680>are <00:33:06.820>okay <00:33:06.960>that <00:33:07.100>look <00:33:07.240>maybe <00:33:07.380>like <00:33:07.520>a <00:33:07.660>password <00:33:07.800>to

681
00:33:09.500 --> 00:33:12.400
<00:33:09.500>your <00:33:09.627>regular <00:33:09.754>expression, <00:33:09.881>but <00:33:10.009>that's <00:33:10.136>just <00:33:10.263>the <00:33:10.390>name <00:33:10.518>of <00:33:10.645>the <00:33:10.772>VAR <00:33:10.900>and

682
00:33:12.400 --> 00:33:14.800
<00:33:12.400>that <00:33:12.540>that <00:33:12.680>should <00:33:12.820>be <00:33:12.960>fine <00:33:13.100>if <00:33:13.240>you're <00:33:13.380>pulling <00:33:13.520>from <00:33:13.660>environment <00:33:13.800>variable.

683
00:33:16.300 --> 00:33:18.400
<00:33:16.300>And <00:33:16.407>so <00:33:16.515>on <00:33:16.623>and <00:33:16.730>so <00:33:16.838>forth. <00:33:16.946>They <00:33:17.053>have <00:33:17.161>to <00:33:17.269>sell <00:33:17.376>us <00:33:17.484>to <00:33:17.592>your <00:33:17.700>team.

684
00:33:20.500 --> 00:33:21.000
<00:33:20.500>by <00:33:20.950>yourself

685
00:33:23.500 --> 00:33:26.100
<00:33:23.500>Luckily, <00:33:23.640>you <00:33:23.780>don't <00:33:23.920>have <00:33:24.060>to <00:33:24.200>build <00:33:24.340>this <00:33:24.480>as <00:33:24.620>I <00:33:24.760>mentioned <00:33:24.900>earlier.

686
00:33:27.200 --> 00:33:30.500
<00:33:27.200>You <00:33:27.480>probably <00:33:27.760>could <00:33:28.040>guess <00:33:28.320>from <00:33:28.600>some

687
00:33:30.500 --> 00:33:31.300
<00:33:30.500>of <00:33:30.644>the <00:33:30.788>other <00:33:30.932>things <00:33:31.076>I've <00:33:31.220>said.

688
00:33:32.400 --> 00:33:34.100
<00:33:32.400>Open <00:33:32.600>source <00:33:32.800>already <00:33:33.000>took <00:33:33.200>care <00:33:33.400>of <00:33:33.600>this <00:33:33.800>problem.

689
00:33:34.700 --> 00:33:38.500
<00:33:34.700>This <00:33:34.855>isn't <00:33:35.011>a <00:33:35.166>solved <00:33:35.322>problem. <00:33:35.477>This <00:33:35.633>is <00:33:35.788>a <00:33:35.944>problem <00:33:36.100>still

690
00:33:38.500 --> 00:33:39.500
<00:33:38.500>a <00:33:38.650>lot <00:33:38.800>of <00:33:38.950>people <00:33:39.100>are <00:33:39.250>working <00:33:39.400>on.

691
00:33:40.600 --> 00:33:43.300
<00:33:40.600>I'm <00:33:40.707>gonna <00:33:40.815>tell <00:33:40.923>you <00:33:41.030>about <00:33:41.138>three <00:33:41.246>of <00:33:41.353>them. <00:33:41.461>I <00:33:41.569>do <00:33:41.676>work <00:33:41.784>for <00:33:41.892>one <00:33:42.000>of

692
00:33:43.300 --> 00:33:46.100
<00:33:43.300>them, <00:33:43.440>but <00:33:43.580>there <00:33:43.720>are <00:33:43.860>plenty <00:33:44.000>others <00:33:44.139>out <00:33:44.280>there <00:33:44.419>besides <00:33:44.560>these <00:33:44.700>three.

693
00:33:46.100 --> 00:33:47.300
<00:33:46.100>These <00:33:46.235>are <00:33:46.370>just <00:33:46.504>the <00:33:46.639>three <00:33:46.774>I'm <00:33:46.909>gonna <00:33:47.044>talk <00:33:47.179>about

694
00:33:48.100 --> 00:33:51.600
<00:33:48.100>when <00:33:48.216>I <00:33:48.333>first <00:33:48.449>first <00:33:48.566>wrote <00:33:48.683>this <00:33:48.800>talk <00:33:48.916>it <00:33:49.033>was <00:33:49.149>about <00:33:49.266>this <00:33:49.383>then <00:33:49.500>I've

695
00:33:51.600 --> 00:33:54.300
<00:33:51.600>since <00:33:51.755>added <00:33:51.911>on <00:33:52.066>these <00:33:52.222>things. <00:33:52.377>There's <00:33:52.533>another <00:33:52.688>project. <00:33:52.844>I <00:33:53.000>really

696
00:33:54.300 --> 00:33:57.200
<00:33:54.300>like <00:33:54.475>out <00:33:54.649>there <00:33:54.825>called <00:33:55.000>get <00:33:55.175>leaks <00:33:55.350>that's <00:33:55.524>worth <00:33:55.700>your

697
00:33:57.200 --> 00:34:00.200
<00:33:57.200>time <00:33:57.327>as <00:33:57.454>well. <00:33:57.581>Especially <00:33:57.709>if <00:33:57.836>you're <00:33:57.963>a <00:33:58.090>smaller <00:33:58.218>team <00:33:58.345>or <00:33:58.472>just <00:33:58.600>working

698
00:34:00.200 --> 00:34:00.900
<00:34:00.200>on <00:34:00.410>open <00:34:00.620>source <00:34:00.830>stuff.

699
00:34:02.300 --> 00:34:04.500
<00:34:02.300>but <00:34:02.475>all <00:34:02.649>of <00:34:02.825>these <00:34:03.000>have <00:34:03.175>their <00:34:03.350>pluses <00:34:03.524>and <00:34:03.700>minuses

700
00:34:05.400 --> 00:34:08.100
<00:34:05.400>so <00:34:05.680>AWS <00:34:05.960>secrets <00:34:06.240>are <00:34:06.520>I'm <00:34:06.800>sorry

701
00:34:08.100 --> 00:34:09.600
<00:34:08.100>get <00:34:08.437>secrets <00:34:08.775>from <00:34:09.112>AWS <00:34:09.449>labs.

702
00:34:11.200 --> 00:34:14.100
<00:34:11.199>This <00:34:11.433>hooks <00:34:11.666>into <00:34:11.899>the <00:34:12.133>three <00:34:12.366>hooks <00:34:12.600>that

703
00:34:14.100 --> 00:34:17.200
<00:34:14.100>happen <00:34:14.275>pre-commit. <00:34:14.449>So <00:34:14.625>when <00:34:14.799>you <00:34:14.975>do <00:34:15.150>a <00:34:15.324>get <00:34:15.500>commit

704
00:34:17.200 --> 00:34:19.700
<00:34:17.199>all <00:34:17.399>three <00:34:17.600>of <00:34:17.799>these <00:34:18.000>get <00:34:18.199>triggered <00:34:18.399>in <00:34:18.600>order.

705
00:34:20.600 --> 00:34:23.400
<00:34:20.600>So <00:34:20.775>it <00:34:20.949>will <00:34:21.125>automatically <00:34:21.299>builds <00:34:21.475>you <00:34:21.650>a <00:34:21.824>triple <00:34:22.000>check.

706
00:34:24.600 --> 00:34:27.500
<00:34:24.600>And <00:34:24.833>it's <00:34:25.066>looking <00:34:25.299>for <00:34:25.533>AWS <00:34:25.766>specific <00:34:26.000>things.

707
00:34:27.500 --> 00:34:30.400
<00:34:27.500>I <00:34:27.675>mean, <00:34:27.850>it <00:34:28.025>was <00:34:28.199>written <00:34:28.375>by <00:34:28.550>an <00:34:28.725>AWS <00:34:28.900>team

708
00:34:30.400 --> 00:34:30.600
member.

709
00:34:31.800 --> 00:34:34.800
<00:34:31.800>But <00:34:31.940>that's <00:34:32.080>the <00:34:32.220>downside. <00:34:32.360>It's <00:34:32.500>not <00:34:32.640>officially <00:34:32.780>supported <00:34:32.920>by <00:34:33.060>AWS. <00:34:33.200>So

710
00:34:34.800 --> 00:34:36.500
<00:34:34.800>if <00:34:35.033>you're <00:34:35.266>on <00:34:35.500>the <00:34:35.733>phone <00:34:35.966>with <00:34:36.200>support.

711
00:34:37.500 --> 00:34:40.400
<00:34:37.500>This <00:34:37.733>isn't <00:34:37.966>part <00:34:38.199>of <00:34:38.433>the <00:34:38.666>actual <00:34:38.900>AWS.

712
00:34:41.200 --> 00:34:43.500
<00:34:41.199>Services <00:34:41.433>it's <00:34:41.666>it's <00:34:41.899>a <00:34:42.133>little <00:34:42.366>lab <00:34:42.600>projects.

713
00:34:45.500 --> 00:34:46.600
<00:34:45.500>But <00:34:45.747>it's <00:34:45.995>really <00:34:46.242>really <00:34:46.489>good.

714
00:34:48.700 --> 00:34:52.800
<00:34:48.699>There <00:34:48.855>are <00:34:49.011>people <00:34:49.166>since <00:34:49.322>it <00:34:49.477>is <00:34:49.633>all <00:34:49.788>open <00:34:49.944>source, <00:34:50.100>you

715
00:34:51.800 --> 00:34:54.000
<00:34:51.800>can <00:34:52.266>extend <00:34:52.733>it <00:34:53.200>out

716
00:34:54.300 --> 00:34:57.400
<00:34:54.300>to <00:34:54.440>other <00:34:54.580>things <00:34:54.720>people <00:34:54.860>have <00:34:55.000>done <00:34:55.140>that <00:34:55.280>you <00:34:55.420>can <00:34:55.560>go <00:34:55.700>find

717
00:34:57.400 --> 00:35:01.000
<00:34:57.400>repositories <00:34:57.555>where <00:34:57.711>people <00:34:57.866>have <00:34:58.022>made <00:34:58.177>it <00:34:58.333>work <00:34:58.488>for <00:34:58.644>Azure <00:34:58.800>or

718
00:35:00.200 --> 00:35:02.100
<00:35:00.200>people <00:35:00.480>made <00:35:00.759>it <00:35:01.040>work <00:35:01.319>for <00:35:01.600>Google.

719
00:35:03.200 --> 00:35:06.100
<00:35:03.200>And <00:35:03.339>added <00:35:03.480>those <00:35:03.620>regular <00:35:03.759>expressions <00:35:03.899>in <00:35:04.040>as <00:35:04.180>well <00:35:04.319>and <00:35:04.460>if <00:35:04.600>you

720
00:35:06.100 --> 00:35:06.800
<00:35:06.100>write <00:35:06.730>regex.

721
00:35:07.800 --> 00:35:10.300
<00:35:07.800>So <00:35:08.080>full <00:35:08.360>transparency <00:35:08.640>the <00:35:08.920>code. <00:35:09.200>I

722
00:35:10.300 --> 00:35:12.800
<00:35:10.300>showed <00:35:10.455>earlier <00:35:10.611>where <00:35:10.766>I <00:35:10.922>should <00:35:11.077>you <00:35:11.233>could <00:35:11.388>write <00:35:11.544>your <00:35:11.700>own.

723
00:35:13.900 --> 00:35:16.400
<00:35:13.900>That <00:35:14.250>came <00:35:14.600>from <00:35:14.950>AWS <00:35:15.300>get

724
00:35:16.400 --> 00:35:19.400
<00:35:16.400>secrets. <00:35:16.600>That's <00:35:16.800>where <00:35:17.000>that <00:35:17.200>idea <00:35:17.400>of <00:35:17.600>using <00:35:17.800>git

725
00:35:19.400 --> 00:35:22.500
<00:35:19.400>grip <00:35:19.527>even <00:35:19.654>came <00:35:19.781>from <00:35:19.909>that's <00:35:20.036>why <00:35:20.163>I <00:35:20.290>know <00:35:20.418>the <00:35:20.545>regular <00:35:20.672>expression <00:35:20.800>for

726
00:35:22.500 --> 00:35:23.300
<00:35:22.500>an <00:35:22.860>AWS <00:35:23.220>key.

727
00:35:25.900 --> 00:35:28.400
<00:35:25.900>There's <00:35:26.075>another <00:35:26.250>open <00:35:26.425>source <00:35:26.600>project <00:35:26.775>out <00:35:26.950>there, <00:35:27.125>but <00:35:27.300>now

728
00:35:28.400 --> 00:35:31.400
<00:35:28.400>their <00:35:28.575>own <00:35:28.750>company <00:35:28.925>called <00:35:29.100>truffle <00:35:29.275>but <00:35:29.450>started <00:35:29.625>by <00:35:29.800>a

729
00:35:31.400 --> 00:35:34.200
<00:35:31.400>game <00:35:31.866>Dylan <00:35:32.333>Back <00:35:32.800>in

730
00:35:34.200 --> 00:35:37.400
<00:35:34.200>the <00:35:34.339>Day <00:35:34.480>2016. <00:35:34.620>I <00:35:34.759>think <00:35:34.899>when <00:35:35.040>he <00:35:35.180>first <00:35:35.319>first <00:35:35.460>released, <00:35:35.600>but

731
00:35:38.600 --> 00:35:41.100
<00:35:38.600>travel <00:35:38.833>hog <00:35:39.066>is <00:35:39.299>a <00:35:39.533>secret <00:35:39.766>finder <00:35:40.000>like

732
00:35:41.100 --> 00:35:44.100
<00:35:41.100>truffles <00:35:41.333>are <00:35:41.566>tasty <00:35:41.799>to <00:35:42.033>pigs. <00:35:42.266>So <00:35:42.500>they

733
00:35:44.100 --> 00:35:47.200
<00:35:44.100>put <00:35:44.299>a <00:35:44.500>pig <00:35:44.700>on <00:35:44.900>the <00:35:45.100>logo. <00:35:45.299>I <00:35:45.500>love

734
00:35:47.200 --> 00:35:50.000
<00:35:47.200>their <00:35:47.433>little <00:35:47.666>logo <00:35:47.899>a <00:35:48.133>truffle <00:35:48.366>hog <00:35:48.600>detects.

735
00:35:51.100 --> 00:35:54.600
<00:35:51.100>Secrets <00:35:51.275>and <00:35:51.450>you're <00:35:51.625>in <00:35:51.799>your <00:35:51.975>source <00:35:52.150>code <00:35:52.325>it <00:35:52.500>can

736
00:35:54.600 --> 00:35:57.400
<00:35:54.600>detect <00:35:54.775>it <00:35:54.950>any <00:35:55.125>arbitrary <00:35:55.299>path <00:35:55.475>or <00:35:55.650>any <00:35:55.825>arbitrary <00:35:56.000>file

737
00:35:57.400 --> 00:36:00.600
<00:35:57.400>as <00:35:57.575>well. <00:35:57.750>Really <00:35:57.925>solid <00:35:58.100>open <00:35:58.275>source <00:35:58.450>tool. <00:35:58.625>I <00:35:58.800>don't

738
00:36:00.600 --> 00:36:03.100
<00:36:00.600>know <00:36:00.740>much <00:36:00.880>about <00:36:01.020>their <00:36:01.160>paid <00:36:01.299>product <00:36:01.440>these <00:36:01.580>days, <00:36:01.720>but <00:36:01.860>they <00:36:02.000>do

739
00:36:03.100 --> 00:36:04.300
<00:36:03.100>have <00:36:03.316>an <00:36:03.532>Enterprise <00:36:03.748>platform <00:36:03.964>around <00:36:04.180>this.

740
00:36:06.400 --> 00:36:09.200
<00:36:06.400>Um <00:36:06.633>the <00:36:06.866>thing <00:36:07.100>I <00:36:07.333>personally <00:36:07.566>don't <00:36:07.800>use

741
00:36:09.200 --> 00:36:12.500
<00:36:09.200>it <00:36:09.355>for <00:36:09.511>a <00:36:09.666>couple <00:36:09.822>reasons <00:36:09.977>one <00:36:10.133>is <00:36:10.288>it <00:36:10.444>does <00:36:10.600>require

742
00:36:12.500 --> 00:36:15.000
<00:36:12.500>you <00:36:12.780>to <00:36:13.060>use <00:36:13.340>the <00:36:13.620>pre-commit <00:36:13.900>framework?

743
00:36:16.200 --> 00:36:18.300
<00:36:16.200>to <00:36:16.549>execute <00:36:16.899>a <00:36:17.250>pre-commit <00:36:17.600>hook

744
00:36:19.200 --> 00:36:22.200
<00:36:19.200>the <00:36:19.375>pre-commit <00:36:19.549>framework <00:36:19.725>is <00:36:19.899>an <00:36:20.075>awesome <00:36:20.250>project <00:36:20.424>in <00:36:20.600>and

745
00:36:22.200 --> 00:36:22.500
<00:36:22.200>of <00:36:22.470>itself.

746
00:36:24.500 --> 00:36:27.400
<00:36:24.500>If <00:36:24.655>you <00:36:24.811>live <00:36:24.966>in <00:36:25.122>the <00:36:25.277>world <00:36:25.433>of <00:36:25.588>python <00:36:25.744>same <00:36:25.900>way

747
00:36:27.400 --> 00:36:31.000
<00:36:27.400>if <00:36:27.575>you <00:36:27.750>live <00:36:27.925>in <00:36:28.100>AWS <00:36:28.275>AWS <00:36:28.450>Secrets <00:36:28.625>AWS <00:36:28.800>Labs

748
00:36:30.400 --> 00:36:33.800
<00:36:30.400>get <00:36:30.555>Secrets <00:36:30.711>might <00:36:30.866>be <00:36:31.022>a <00:36:31.177>good <00:36:31.333>place <00:36:31.488>to <00:36:31.644>start <00:36:31.800>because

749
00:36:33.800 --> 00:36:35.000
<00:36:33.800>you <00:36:34.016>use <00:36:34.232>AWS <00:36:34.448>all <00:36:34.664>the <00:36:34.880>time.

750
00:36:36.300 --> 00:36:39.100
<00:36:36.300>If <00:36:36.475>you <00:36:36.650>already <00:36:36.825>love <00:36:37.000>pre-commit <00:36:37.175>framework <00:36:37.350>and <00:36:37.525>you <00:36:37.700>live

751
00:36:39.100 --> 00:36:41.900
<00:36:39.100>in <00:36:39.275>Python <00:36:39.450>world, <00:36:39.625>this <00:36:39.799>is <00:36:39.975>definitely <00:36:40.150>something <00:36:40.325>to <00:36:40.500>consider.

752
00:36:44.200 --> 00:36:45.800
<00:36:44.200>You <00:36:44.375>can <00:36:44.549>run <00:36:44.725>as <00:36:44.899>a <00:36:45.075>GitHub <00:36:45.250>action <00:36:45.424>as <00:36:45.600>well.

753
00:36:46.900 --> 00:36:49.200
<00:36:46.900>but <00:36:47.040>that <00:36:47.180>actually <00:36:47.320>doesn't <00:36:47.460>make <00:36:47.600>a <00:36:47.740>lot <00:36:47.880>of <00:36:48.020>sense <00:36:48.160>for <00:36:48.300>our

754
00:36:49.200 --> 00:36:51.000
<00:36:49.200>use <00:36:49.666>case <00:36:50.133>because <00:36:50.600>you

755
00:36:52.800 --> 00:36:55.400
<00:36:52.800>would <00:36:53.000>already <00:36:53.200>have <00:36:53.400>the <00:36:53.600>secret <00:36:53.800>on <00:36:54.000>GitHub <00:36:54.200>by

756
00:36:55.400 --> 00:36:55.900
<00:36:55.400>the <00:36:55.512>time <00:36:55.625>I <00:36:55.737>caught <00:36:55.850>it.

757
00:36:56.600 --> 00:36:59.400
<00:36:56.600>But <00:36:56.727>just <00:36:56.854>wanted <00:36:56.981>to <00:36:57.109>mention <00:36:57.236>that <00:36:57.363>they <00:36:57.490>do <00:36:57.618>have <00:36:57.745>a <00:36:57.872>GitHub <00:36:58.000>action

758
00:36:59.400 --> 00:37:02.300
<00:36:59.400>as <00:36:59.507>well. <00:36:59.615>So <00:36:59.723>if <00:36:59.830>you <00:36:59.938>want <00:37:00.046>to <00:37:00.153>do <00:37:00.261>start <00:37:00.369>tying <00:37:00.476>it <00:37:00.584>into <00:37:00.692>your <00:37:00.800>CI

759
00:37:02.300 --> 00:37:03.500
<00:37:02.300>workflows <00:37:02.435>you <00:37:02.570>can <00:37:02.705>do <00:37:02.840>it <00:37:02.975>for <00:37:03.110>that <00:37:03.245>as <00:37:03.380>well.

760
00:37:04.700 --> 00:37:08.300
<00:37:04.700>Um, <00:37:04.933>they're <00:37:05.166>tuned <00:37:05.399>for <00:37:05.633>open <00:37:05.866>source <00:37:06.100>and

761
00:37:07.300 --> 00:37:10.400
<00:37:07.300>getting <00:37:07.533>you <00:37:07.766>as <00:37:08.000>much <00:37:08.233>information <00:37:08.466>as <00:37:08.700>possible.

762
00:37:11.100 --> 00:37:14.400
<00:37:11.100>So <00:37:11.299>the <00:37:11.500>rate <00:37:11.700>of <00:37:11.900>report <00:37:12.100>reporter <00:37:12.299>Falls <00:37:12.500>High

763
00:37:14.400 --> 00:37:17.400
<00:37:14.400>positives <00:37:14.633>are <00:37:14.866>high <00:37:15.100>false <00:37:15.333>positives. <00:37:15.566>I've <00:37:15.800>heard

764
00:37:17.400 --> 00:37:19.500
<00:37:17.400>mixed <00:37:17.633>reviews <00:37:17.866>on <00:37:18.100>it, <00:37:18.333>and <00:37:18.566>that's <00:37:18.800>just

765
00:37:21.400 --> 00:37:24.300
<00:37:21.400>You <00:37:21.500>need <00:37:21.600>to <00:37:21.700>hear <00:37:21.800>no <00:37:21.900>there. <00:37:22.000>It's <00:37:22.100>just <00:37:22.200>but <00:37:22.300>it's <00:37:22.400>free. <00:37:22.500>It's <00:37:22.600>open <00:37:22.700>source. <00:37:22.800>It's

766
00:37:24.300 --> 00:37:26.300
<00:37:24.300>awesome, <00:37:24.580>and <00:37:24.860>it <00:37:25.140>is <00:37:25.420>an <00:37:25.700>option.

767
00:37:28.100 --> 00:37:31.200
<00:37:28.100>Now <00:37:28.227>we're <00:37:28.354>in <00:37:28.481>GG <00:37:28.609>Shield, <00:37:28.736>which <00:37:28.863>is <00:37:28.990>open <00:37:29.118>source <00:37:29.245>internet <00:37:29.372>of <00:37:29.500>itself.

768
00:37:31.200 --> 00:37:32.900
<00:37:31.200>It's <00:37:31.666>a <00:37:32.133>python-based <00:37:32.600>tool.

769
00:37:33.600 --> 00:37:38.300
<00:37:33.600>That <00:37:33.833>does <00:37:34.066>exactly <00:37:34.299>this <00:37:34.533>but <00:37:34.766>within <00:37:35.000>install.

770
00:37:39.300 --> 00:37:41.100
<00:37:39.300>That <00:37:39.766>get <00:37:40.233>hook <00:37:40.700>globally.

771
00:37:42.200 --> 00:37:45.500
<00:37:42.200>Or <00:37:42.339>just <00:37:42.480>locally <00:37:42.620>and <00:37:42.759>we <00:37:42.899>can <00:37:43.040>even <00:37:43.180>do <00:37:43.319>a <00:37:43.460>pre-push <00:37:43.600>command

772
00:37:45.500 --> 00:37:48.200
<00:37:45.500>as <00:37:45.616>well. <00:37:45.733>So <00:37:45.850>if <00:37:45.966>you're <00:37:46.083>working <00:37:46.200>with <00:37:46.316>a <00:37:46.433>lot <00:37:46.550>of <00:37:46.666>patches <00:37:46.783>and <00:37:46.900>you

773
00:37:48.200 --> 00:37:51.700
<00:37:48.200>don't <00:37:48.327>write <00:37:48.454>all <00:37:48.581>the <00:37:48.709>commits <00:37:48.836>that <00:37:48.963>end <00:37:49.090>up <00:37:49.218>in <00:37:49.345>your <00:37:49.472>if <00:37:49.600>you

774
00:37:51.700 --> 00:37:54.600
<00:37:51.700>didn't <00:37:51.816>author <00:37:51.933>all <00:37:52.049>the <00:37:52.166>commits <00:37:52.283>that <00:37:52.399>end <00:37:52.516>up <00:37:52.633>in <00:37:52.750>your <00:37:52.866>code <00:37:52.983>pre <00:37:53.100>push

775
00:37:54.600 --> 00:37:57.600
<00:37:54.600>might <00:37:54.775>be <00:37:54.950>a <00:37:55.125>good <00:37:55.299>workflow <00:37:55.475>as <00:37:55.650>well <00:37:55.825>because <00:37:56.000>patch

776
00:37:57.600 --> 00:38:00.200
<00:37:57.600>apply <00:37:57.755>does <00:37:57.911>make <00:37:58.066>the <00:37:58.222>commit <00:37:58.377>but <00:37:58.533>it <00:37:58.688>doesn't <00:37:58.844>fire <00:37:59.000>off

777
00:38:00.200 --> 00:38:01.300
<00:38:00.200>the <00:38:00.529>same <00:38:00.860>pre-commit <00:38:01.190>hooks.

778
00:38:01.800 --> 00:38:05.000
<00:38:01.800>Anyway, <00:38:01.975>if <00:38:02.150>you <00:38:02.325>if <00:38:02.500>you're <00:38:02.675>not <00:38:02.850>using <00:38:03.025>a <00:38:03.200>patching

779
00:38:04.300 --> 00:38:08.300
<00:38:04.300>strategy <00:38:04.455>then <00:38:04.611>maybe <00:38:04.766>pre <00:38:04.922>push <00:38:05.077>isn't <00:38:05.233>for <00:38:05.388>you. <00:38:05.544>We <00:38:05.700>also

780
00:38:08.300 --> 00:38:12.100
<00:38:08.300>offer <00:38:08.416>a <00:38:08.533>pre-received <00:38:08.650>hook <00:38:08.766>but <00:38:08.883>that <00:38:09.000>takes <00:38:09.116>some <00:38:09.233>special <00:38:09.350>setup <00:38:09.466>on <00:38:09.583>your <00:38:09.700>get

781
00:38:11.100 --> 00:38:14.300
<00:38:11.100>server. <00:38:11.275>If <00:38:11.450>you're <00:38:11.625>running <00:38:11.799>complete <00:38:11.975>your <00:38:12.150>own <00:38:12.325>get <00:38:12.500>server.

782
00:38:14.300 --> 00:38:16.300
<00:38:14.300>You're <00:38:14.500>probably <00:38:14.700>looking <00:38:14.900>to <00:38:15.100>pre-receive <00:38:15.300>hooks <00:38:15.500>as <00:38:15.700>well.

783
00:38:18.800 --> 00:38:21.900
<00:38:18.800>The <00:38:18.940>downside <00:38:19.080>here <00:38:19.220>is <00:38:19.360>it <00:38:19.500>does <00:38:19.640>require <00:38:19.780>get <00:38:19.920>Guardian <00:38:20.060>account <00:38:20.200>get

784
00:38:21.900 --> 00:38:24.500
<00:38:21.900>Guardian <00:38:22.100>as <00:38:22.300>a <00:38:22.500>platform <00:38:22.700>as <00:38:22.900>a <00:38:23.100>service, <00:38:23.300>so.

785
00:38:25.500 --> 00:38:28.400
<00:38:25.500>you <00:38:25.675>wouldn't <00:38:25.850>need <00:38:26.025>an <00:38:26.200>account <00:38:26.375>to <00:38:26.550>actually <00:38:26.725>perform <00:38:26.900>the

786
00:38:31.100 --> 00:38:36.000
<00:38:31.100>Perform, <00:38:31.299>the <00:38:31.500>search <00:38:31.700>are <00:38:31.900>the <00:38:32.100>credential <00:38:32.299>matching. <00:38:32.500>You

787
00:38:34.100 --> 00:38:37.700
<00:38:34.100>can <00:38:34.333>have <00:38:34.566>a <00:38:34.799>free <00:38:35.033>account <00:38:35.266>absolutely <00:38:35.500>free

788
00:38:37.700 --> 00:38:39.900
<00:38:37.700>for <00:38:37.899>personal <00:38:38.100>use <00:38:38.299>and <00:38:38.500>teams <00:38:38.700>under <00:38:38.899>25 <00:38:39.100>forever.

789
00:38:41.400 --> 00:38:45.200
<00:38:41.400>But <00:38:41.493>you <00:38:41.586>do <00:38:41.680>need <00:38:41.773>to <00:38:41.866>be <00:38:41.960>online <00:38:42.053>to <00:38:42.146>do <00:38:42.240>it. <00:38:42.333>We <00:38:42.426>do <00:38:42.520>sell <00:38:42.613>a <00:38:42.706>completely <00:38:42.800>Standalone

790
00:38:44.200 --> 00:38:45.800
<00:38:44.200>air <00:38:44.899>gap <00:38:45.600>product.

791
00:38:46.600 --> 00:38:48.400
<00:38:46.600>But <00:38:47.066>that's <00:38:47.533>not <00:38:48.000>free.

792
00:38:51.300 --> 00:38:54.300
<00:38:51.300>And <00:38:51.400>there <00:38:51.500>is <00:38:51.600>the <00:38:51.700>possibility <00:38:51.800>you <00:38:51.900>could <00:38:52.000>hit <00:38:52.100>API <00:38:52.200>limits <00:38:52.300>as <00:38:52.400>well <00:38:52.500>because <00:38:52.600>again, <00:38:52.700>it

793
00:38:54.300 --> 00:38:55.500
<00:38:54.300>is <00:38:54.660>a <00:38:55.020>platform <00:38:55.380>play.

794
00:38:56.900 --> 00:38:58.200
<00:38:56.900>So <00:38:57.046>what <00:38:57.192>does <00:38:57.338>all <00:38:57.485>this <00:38:57.631>look <00:38:57.777>like <00:38:57.923>in <00:38:58.069>action?

795
00:38:59.100 --> 00:39:02.200
<00:38:59.100>You <00:38:59.200>sat <00:38:59.299>through <00:38:59.400>this <00:38:59.500>entire <00:38:59.600>presentation. <00:38:59.700>You <00:38:59.799>got <00:38:59.900>to <00:39:00.000>hear <00:39:00.100>about <00:39:00.200>the <00:39:00.299>internals <00:39:00.400>of <00:39:00.500>get

796
00:39:03.300 --> 00:39:04.000
<00:39:03.300>to <00:39:03.457>get <00:39:03.615>to <00:39:03.772>this <00:39:03.930>slide.

797
00:39:06.200 --> 00:39:09.600
<00:39:06.200>So <00:39:06.339>I <00:39:06.480>have <00:39:06.620>a <00:39:06.759>repo <00:39:06.899>that <00:39:07.040>I <00:39:07.180>have <00:39:07.319>AWS <00:39:07.460>Secrets <00:39:07.600>Keys

798
00:39:09.600 --> 00:39:10.100
<00:39:09.600>stuffed <00:39:10.049>into

799
00:39:12.200 --> 00:39:15.400
<00:39:12.200>don't <00:39:12.339>do <00:39:12.480>this. <00:39:12.620>This <00:39:12.759>was <00:39:12.899>an <00:39:13.040>example. <00:39:13.180>These <00:39:13.319>aren't <00:39:13.460>real <00:39:13.600>Keys.

800
00:39:15.400 --> 00:39:18.300
<00:39:15.400>These <00:39:15.600>are <00:39:15.800>made <00:39:16.000>up <00:39:16.200>just <00:39:16.400>random <00:39:16.600>typing <00:39:16.800>that's

801
00:39:18.300 --> 00:39:20.400
<00:39:18.300>a <00:39:18.475>real <00:39:18.650>key <00:39:18.825>and <00:39:19.000>just <00:39:19.175>randomly <00:39:19.350>typed <00:39:19.525>and <00:39:19.700>said

802
00:39:22.600 --> 00:39:25.600
<00:39:22.600>and <00:39:22.775>I <00:39:22.950>committed <00:39:23.125>it. <00:39:23.299>All <00:39:23.475>right. <00:39:23.650>I <00:39:23.825>added <00:39:24.000>it

803
00:39:25.600 --> 00:39:28.200
<00:39:25.600>here. <00:39:25.775>You <00:39:25.950>can <00:39:26.125>see <00:39:26.299>it <00:39:26.475>staged <00:39:26.650>my <00:39:26.825>commit <00:39:27.000>that

804
00:39:28.200 --> 00:39:29.600
<00:39:28.200>our <00:39:29.460>config.yamel.

805
00:39:30.600 --> 00:39:33.400
<00:39:30.600>and <00:39:30.755>I <00:39:30.911>try <00:39:31.066>to <00:39:31.222>do <00:39:31.377>a <00:39:31.533>get <00:39:31.688>commit <00:39:31.844>here <00:39:32.000>and

806
00:39:35.300 --> 00:39:35.800
<00:39:35.300>there <00:39:35.525>we <00:39:35.750>go.

807
00:39:36.600 --> 00:39:39.400
<00:39:36.600>Get <00:39:36.833>get <00:39:37.066>Guardian. <00:39:37.299>This <00:39:37.533>is <00:39:37.766>GG <00:39:38.000>Shield

808
00:39:39.400 --> 00:39:41.500
<00:39:39.400>get <00:39:39.750>Guardian <00:39:40.100>has <00:39:40.450>detected <00:39:40.800>that.

809
00:39:42.400 --> 00:39:43.700
<00:39:42.400>Hey, <00:39:42.634>I <00:39:42.868>got <00:39:43.102>these <00:39:43.336>Keys <00:39:43.569>here.

810
00:39:44.500 --> 00:39:45.300
<00:39:44.500>I <00:39:44.740>shouldn't <00:39:44.980>have <00:39:45.220>them.

811
00:39:46.200 --> 00:39:47.800
<00:39:46.200>And <00:39:46.399>I <00:39:46.600>have <00:39:46.799>failed <00:39:47.000>to <00:39:47.200>make <00:39:47.399>the <00:39:47.600>commit.

812
00:39:52.300 --> 00:39:55.500
<00:39:52.300>No <00:39:52.387>matter <00:39:52.475>how <00:39:52.562>you <00:39:52.650>get <00:39:52.737>here. <00:39:52.825>No <00:39:52.912>matter <00:39:53.000>if <00:39:53.087>this <00:39:53.175>was <00:39:53.262>truffle <00:39:53.350>hog <00:39:53.437>doing <00:39:53.525>this <00:39:53.612>was <00:39:53.700>AWS

813
00:39:55.500 --> 00:39:58.500
<00:39:55.500>Secrets <00:39:55.627>doing <00:39:55.754>it. <00:39:55.881>This <00:39:56.009>is <00:39:56.136>the <00:39:56.263>most <00:39:56.390>important <00:39:56.518>part <00:39:56.645>that <00:39:56.772>you <00:39:56.900>have

814
00:39:58.500 --> 00:40:00.800
<00:39:58.500>an <00:39:58.700>error <00:39:58.900>that <00:39:59.100>you <00:39:59.300>didn't <00:39:59.500>make <00:39:59.700>the <00:39:59.900>commit.

815
00:40:02.200 --> 00:40:03.200
<00:40:02.200>If <00:40:02.500>this <00:40:02.799>happens <00:40:03.100>locally.

816
00:40:05.100 --> 00:40:06.400
<00:40:05.100>You're <00:40:05.295>the <00:40:05.490>only <00:40:05.685>person <00:40:05.880>that <00:40:06.075>will <00:40:06.270>know.

817
00:40:07.300 --> 00:40:10.200
<00:40:07.300>This <00:40:07.455>doesn't <00:40:07.611>set <00:40:07.766>off <00:40:07.922>alarm <00:40:08.077>Bells <00:40:08.233>catching <00:40:08.388>it <00:40:08.544>at <00:40:08.700>the

818
00:40:10.200 --> 00:40:10.700
<00:40:10.200>local <00:40:10.649>level.

819
00:40:12.500 --> 00:40:13.500
<00:40:12.500>Saves <00:40:12.800>everyone <00:40:13.100>the <00:40:13.400>headache.

820
00:40:14.500 --> 00:40:17.200
<00:40:14.500>You're <00:40:14.616>never <00:40:14.733>gonna <00:40:14.850>have <00:40:14.966>to <00:40:15.083>surgically <00:40:15.200>remove <00:40:15.316>it <00:40:15.433>later. <00:40:15.550>If <00:40:15.666>you <00:40:15.783>caught <00:40:15.900>it

821
00:40:17.200 --> 00:40:20.500
<00:40:17.200>right <00:40:17.327>here, <00:40:17.454>your <00:40:17.581>security <00:40:17.709>team <00:40:17.836>won't <00:40:17.963>even <00:40:18.090>know <00:40:18.218>this <00:40:18.345>happened <00:40:18.472>because <00:40:18.600>why

822
00:40:20.500 --> 00:40:22.700
<00:40:20.500>would <00:40:20.655>they <00:40:20.811>need <00:40:20.966>to <00:40:21.122>know <00:40:21.277>this <00:40:21.433>isn't <00:40:21.588>a <00:40:21.744>security <00:40:21.900>incident.

823
00:40:23.700 --> 00:40:25.400
<00:40:23.700>This <00:40:23.980>is <00:40:24.259>a <00:40:24.540>development <00:40:24.819>workflow <00:40:25.100>situation.

824
00:40:26.800 --> 00:40:29.100
<00:40:26.800>So <00:40:26.907>I'm <00:40:27.015>going <00:40:27.123>to <00:40:27.230>wrap <00:40:27.338>up <00:40:27.446>and <00:40:27.553>then <00:40:27.661>we'll <00:40:27.769>have <00:40:27.876>to <00:40:27.984>sign <00:40:28.092>for <00:40:28.200>questions.

825
00:40:29.900 --> 00:40:31.200
<00:40:29.900>so <00:40:30.134>in <00:40:30.368>conclusion <00:40:30.602>to <00:40:30.836>all <00:40:31.069>this

826
00:40:32.600 --> 00:40:33.600
<00:40:32.600>don't <00:40:32.825>hard <00:40:33.049>code <00:40:33.275>your <00:40:33.500>secrets.

827
00:40:34.400 --> 00:40:37.700
<00:40:34.400>If <00:40:34.527>we <00:40:34.654>could <00:40:34.781>just <00:40:34.909>get <00:40:35.036>to <00:40:35.163>a <00:40:35.290>world <00:40:35.418>where <00:40:35.545>every <00:40:35.672>developer <00:40:35.800>proudly

828
00:40:37.700 --> 00:40:40.600
<00:40:37.700>says, <00:40:37.855>I <00:40:38.011>never <00:40:38.166>hard <00:40:38.322>code <00:40:38.477>Secrets. <00:40:38.633>I <00:40:38.788>always <00:40:38.944>use <00:40:39.100>Vault.

829
00:40:40.600 --> 00:40:44.000
<00:40:40.600>I <00:40:40.950>consistently <00:40:41.299>use <00:40:41.650>Envy <00:40:42.000>files

830
00:40:43.800 --> 00:40:46.500
<00:40:43.800>and <00:40:44.033>I <00:40:44.266>make <00:40:44.500>sure <00:40:44.733>that <00:40:44.966>that's <00:40:45.200>properly

831
00:40:46.500 --> 00:40:47.400
<00:40:46.500>get <00:40:47.310>ignored.

832
00:40:49.700 --> 00:40:50.900
<00:40:49.700>the <00:40:49.879>rest <00:40:50.060>of <00:40:50.240>this <00:40:50.420>talk <00:40:50.600>doesn't <00:40:50.780>matter

833
00:40:52.100 --> 00:40:54.800
<00:40:52.100>But <00:40:52.299>we're <00:40:52.500>humans. <00:40:52.700>That's <00:40:52.900>the <00:40:53.100>reality <00:40:53.299>of <00:40:53.500>it.

834
00:40:56.900 --> 00:40:59.300
<00:40:56.900>What <00:40:57.027>we <00:40:57.154>need <00:40:57.281>to <00:40:57.409>do <00:40:57.536>is <00:40:57.663>focus <00:40:57.790>on <00:40:57.918>not <00:40:58.045>committing <00:40:58.172>the <00:40:58.300>secrets.

835
00:41:01.200 --> 00:41:04.500
<00:41:01.200>We <00:41:01.339>can <00:41:01.480>use <00:41:01.620>automation <00:41:01.759>for <00:41:01.899>that <00:41:02.040>as <00:41:02.180>I've <00:41:02.319>shown <00:41:02.460>githooks. <00:41:02.600>Is

836
00:41:04.500 --> 00:41:07.100
<00:41:04.500>this <00:41:04.850>beautiful <00:41:05.200>platform <00:41:05.550>again? <00:41:05.900>Githooks.com?

837
00:41:08.200 --> 00:41:12.000
<00:41:08.200>You <00:41:08.375>should <00:41:08.549>definitely <00:41:08.725>go <00:41:08.899>check <00:41:09.075>out <00:41:09.250>Matthew <00:41:09.424>Hudson's <00:41:09.600>Amazing

838
00:41:11.700 --> 00:41:14.800
<00:41:11.700>Project <00:41:11.980>over <00:41:12.259>there <00:41:12.540>to <00:41:12.819>keep <00:41:13.100>you

839
00:41:14.800 --> 00:41:16.300
<00:41:14.800>informed <00:41:15.070>about <00:41:15.340>what's <00:41:15.610>possible <00:41:15.880>with <00:41:16.150>hooks?

840
00:41:18.500 --> 00:41:21.800
<00:41:18.500>Use <00:41:18.640>open <00:41:18.780>source. <00:41:18.920>If <00:41:19.060>you <00:41:19.200>want <00:41:19.340>to <00:41:19.480>build <00:41:19.620>your <00:41:19.760>own <00:41:19.900>just

841
00:41:21.800 --> 00:41:24.300
<00:41:21.800>for <00:41:21.927>the <00:41:22.054>heck <00:41:22.181>of <00:41:22.309>it <00:41:22.436>to <00:41:22.563>see <00:41:22.690>how <00:41:22.818>it <00:41:22.945>works. <00:41:23.072>I <00:41:23.200>would

842
00:41:24.300 --> 00:41:27.100
<00:41:24.300>even <00:41:24.440>start <00:41:24.580>from <00:41:24.720>open <00:41:24.860>source <00:41:25.000>and <00:41:25.140>look <00:41:25.280>at <00:41:25.420>how <00:41:25.560>it's <00:41:25.700>doing

843
00:41:27.100 --> 00:41:27.300
it.

844
00:41:28.200 --> 00:41:31.000
<00:41:28.200>And <00:41:28.399>start <00:41:28.600>moving <00:41:28.799>back <00:41:29.000>to <00:41:29.200>backwards <00:41:29.399>from <00:41:29.600>there.

845
00:41:31.700 --> 00:41:34.300
<00:41:31.700>Because <00:41:31.827>you <00:41:31.954>might <00:41:32.081>have <00:41:32.209>a <00:41:32.336>special <00:41:32.463>project. <00:41:32.590>I <00:41:32.718>don't <00:41:32.845>think <00:41:32.972>like <00:41:33.100>most

846
00:41:34.300 --> 00:41:37.300
<00:41:34.300>things <00:41:34.455>detect <00:41:34.611>things <00:41:34.766>in <00:41:34.922>cool <00:41:35.077>ball <00:41:35.233>or <00:41:35.388>Fortran <00:41:35.544>and <00:41:35.700>if

847
00:41:37.300 --> 00:41:40.300
<00:41:37.300>we're <00:41:37.440>working <00:41:37.580>in <00:41:37.720>that <00:41:37.860>with <00:41:38.000>Git <00:41:38.140>congratulations, <00:41:38.280>that'd <00:41:38.420>be <00:41:38.560>awesome. <00:41:38.700>Actually.

848
00:41:40.300 --> 00:41:43.200
<00:41:40.300>Hit <00:41:40.455>me <00:41:40.611>up <00:41:40.766>on <00:41:40.922>Twitter <00:41:41.077>about <00:41:41.233>that <00:41:41.388>because <00:41:41.544>that <00:41:41.700>would

849
00:41:43.200 --> 00:41:44.600
<00:41:43.200>be <00:41:43.357>I'd <00:41:43.515>really <00:41:43.672>love <00:41:43.830>to <00:41:43.987>know <00:41:44.145>who <00:41:44.302>you <00:41:44.460>are.

850
00:41:45.300 --> 00:41:46.300
<00:41:45.300>Excuse <00:41:46.200>me.

851
00:41:47.200 --> 00:41:49.000
<00:41:47.200>And <00:41:47.480>with <00:41:47.759>that <00:41:48.040>say <00:41:48.319>I'm <00:41:48.600>Dwayne.

852
00:41:49.800 --> 00:41:53.000
<00:41:49.800>I <00:41:49.975>love <00:41:50.150>Chicago. <00:41:50.325>I've <00:41:50.500>been <00:41:50.675>developer <00:41:50.850>Advocate <00:41:51.025>since <00:41:51.200>2016.

853
00:41:52.500 --> 00:41:55.200
<00:41:52.500>I <00:41:52.700>have <00:41:52.900>been <00:41:53.100>working <00:41:53.300>in <00:41:53.500>Tech <00:41:53.700>since <00:41:53.900>2005.

854
00:41:55.900 --> 00:41:58.500
<00:41:55.900>Hit <00:41:56.075>me <00:41:56.250>up <00:41:56.425>on <00:41:56.600>Twitter <00:41:56.775>or <00:41:56.950>Mastodon <00:41:57.125>again <00:41:57.300>been

855
00:41:58.500 --> 00:42:01.800
<00:41:58.500>using <00:41:58.675>Mastodon <00:41:58.850>more <00:41:59.025>these <00:41:59.200>days <00:41:59.375>than <00:41:59.550>Twitter. <00:41:59.725>If <00:41:59.900>you

856
00:42:01.800 --> 00:42:04.700
<00:42:01.800>ever <00:42:01.907>want <00:42:02.015>to <00:42:02.123>talk <00:42:02.230>about <00:42:02.338>improv <00:42:02.446>or <00:42:02.553>karaoke <00:42:02.661>here <00:42:02.769>rock <00:42:02.876>and <00:42:02.984>roll. <00:42:03.092>I'm <00:42:03.200>always

857
00:42:04.700 --> 00:42:05.200
<00:42:04.700>happy <00:42:04.924>to <00:42:05.149>chat.

858
00:42:05.800 --> 00:42:08.000
<00:42:05.800>Describe <00:42:06.033>my <00:42:06.266>talk <00:42:06.500>stock <00:42:06.733>community <00:42:06.966>of <00:42:07.200>Secrets.

859
00:42:10.700 --> 00:42:12.500
<00:42:10.700>With <00:42:10.875>that, <00:42:11.049>I'll <00:42:11.225>open <00:42:11.399>it <00:42:11.575>up <00:42:11.750>for <00:42:11.924>some <00:42:12.100>questions.

860
00:42:14.600 --> 00:42:17.200
<00:42:14.600>Hello <00:42:14.950>again, <00:42:15.299>Dwayne. <00:42:15.650>Thanks <00:42:16.000>for

861
00:42:17.200 --> 00:42:20.300
<00:42:17.200>the <00:42:17.375>amazing <00:42:17.549>talk <00:42:17.725>and <00:42:17.899>thanks <00:42:18.075>for <00:42:18.250>the <00:42:18.424>dad <00:42:18.600>jokes.

862
00:42:20.300 --> 00:42:23.100
<00:42:20.300>Some <00:42:20.500>do <00:42:20.700>new <00:42:20.900>ones <00:42:21.100>in <00:42:21.300>my <00:42:21.500>repertoire, <00:42:21.700>which

863
00:42:23.100 --> 00:42:23.800
<00:42:23.100>I <00:42:23.310>didn't <00:42:23.520>know <00:42:23.730>so.

864
00:42:25.200 --> 00:42:29.300
<00:42:25.200>I <00:42:25.327>took <00:42:25.454>a <00:42:25.581>very <00:42:25.709>away <00:42:25.836>some <00:42:25.963>learnings <00:42:26.090>from <00:42:26.218>you <00:42:26.345>today. <00:42:26.472>Good. <00:42:26.600>All

865
00:42:28.300 --> 00:42:31.400
<00:42:28.300>right, <00:42:29.000>and <00:42:29.700>we

866
00:42:31.400 --> 00:42:34.500
<00:42:31.400>had <00:42:31.600>a <00:42:31.800>diamond. <00:42:32.000>Sorry. <00:42:32.200>Oh <00:42:32.400>as <00:42:32.600>a <00:42:32.800>quick

867
00:42:34.500 --> 00:42:37.800
<00:42:34.500>side <00:42:34.655>note <00:42:34.811>on <00:42:34.966>dad <00:42:35.122>jokes. <00:42:35.277>This <00:42:35.433>is <00:42:35.588>something <00:42:35.744>Jet <00:42:35.900>chat

868
00:42:37.800 --> 00:42:40.700
<00:42:37.800>GPT <00:42:37.955>is <00:42:38.111>actually <00:42:38.266>great <00:42:38.422>at <00:42:38.577>if <00:42:38.733>you <00:42:38.888>haven't <00:42:39.044>experimental <00:42:39.200>chat

869
00:42:40.700 --> 00:42:43.500
<00:42:40.700>GPT <00:42:40.827>go <00:42:40.954>ask <00:42:41.081>it <00:42:41.209>to <00:42:41.336>write <00:42:41.463>your <00:42:41.590>dad <00:42:41.718>jokes <00:42:41.845>about <00:42:41.972>any <00:42:42.100>subject

870
00:42:43.500 --> 00:42:46.100
<00:42:43.500>it <00:42:43.733>can <00:42:43.966>some <00:42:44.200>of <00:42:44.433>them <00:42:44.666>are <00:42:44.900>okay.

871
00:42:48.100 --> 00:42:48.400
anyway

872
00:42:49.300 --> 00:42:52.900
<00:42:49.300>Okay, <00:42:49.500>thanks <00:42:49.700>for <00:42:49.900>that. <00:42:50.100>When <00:42:50.300>and <00:42:50.500>I <00:42:50.700>would

873
00:42:52.900 --> 00:42:55.200
<00:42:52.900>say <00:42:53.133>what's <00:42:53.366>the <00:42:53.600>treasury <00:42:53.833>comes <00:42:54.066>to <00:42:54.300>for

874
00:42:55.200 --> 00:42:58.300
<00:42:55.200>us <00:42:55.327>is <00:42:55.454>the <00:42:55.581>Q&amp;A. <00:42:55.709>So <00:42:55.836>I <00:42:55.963>would <00:42:56.090>say <00:42:56.218>we <00:42:56.345>jump <00:42:56.472>into <00:42:56.600>that

875
00:42:58.300 --> 00:43:01.700
<00:42:58.300>as <00:42:58.455>long <00:42:58.611>as <00:42:58.766>we <00:42:58.922>have <00:42:59.077>still <00:42:59.233>time <00:42:59.388>and <00:42:59.544>you <00:42:59.700>you

876
00:43:01.700 --> 00:43:04.300
<00:43:01.700>already <00:43:01.933>also <00:43:02.166>said <00:43:02.399>that <00:43:02.633>you're <00:43:02.866>in <00:43:03.100>Tech

877
00:43:04.300 --> 00:43:07.500
<00:43:04.300>since <00:43:04.500>2005 <00:43:04.700>or <00:43:04.900>more <00:43:05.100>involved <00:43:05.300>in <00:43:05.500>Tech. <00:43:05.700>Maybe

878
00:43:07.500 --> 00:43:10.700
<00:43:07.500>you <00:43:07.627>want <00:43:07.754>to <00:43:07.881>give <00:43:08.009>us <00:43:08.136>some <00:43:08.263>insights <00:43:08.390>on <00:43:08.518>how <00:43:08.645>you <00:43:08.772>became <00:43:08.900>interested

879
00:43:10.700 --> 00:43:13.600
<00:43:10.700>in <00:43:10.875>Tech <00:43:11.049>what <00:43:11.225>your <00:43:11.399>developer <00:43:11.575>Journey <00:43:11.750>was <00:43:11.924>and <00:43:12.100>how

880
00:43:13.600 --> 00:43:16.500
<00:43:13.600>you <00:43:13.799>got <00:43:14.000>where <00:43:14.200>you <00:43:14.400>are. <00:43:14.600>No. <00:43:14.799>Yeah. <00:43:15.000>So

881
00:43:16.500 --> 00:43:19.200
<00:43:16.500>the <00:43:16.627>the <00:43:16.754>short <00:43:16.881>answer <00:43:17.009>is <00:43:17.136>I <00:43:17.263>went <00:43:17.390>to <00:43:17.518>school <00:43:17.645>for <00:43:17.772>computer <00:43:17.900>science

882
00:43:19.200 --> 00:43:22.600
<00:43:19.200>and <00:43:19.399>then <00:43:19.600>do <00:43:19.799>anything <00:43:20.000>with <00:43:20.200>it <00:43:20.399>and <00:43:20.600>the

883
00:43:22.600 --> 00:43:25.000
<00:43:22.600>old <00:43:22.716>saying <00:43:22.833>is <00:43:22.950>true <00:43:23.066>if <00:43:23.183>you <00:43:23.299>don't <00:43:23.416>use <00:43:23.533>it, <00:43:23.650>you <00:43:23.766>lose <00:43:23.883>it <00:43:24.000>so.

884
00:43:26.500 --> 00:43:29.700
<00:43:26.500>I <00:43:26.675>didn't <00:43:26.850>become <00:43:27.025>a <00:43:27.200>developer. <00:43:27.375>I <00:43:27.550>then <00:43:27.725>fell <00:43:27.900>into

885
00:43:29.700 --> 00:43:32.100
<00:43:29.700>the <00:43:29.899>World <00:43:30.100>Tech <00:43:30.299>sales. <00:43:30.500>I <00:43:30.700>moved <00:43:30.899>to <00:43:31.100>the

886
00:43:32.100 --> 00:43:35.200
<00:43:32.100>Bay <00:43:32.255>Area <00:43:32.411>and <00:43:32.566>I <00:43:32.722>worked <00:43:32.877>for <00:43:33.033>this <00:43:33.188>wonderful <00:43:33.344>little <00:43:33.500>company

887
00:43:35.200 --> 00:43:37.900
<00:43:35.200>in <00:43:35.480>the <00:43:35.759>Java <00:43:36.040>Community <00:43:36.319>called <00:43:36.600>terracotta.

888
00:43:38.800 --> 00:43:41.700
<00:43:38.800>As <00:43:39.080>a <00:43:39.360>sales <00:43:39.640>rep <00:43:39.920>and <00:43:40.200>that

889
00:43:41.700 --> 00:43:44.200
<00:43:41.700>was <00:43:41.875>my <00:43:42.049>first <00:43:42.225>foray <00:43:42.399>into <00:43:42.575>any <00:43:42.750>real <00:43:42.924>Community. <00:43:43.100>The

890
00:43:44.200 --> 00:43:47.600
<00:43:44.200>job <00:43:44.355>of <00:43:44.511>community <00:43:44.666>is <00:43:44.822>still <00:43:44.977>like <00:43:45.133>my <00:43:45.288>original <00:43:45.444>original <00:43:45.600>OG

891
00:43:47.600 --> 00:43:50.300
<00:43:47.600>open <00:43:47.755>source <00:43:47.911>Community. <00:43:48.066>I <00:43:48.222>lived <00:43:48.377>through <00:43:48.533>the <00:43:48.688>Oracle <00:43:48.844>acquisition. <00:43:49.000>I

892
00:43:50.300 --> 00:43:52.900
<00:43:50.300>got <00:43:50.440>to <00:43:50.580>go <00:43:50.720>to <00:43:50.860>the <00:43:51.000>last <00:43:51.140>job <00:43:51.280>one <00:43:51.420>the <00:43:51.560>last <00:43:51.700>jobopolis.

893
00:43:53.800 --> 00:43:56.700
<00:43:53.800>And <00:43:53.916>be <00:43:54.033>part <00:43:54.150>of <00:43:54.266>that <00:43:54.383>whole <00:43:54.500>community <00:43:54.616>and <00:43:54.733>it <00:43:54.850>really <00:43:54.966>set <00:43:55.083>my <00:43:55.200>path

894
00:43:56.700 --> 00:43:59.300
<00:43:56.700>for <00:43:56.855>the <00:43:57.011>rest <00:43:57.166>of <00:43:57.322>my <00:43:57.477>life <00:43:57.633>that <00:43:57.788>open <00:43:57.944>source <00:43:58.100>matters

895
00:43:59.300 --> 00:44:00.200
<00:43:59.300>open <00:44:00.109>sources.

896
00:44:01.200 --> 00:44:04.500
<00:44:01.200>A <00:44:01.316>really <00:44:01.433>cool <00:44:01.549>way <00:44:01.666>to <00:44:01.783>meet <00:44:01.899>people <00:44:02.016>and <00:44:02.133>it's <00:44:02.250>a <00:44:02.366>great <00:44:02.483>common <00:44:02.600>ground

897
00:44:04.500 --> 00:44:07.200
<00:44:04.500>because <00:44:04.675>yeah, <00:44:04.850>there's <00:44:05.025>a <00:44:05.200>lot <00:44:05.375>of <00:44:05.550>politics <00:44:05.725>there's <00:44:05.900>a

898
00:44:07.200 --> 00:44:09.600
<00:44:07.200>lot <00:44:07.399>of <00:44:07.600>infighting <00:44:07.799>and <00:44:08.000>all <00:44:08.200>open <00:44:08.399>source <00:44:08.600>communities.

899
00:44:10.600 --> 00:44:13.700
<00:44:10.600>That's <00:44:10.727>just <00:44:10.854>the <00:44:10.981>nature <00:44:11.109>of <00:44:11.236>the <00:44:11.363>Beast <00:44:11.490>though, <00:44:11.618>but <00:44:11.745>I <00:44:11.872>wouldn't <00:44:12.000>trade

900
00:44:13.700 --> 00:44:16.100
<00:44:13.700>my <00:44:13.899>relationship <00:44:14.100>with <00:44:14.299>Java <00:44:14.500>people <00:44:14.700>or <00:44:14.899>Drupal <00:44:15.100>people

901
00:44:16.100 --> 00:44:18.200
<00:44:16.100>or <00:44:16.255>WordPress <00:44:16.411>people <00:44:16.566>for <00:44:16.722>anything <00:44:16.877>else. <00:44:17.033>Those <00:44:17.188>are <00:44:17.344>the <00:44:17.500>best.

902
00:44:19.500 --> 00:44:22.400
<00:44:19.500>Um <00:44:19.733>relationships <00:44:19.966>have <00:44:20.200>ever <00:44:20.433>created <00:44:20.666>throughout <00:44:20.900>my

903
00:44:22.400 --> 00:44:25.000
<00:44:22.400>career <00:44:22.866>now <00:44:23.333>working <00:44:23.800>security.

904
00:44:26.200 --> 00:44:29.500
<00:44:26.200>And <00:44:26.375>meeting <00:44:26.549>people <00:44:26.725>that <00:44:26.899>don't <00:44:27.075>have <00:44:27.250>that <00:44:27.424>mindset <00:44:27.600>of

905
00:44:29.500 --> 00:44:31.000
<00:44:29.500>Open <00:44:29.950>Source <00:44:30.400>automatically <00:44:30.850>good.

906
00:44:32.300 --> 00:44:36.300
<00:44:32.300>Has <00:44:32.427>been <00:44:32.554>a <00:44:32.681>little <00:44:32.809>bit <00:44:32.936>eye-opening, <00:44:33.063>but <00:44:33.190>the <00:44:33.318>community <00:44:33.445>around <00:44:33.572>security <00:44:33.700>has

907
00:44:35.300 --> 00:44:38.100
<00:44:35.300>is <00:44:36.000>its <00:44:36.700>own

908
00:44:38.100 --> 00:44:42.200
<00:44:38.100>thing <00:44:38.207>as <00:44:38.315>well, <00:44:38.423>but <00:44:38.530>there <00:44:38.638>are <00:44:38.746>a <00:44:38.853>lot <00:44:38.961>open <00:44:39.069>source <00:44:39.176>people <00:44:39.284>here, <00:44:39.392>but <00:44:39.500>that's

909
00:44:42.200 --> 00:44:46.100
<00:44:42.200>really <00:44:42.307>what <00:44:42.415>I <00:44:42.523>look <00:44:42.630>for <00:44:42.738>first. <00:44:42.846>No <00:44:42.953>matter <00:44:43.061>what <00:44:43.169>I'm <00:44:43.276>gonna <00:44:43.384>do. <00:44:43.492>Next <00:44:43.600>is

910
00:44:45.100 --> 00:44:48.300
<00:44:45.100>is <00:44:45.299>there <00:44:45.500>a <00:44:45.700>community <00:44:45.900>around <00:44:46.100>it <00:44:46.299>is <00:44:46.500>there?

911
00:44:50.400 --> 00:44:52.100
<00:44:50.400>How <00:44:50.633>do <00:44:50.866>I <00:44:51.100>tap <00:44:51.333>into <00:44:51.566>that <00:44:51.800>community?

912
00:44:52.900 --> 00:44:55.200
<00:44:52.900>Who <00:44:53.100>was <00:44:53.300>the <00:44:53.500>community <00:44:53.700>that's <00:44:53.900>the <00:44:54.100>community <00:44:54.300>so

913
00:44:55.200 --> 00:44:56.700
<00:44:55.200>if <00:44:55.470>I'm <00:44:55.740>interviewing <00:44:56.009>for <00:44:56.279>a <00:44:56.549>company?

914
00:44:57.600 --> 00:45:00.400
<00:44:57.600>And <00:44:57.716>I'd <00:44:57.833>advise <00:44:57.950>this <00:44:58.066>to <00:44:58.183>anyone <00:44:58.299>out <00:44:58.416>there. <00:44:58.533>Look <00:44:58.650>at <00:44:58.766>the <00:44:58.883>community <00:44:59.000>around

915
00:45:00.400 --> 00:45:03.400
<00:45:00.400>that <00:45:00.575>company. <00:45:00.750>How <00:45:00.925>is <00:45:01.100>that <00:45:01.275>company <00:45:01.450>perceived <00:45:01.625>by <00:45:01.800>that

916
00:45:03.400 --> 00:45:03.700
community?

917
00:45:04.500 --> 00:45:07.200
<00:45:04.500>If <00:45:04.655>it's <00:45:04.811>neutral <00:45:04.966>or <00:45:05.122>we <00:45:05.277>don't <00:45:05.433>know <00:45:05.588>about <00:45:05.744>them <00:45:05.900>yet.

918
00:45:07.200 --> 00:45:10.500
<00:45:07.200>That's <00:45:07.375>one <00:45:07.549>thing <00:45:07.725>if <00:45:07.899>it's <00:45:08.075>big <00:45:08.250>red <00:45:08.424>warning <00:45:08.600>flags,

919
00:45:10.500 --> 00:45:13.200
<00:45:10.500>then <00:45:10.600>run <00:45:10.700>away <00:45:10.800>go <00:45:10.900>find <00:45:11.000>something <00:45:11.100>else <00:45:11.200>to <00:45:11.300>do <00:45:11.400>with <00:45:11.500>your <00:45:11.600>life <00:45:11.700>and <00:45:11.800>work <00:45:11.900>for

920
00:45:13.200 --> 00:45:13.700
<00:45:13.200>a <00:45:13.424>terrible <00:45:13.649>company.

921
00:45:17.200 --> 00:45:20.600
<00:45:17.200>Yeah, <00:45:17.433>what's <00:45:17.666>to <00:45:17.899>live <00:45:18.133>by <00:45:18.366>doing? <00:45:18.600>You

922
00:45:20.600 --> 00:45:23.800
<00:45:20.600>mentioned <00:45:20.799>open? <00:45:21.000>Source, <00:45:21.200>quite <00:45:21.400>a <00:45:21.600>few <00:45:21.799>times <00:45:22.000>during

923
00:45:23.800 --> 00:45:26.400
<00:45:23.800>your <00:45:24.033>talks. <00:45:24.266>And <00:45:24.500>also <00:45:24.733>now, <00:45:24.966>do <00:45:25.200>you

924
00:45:26.400 --> 00:45:29.900
<00:45:26.400>currently <00:45:26.680>work <00:45:26.960>contribute <00:45:27.240>on <00:45:27.520>some <00:45:27.800>protracts

925
00:45:29.900 --> 00:45:32.300
<00:45:29.900>or <00:45:30.040>do <00:45:30.180>you <00:45:30.320>have <00:45:30.460>some <00:45:30.600>to <00:45:30.740>recommend <00:45:30.880>maybe <00:45:31.020>to <00:45:31.160>the <00:45:31.300>audience

926
00:45:32.300 --> 00:45:33.000
<00:45:32.300>to <00:45:32.615>get <00:45:32.930>started?

927
00:45:33.700 --> 00:45:36.400
<00:45:33.700>I'll <00:45:33.839>do <00:45:33.980>a <00:45:34.120>quick <00:45:34.259>plug <00:45:34.399>for <00:45:34.540>one <00:45:34.680>of <00:45:34.819>my <00:45:34.960>favorite <00:45:35.100>websites

928
00:45:36.400 --> 00:45:39.700
<00:45:36.400>in <00:45:36.516>the <00:45:36.633>world. <00:45:36.750>And <00:45:36.866>I <00:45:36.983>love <00:45:37.100>the <00:45:37.216>team <00:45:37.333>that <00:45:37.450>runs <00:45:37.566>it <00:45:37.683>open <00:45:37.800>source.com.

929
00:45:40.500 --> 00:45:43.800
<00:45:40.500>Which <00:45:40.655>sounds <00:45:40.811>like <00:45:40.966>a <00:45:41.122>misnomer <00:45:41.277>that <00:45:41.433>would <00:45:41.588>be <00:45:41.744>calm <00:45:41.900>but

930
00:45:43.800 --> 00:45:46.200
<00:45:43.800>it's <00:45:43.975>part <00:45:44.150>of <00:45:44.325>it's <00:45:44.500>a <00:45:44.675>workout <00:45:44.850>of <00:45:45.025>the <00:45:45.200>red

931
00:45:46.200 --> 00:45:49.400
<00:45:46.200>hat <00:45:46.399>Community. <00:45:46.600>It's <00:45:46.799>just <00:45:47.000>a <00:45:47.200>wonderful <00:45:47.399>collection <00:45:47.600>of

932
00:45:49.400 --> 00:45:52.100
<00:45:49.400>Open <00:45:49.633>Source <00:45:49.866>author <00:45:50.100>our <00:45:50.333>authors <00:45:50.566>writing <00:45:50.800>about

933
00:45:52.100 --> 00:45:52.600
<00:45:52.100>open <00:45:52.549>source.

934
00:45:53.200 --> 00:45:56.600
<00:45:53.200>So <00:45:53.339>I've <00:45:53.480>contributed <00:45:53.620>to <00:45:53.759>that <00:45:53.899>you <00:45:54.040>can <00:45:54.180>actually <00:45:54.319>read <00:45:54.460>a <00:45:54.600>version

935
00:45:56.600 --> 00:45:59.100
<00:45:56.600>of <00:45:56.755>that <00:45:56.911>git <00:45:57.066>talk. <00:45:57.222>I <00:45:57.377>gave <00:45:57.533>as <00:45:57.688>a <00:45:57.844>four-part <00:45:58.000>series.

936
00:46:00.200 --> 00:46:03.200
<00:46:00.200>On <00:46:00.316>open <00:46:00.433>source.com <00:46:00.549>and <00:46:00.666>I'm <00:46:00.783>actually <00:46:00.899>working <00:46:01.016>on <00:46:01.133>a <00:46:01.250>new <00:46:01.366>piece <00:46:01.483>for <00:46:01.600>them

937
00:46:03.200 --> 00:46:06.100
<00:46:03.200>now, <00:46:03.293>but <00:46:03.386>that's <00:46:03.480>a <00:46:03.573>good <00:46:03.666>stuff <00:46:03.759>jumping <00:46:03.853>off <00:46:03.946>point <00:46:04.040>just <00:46:04.133>to <00:46:04.226>see <00:46:04.319>like <00:46:04.413>what's <00:46:04.506>in <00:46:04.600>the

938
00:46:06.100 --> 00:46:09.500
<00:46:06.100>community. <00:46:06.240>What <00:46:06.380>are <00:46:06.520>these <00:46:06.660>community <00:46:06.799>care <00:46:06.940>about <00:46:07.080>like <00:46:07.220>the <00:46:07.360>communities <00:46:07.500>in

939
00:46:09.500 --> 00:46:12.600
<00:46:09.500>general <00:46:09.675>care <00:46:09.850>about <00:46:10.025>I'm <00:46:10.200>an <00:46:10.375>old <00:46:10.550>school <00:46:10.725>drupler. <00:46:10.900>I've

940
00:46:12.600 --> 00:46:15.500
<00:46:12.600>been <00:46:12.833>doing <00:46:13.066>Drupal <00:46:13.299>since <00:46:13.533>2013. <00:46:13.766>I <00:46:14.000>haven't

941
00:46:15.500 --> 00:46:18.700
<00:46:15.500>touched <00:46:15.616>it <00:46:15.733>a <00:46:15.850>little <00:46:15.966>bit <00:46:16.083>but <00:46:16.200>I'm <00:46:16.316>still <00:46:16.433>active <00:46:16.550>in <00:46:16.666>the <00:46:16.783>Chicago <00:46:16.900>Drupal

942
00:46:18.700 --> 00:46:22.000
<00:46:18.700>community. <00:46:19.049>In <00:46:19.399>fact, <00:46:19.750>I'm <00:46:20.100>today's

943
00:46:21.300 --> 00:46:24.200
<00:46:21.300>starts <00:46:22.000>mid <00:46:22.700>Camp

944
00:46:24.200 --> 00:46:27.400
<00:46:24.200>the <00:46:24.399>Drupal <00:46:24.600>camp <00:46:24.799>in <00:46:25.000>Chicago <00:46:25.200>on <00:46:25.399>I <00:46:25.600>unfortunately

945
00:46:27.400 --> 00:46:30.400
<00:46:27.400>am <00:46:27.600>in <00:46:27.800>San <00:46:28.000>Francisco <00:46:28.200>for <00:46:28.400>RSA <00:46:28.600>and <00:46:28.800>can't

946
00:46:30.400 --> 00:46:33.500
<00:46:30.400>make <00:46:30.600>it <00:46:30.800>but <00:46:31.000>I <00:46:31.200>actually <00:46:31.400>helped <00:46:31.600>organize <00:46:31.800>that

947
00:46:33.500 --> 00:46:36.500
<00:46:33.500>of <00:46:33.655>that <00:46:33.811>help <00:46:33.966>just <00:46:34.122>some <00:46:34.277>stuff <00:46:34.433>there. <00:46:34.588>So <00:46:34.744>that's <00:46:34.900>the

948
00:46:36.500 --> 00:46:39.200
<00:46:36.500>beauty <00:46:36.640>of <00:46:36.780>Open <00:46:36.920>Source <00:46:37.060>is <00:46:37.200>there's <00:46:37.340>so <00:46:37.480>many <00:46:37.620>ways <00:46:37.760>to <00:46:37.900>contribute

949
00:46:40.200 --> 00:46:43.900
<00:46:40.200>like <00:46:40.433>I've <00:46:40.666>never <00:46:40.899>ridden <00:46:41.133>any <00:46:41.366>actual <00:46:41.600>code

950
00:46:43.900 --> 00:46:46.500
<00:46:43.900>that <00:46:44.133>ended <00:46:44.366>up <00:46:44.600>in <00:46:44.833>WordPress. <00:46:45.066>I've <00:46:45.300>Rewritten

951
00:46:46.500 --> 00:46:49.200
<00:46:46.500>a <00:46:46.640>lot <00:46:46.780>of <00:46:46.920>their <00:46:47.060>documentation <00:46:47.200>not <00:46:47.340>a <00:46:47.480>majority <00:46:47.620>of <00:46:47.760>course, <00:46:47.900>but

952
00:46:49.200 --> 00:46:52.800
<00:46:49.200>I've <00:46:49.355>already <00:46:49.511>written <00:46:49.666>a <00:46:49.822>chunk <00:46:49.977>of <00:46:50.133>their <00:46:50.288>documentation. <00:46:50.444>I <00:46:50.600>used

953
00:46:52.800 --> 00:46:55.700
<00:46:52.800>to <00:46:52.940>work <00:46:53.080>with <00:46:53.220>the <00:46:53.360>marketing <00:46:53.500>team <00:46:53.640>there <00:46:53.780>the <00:46:53.920>right <00:46:54.060>glossary <00:46:54.200>and

954
00:46:55.700 --> 00:46:58.100
<00:46:55.700>make <00:46:56.049>case <00:46:56.399>studies. <00:46:56.750>There's <00:46:57.100>so

955
00:46:58.100 --> 00:47:01.300
<00:46:58.100>many <00:46:58.207>ways <00:46:58.315>you <00:46:58.423>can <00:46:58.530>contribute <00:46:58.638>to <00:46:58.746>open <00:46:58.853>source <00:46:58.961>is <00:46:59.069>not <00:46:59.176>just <00:46:59.284>code. <00:46:59.392>So <00:46:59.500>if

956
00:47:01.300 --> 00:47:04.300
<00:47:01.300>you're <00:47:01.407>sitting <00:47:01.515>there <00:47:01.623>thinking <00:47:01.730>like <00:47:01.838>I <00:47:01.946>could <00:47:02.053>never <00:47:02.161>be <00:47:02.269>involved <00:47:02.376>in <00:47:02.484>an <00:47:02.592>open <00:47:02.700>source

957
00:47:04.300 --> 00:47:07.200
<00:47:04.300>project <00:47:04.455>because <00:47:04.611>I <00:47:04.766>might <00:47:04.922>my <00:47:05.077>coding <00:47:05.233>shops <00:47:05.388>aren't <00:47:05.544>up <00:47:05.700>to

958
00:47:07.200 --> 00:47:07.300
speed.

959
00:47:08.800 --> 00:47:11.300
<00:47:08.800>I <00:47:08.975>guarantee <00:47:09.150>you <00:47:09.325>can <00:47:09.500>help <00:47:09.675>if <00:47:09.850>you <00:47:10.025>go <00:47:10.200>to

960
00:47:11.300 --> 00:47:15.100
<00:47:11.300>any <00:47:11.475>open <00:47:11.650>source <00:47:11.825>tool <00:47:12.000>you <00:47:12.175>ever <00:47:12.350>use <00:47:12.525>their <00:47:12.700>GitHub

961
00:47:14.100 --> 00:47:17.600
<00:47:14.100>repo <00:47:14.380>or <00:47:14.660>gitlab <00:47:14.940>repair <00:47:15.220>or <00:47:15.500>wherever

962
00:47:17.600 --> 00:47:20.000
<00:47:17.600>it <00:47:17.775>sits. <00:47:17.950>Look <00:47:18.125>at <00:47:18.299>the <00:47:18.475>issue <00:47:18.650>Q. <00:47:18.825>You're <00:47:19.000>gonna

963
00:47:20.200 --> 00:47:23.200
<00:47:20.200>be <00:47:20.316>shocked <00:47:20.433>to <00:47:20.549>see <00:47:20.666>the <00:47:20.783>number <00:47:20.899>of <00:47:21.016>things <00:47:21.133>that <00:47:21.250>are <00:47:21.366>in <00:47:21.483>there <00:47:21.600>that

964
00:47:23.200 --> 00:47:26.200
<00:47:23.200>aren't <00:47:23.399>just <00:47:23.600>code <00:47:23.799>related <00:47:24.000>things <00:47:24.200>like <00:47:24.399>hey, <00:47:24.600>this

965
00:47:26.200 --> 00:47:29.000
<00:47:26.200>isn't <00:47:26.339>documented <00:47:26.480>well, <00:47:26.620>and <00:47:26.759>if <00:47:26.899>you <00:47:27.040>open <00:47:27.180>up <00:47:27.319>the <00:47:27.460>source <00:47:27.600>code

966
00:47:29.200 --> 00:47:29.500
<00:47:29.200>again, <00:47:29.470>that's

967
00:47:30.200 --> 00:47:33.400
<00:47:30.200>It's <00:47:30.327>open <00:47:30.454>you <00:47:30.581>can <00:47:30.709>open <00:47:30.836>and <00:47:30.963>do <00:47:31.090>that. <00:47:31.218>It's <00:47:31.345>the <00:47:31.472>Four <00:47:31.600>Freedoms.

968
00:47:33.400 --> 00:47:36.500
<00:47:33.400>You <00:47:33.500>have <00:47:33.600>the <00:47:33.700>right <00:47:33.800>to <00:47:33.900>examine <00:47:34.000>the <00:47:34.100>code <00:47:34.200>give <00:47:34.300>the <00:47:34.400>right <00:47:34.500>to <00:47:34.600>modify <00:47:34.700>to <00:47:34.800>see

969
00:47:36.500 --> 00:47:39.400
<00:47:36.500>fit. <00:47:36.593>You <00:47:36.686>have <00:47:36.780>the <00:47:36.873>right <00:47:36.966>to <00:47:37.060>run <00:47:37.153>the <00:47:37.246>code <00:47:37.340>any <00:47:37.433>way. <00:47:37.526>You <00:47:37.620>see <00:47:37.713>fit <00:47:37.806>the <00:47:37.900>right

970
00:47:39.400 --> 00:47:40.500
<00:47:39.400>then <00:47:39.647>to <00:47:39.895>redistribute <00:47:40.142>that <00:47:40.390>code.

971
00:47:41.200 --> 00:47:44.900
<00:47:41.200>Those <00:47:41.307>rights <00:47:41.415>give <00:47:41.523>us <00:47:41.630>the <00:47:41.738>ability <00:47:41.846>to <00:47:41.953>look <00:47:42.061>at <00:47:42.169>the <00:47:42.276>code <00:47:42.384>like <00:47:42.492>that <00:47:42.600>documentation

972
00:47:44.900 --> 00:47:47.400
<00:47:44.900>makes <00:47:45.100>no <00:47:45.300>sense <00:47:45.500>the <00:47:45.700>inline <00:47:45.900>documentation <00:47:46.100>the <00:47:46.300>comments.

973
00:47:48.200 --> 00:47:51.400
<00:47:48.200>Aren't <00:47:48.375>what <00:47:48.549>this <00:47:48.725>block <00:47:48.899>does <00:47:49.075>exactly <00:47:49.250>that <00:47:49.424>probably <00:47:49.600>because

974
00:47:51.400 --> 00:47:54.200
<00:47:51.400>when <00:47:51.575>they <00:47:51.750>updated <00:47:51.925>the <00:47:52.100>code, <00:47:52.275>they <00:47:52.450>didn't <00:47:52.625>bother <00:47:52.800>for

975
00:47:54.200 --> 00:47:57.100
<00:47:54.200>the <00:47:54.327>unlike <00:47:54.454>comments. <00:47:54.581>I <00:47:54.709>have <00:47:54.836>a <00:47:54.963>friend <00:47:55.090>very <00:47:55.218>good <00:47:55.345>friend <00:47:55.472>Bridget <00:47:55.600>who?

976
00:47:58.100 --> 00:48:00.900
<00:47:58.100>Is <00:47:58.333>Rewritten <00:47:58.566>a <00:47:58.799>lot <00:47:59.033>of <00:47:59.266>core <00:47:59.500>WordPress?

977
00:48:01.900 --> 00:48:04.200
<00:48:01.900>Internal <00:48:02.250>Documentation <00:48:02.600>like <00:48:02.950>inline <00:48:03.300>code

978
00:48:04.200 --> 00:48:08.000
<00:48:04.200>and <00:48:04.375>she <00:48:04.549>has <00:48:04.725>contributor <00:48:04.899>credit <00:48:05.075>for <00:48:05.250>the <00:48:05.424>core <00:48:05.600>but

979
00:48:07.500 --> 00:48:10.300
<00:48:07.500>she's <00:48:07.733>never <00:48:07.966>written <00:48:08.200>an <00:48:08.433>actual <00:48:08.666>functional <00:48:08.900>line

980
00:48:10.300 --> 00:48:13.600
<00:48:10.300>of <00:48:10.455>PHP <00:48:10.611>or <00:48:10.766>JavaScript <00:48:10.922>and <00:48:11.077>any <00:48:11.233>of <00:48:11.388>that <00:48:11.544>so <00:48:11.700>I

981
00:48:13.600 --> 00:48:17.200
<00:48:13.600>would <00:48:13.775>encourage <00:48:13.950>everybody <00:48:14.125>if <00:48:14.299>you're <00:48:14.475>interested <00:48:14.650>in <00:48:14.825>just <00:48:15.000>lending

982
00:48:16.200 --> 00:48:18.800
<00:48:16.200>the <00:48:16.480>hand <00:48:16.759>of <00:48:17.040>the <00:48:17.319>bigger <00:48:17.600>community.

983
00:48:20.600 --> 00:48:23.100
<00:48:20.600>Yeah, <00:48:20.716>find <00:48:20.833>a <00:48:20.950>tool <00:48:21.066>you <00:48:21.183>like <00:48:21.299>like <00:48:21.416>I'd <00:48:21.533>love <00:48:21.650>to <00:48:21.766>help <00:48:21.883>with <00:48:22.000>this

984
00:48:23.100 --> 00:48:26.500
<00:48:23.100>and <00:48:23.227>go <00:48:23.354>see <00:48:23.481>what <00:48:23.609>you <00:48:23.736>can <00:48:23.863>do <00:48:23.990>is <00:48:24.118>documentation <00:48:24.245>just <00:48:24.372>spread <00:48:24.500>the

985
00:48:26.500 --> 00:48:30.100
<00:48:26.500>word <00:48:26.780>oasp <00:48:27.060>is <00:48:27.340>a <00:48:27.620>open <00:48:27.900>organization.

986
00:48:29.100 --> 00:48:32.300
<00:48:29.100>They're <00:48:29.255>not <00:48:29.411>a <00:48:29.566>product <00:48:29.722>an <00:48:29.877>open <00:48:30.033>source <00:48:30.188>project <00:48:30.344>per <00:48:30.500>se

987
00:48:32.300 --> 00:48:36.000
<00:48:32.300>but <00:48:32.500>I'm <00:48:32.700>a <00:48:32.900>member <00:48:33.100>of <00:48:33.300>owasp <00:48:33.500>and <00:48:33.700>I

988
00:48:35.500 --> 00:48:38.600
<00:48:35.500>contribute <00:48:35.675>to <00:48:35.850>them <00:48:36.025>by <00:48:36.200>giving <00:48:36.375>talks <00:48:36.550>about <00:48:36.725>oasp <00:48:36.900>and

989
00:48:38.600 --> 00:48:41.600
<00:48:38.600>spreading <00:48:38.716>the <00:48:38.833>word <00:48:38.950>and <00:48:39.066>making <00:48:39.183>sure <00:48:39.299>people <00:48:39.416>are <00:48:39.533>aware <00:48:39.650>of <00:48:39.766>all <00:48:39.883>the <00:48:40.000>cool

990
00:48:41.600 --> 00:48:44.200
<00:48:41.600>stuff <00:48:41.775>they <00:48:41.950>do <00:48:42.125>so <00:48:42.299>it's <00:48:42.475>just <00:48:42.650>a <00:48:42.825>passion <00:48:43.000>of

991
00:48:44.200 --> 00:48:45.400
<00:48:44.200>mine <00:48:44.470>that <00:48:44.740>it <00:48:45.010>sucks <00:48:45.280>good.

992
00:48:46.200 --> 00:48:49.200
<00:48:46.200>We <00:48:46.307>should <00:48:46.415>make <00:48:46.523>sure <00:48:46.630>it <00:48:46.738>gets <00:48:46.846>better <00:48:46.953>and <00:48:47.061>that <00:48:47.169>other <00:48:47.276>people <00:48:47.384>know <00:48:47.492>about <00:48:47.600>it.

993
00:48:51.400 --> 00:48:54.400
<00:48:51.400>Yeah, <00:48:51.555>they <00:48:51.711>suddenly <00:48:51.866>will <00:48:52.022>after <00:48:52.177>your <00:48:52.333>talk. <00:48:52.488>We <00:48:52.644>also <00:48:52.800>posted

994
00:48:54.400 --> 00:48:57.100
<00:48:54.400>a <00:48:54.500>link <00:48:54.600>in <00:48:54.700>the <00:48:54.800>chat <00:48:54.900>for <00:48:55.000>the <00:48:55.100>audience <00:48:55.200>to <00:48:55.300>check <00:48:55.400>it <00:48:55.500>out <00:48:55.600>and <00:48:55.700>make <00:48:55.800>it

995
00:48:57.100 --> 00:49:00.400
<00:48:57.100>as <00:48:57.275>easy <00:48:57.450>for <00:48:57.625>them <00:48:57.799>to <00:48:57.975>to <00:48:58.150>find <00:48:58.325>it <00:48:58.500>as

996
00:49:00.400 --> 00:49:03.200
<00:49:00.400>possible. <00:49:00.575>And <00:49:00.750>when <00:49:00.925>I <00:49:01.100>would <00:49:01.275>say <00:49:01.450>let's <00:49:01.625>jump <00:49:01.800>to

997
00:49:03.200 --> 00:49:06.700
<00:49:03.200>some <00:49:03.339>more <00:49:03.480>talk <00:49:03.620>related <00:49:03.759>questions <00:49:03.899>as <00:49:04.040>we <00:49:04.180>got <00:49:04.319>something <00:49:04.460>from <00:49:04.600>the

998
00:49:06.700 --> 00:49:09.500
<00:49:06.700>audience. <00:49:06.980>And <00:49:07.259>first <00:49:07.540>one <00:49:07.819>is <00:49:08.100>it

999
00:49:09.500 --> 00:49:12.100
<00:49:09.500>possible <00:49:09.700>for <00:49:09.900>teams <00:49:10.100>to <00:49:10.300>measure <00:49:10.500>the <00:49:10.700>effectiveness <00:49:10.900>of

1000
00:49:12.100 --> 00:49:16.300
<00:49:12.100>githubs <00:49:12.275>in <00:49:12.450>reducing <00:49:12.625>the <00:49:12.799>risk <00:49:12.975>of <00:49:13.150>secrets <00:49:13.325>secrets <00:49:13.500>exposure

1001
00:49:15.300 --> 00:49:18.800
<00:49:15.300>in <00:49:15.533>their <00:49:15.766>code <00:49:16.000>base. <00:49:16.233>If <00:49:16.466>so, <00:49:16.700>how

1002
00:49:20.500 --> 00:49:21.200
<00:49:20.500>what <00:49:20.710>a <00:49:20.920>great <00:49:21.129>question.

1003
00:49:22.300 --> 00:49:25.500
<00:49:22.300>So <00:49:22.533>there <00:49:22.766>are <00:49:23.000>really <00:49:23.233>two <00:49:23.466>sides. <00:49:23.700>We

1004
00:49:25.500 --> 00:49:29.900
<00:49:25.500>see <00:49:25.733>to <00:49:25.966>secret <00:49:26.200>management <00:49:26.433>maturity. <00:49:26.666>We <00:49:26.900>have

1005
00:49:29.900 --> 00:49:32.200
<00:49:29.900>a <00:49:30.100>whole <00:49:30.300>case <00:49:30.500>study <00:49:30.700>or <00:49:30.900>white <00:49:31.100>paper <00:49:31.300>about

1006
00:49:32.200 --> 00:49:35.200
<00:49:32.200>this <00:49:32.399>on <00:49:32.600>our <00:49:32.799>website, <00:49:33.000>but <00:49:33.200>we've <00:49:33.399>talked <00:49:33.600>to

1007
00:49:35.200 --> 00:49:38.600
<00:49:35.200>literally <00:49:35.433>thousands <00:49:35.666>of <00:49:35.899>companies <00:49:36.133>about <00:49:36.366>this <00:49:36.600>problem

1008
00:49:38.600 --> 00:49:41.700
<00:49:38.600>set. <00:49:38.950>So <00:49:39.299>get <00:49:39.650>Guardian <00:49:40.000>really

1009
00:49:41.700 --> 00:49:44.400
<00:49:41.700>we're <00:49:41.933>a <00:49:42.166>detection <00:49:42.399>engine <00:49:42.633>that <00:49:42.866>detects <00:49:43.100>where

1010
00:49:44.400 --> 00:49:45.100
<00:49:44.400>secrets <00:49:45.029>are

1011
00:49:47.100 --> 00:49:50.300
<00:49:47.100>If <00:49:47.333>everyone <00:49:47.566>consistently <00:49:47.799>is <00:49:48.033>using <00:49:48.266>this <00:49:48.500>tool

1012
00:49:50.300 --> 00:49:53.500
<00:49:50.300>locally, <00:49:50.455>then <00:49:50.611>you'll <00:49:50.766>never <00:49:50.922>get <00:49:51.077>a <00:49:51.233>new <00:49:51.388>commit <00:49:51.544>with <00:49:51.700>a

1013
00:49:53.500 --> 00:49:56.200
<00:49:53.500>secret <00:49:53.733>in <00:49:53.966>it <00:49:54.200>going <00:49:54.433>to <00:49:54.666>your <00:49:54.900>repositories.

1014
00:49:57.300 --> 00:50:00.300
<00:49:57.300>That's <00:49:57.455>how <00:49:57.611>you <00:49:57.766>measure <00:49:57.922>if <00:49:58.077>you're <00:49:58.233>consistently <00:49:58.388>doing <00:49:58.544>it <00:49:58.700>then

1015
00:50:00.300 --> 00:50:01.000
<00:50:00.300>they <00:50:00.510>don't <00:50:00.720>show <00:50:00.930>up.

1016
00:50:01.700 --> 00:50:04.700
<00:50:01.700>if <00:50:01.899>they <00:50:02.100>show <00:50:02.299>up <00:50:02.500>from <00:50:02.700>one <00:50:02.899>person <00:50:03.100>committing

1017
00:50:04.700 --> 00:50:07.100
<00:50:04.700>it <00:50:04.899>then <00:50:05.100>you <00:50:05.299>know <00:50:05.500>exactly <00:50:05.700>who's <00:50:05.899>committing <00:50:06.100>it

1018
00:50:07.100 --> 00:50:08.800
<00:50:07.100>get <00:50:07.566>blame <00:50:08.033>is <00:50:08.500>and

1019
00:50:09.900 --> 00:50:12.900
<00:50:09.900>it's <00:50:10.040>a <00:50:10.180>poorly <00:50:10.320>named <00:50:10.460>tool <00:50:10.600>but <00:50:10.740>it's <00:50:10.880>an <00:50:11.020>accurate <00:50:11.160>tool. <00:50:11.300>It

1020
00:50:12.900 --> 00:50:15.500
<00:50:12.900>gives <00:50:13.055>a <00:50:13.211>way <00:50:13.366>to <00:50:13.522>very <00:50:13.677>quickly <00:50:13.833>see <00:50:13.988>who's <00:50:14.144>actually <00:50:14.300>caused

1021
00:50:15.500 --> 00:50:16.800
<00:50:15.500>this. <00:50:15.667>I <00:50:15.834>mean <00:50:16.001>that's <00:50:16.168>what <00:50:16.335>gets <00:50:16.502>doing <00:50:16.670>like

1022
00:50:17.700 --> 00:50:20.200
<00:50:17.700>What <00:50:17.855>happened? <00:50:18.011>When <00:50:18.166>did <00:50:18.322>it <00:50:18.477>happen <00:50:18.633>who <00:50:18.788>caused <00:50:18.944>it <00:50:19.100>to

1023
00:50:20.200 --> 00:50:23.900
<00:50:20.200>happen? <00:50:20.293>That's <00:50:20.386>why <00:50:20.480>you <00:50:20.573>have <00:50:20.666>to <00:50:20.759>sign <00:50:20.853>your <00:50:20.946>commits. <00:50:21.040>You <00:50:21.133>can't <00:50:21.226>do <00:50:21.319>Anonymous <00:50:21.413>get <00:50:21.506>commits. <00:50:21.600>I

1024
00:50:23.900 --> 00:50:26.300
<00:50:23.900>mean <00:50:24.100>you <00:50:24.300>can <00:50:24.500>make <00:50:24.700>Anonymous <00:50:24.900>GitHub <00:50:25.100>repos, <00:50:25.300>but

1025
00:50:26.300 --> 00:50:28.700
<00:50:26.300>are <00:50:26.650>Anonymous <00:50:27.000>Gmail <00:50:27.350>accounts, <00:50:27.700>but

1026
00:50:29.500 --> 00:50:31.400
<00:50:29.500>still <00:50:29.627>the <00:50:29.754>end <00:50:29.881>of <00:50:30.009>the <00:50:30.136>day <00:50:30.263>someone <00:50:30.390>had <00:50:30.518>to <00:50:30.645>sign <00:50:30.772>that <00:50:30.900>commit.

1027
00:50:32.200 --> 00:50:33.400
<00:50:32.200>So <00:50:32.560>that's <00:50:32.920>that's <00:50:33.280>the

1028
00:50:35.600 --> 00:50:38.300
<00:50:35.600>the <00:50:35.833>way <00:50:36.066>you <00:50:36.299>tell <00:50:36.533>Effectiveness <00:50:36.766>enforcements <00:50:37.000>the

1029
00:50:38.300 --> 00:50:39.700
<00:50:38.300>other <00:50:38.552>side <00:50:38.804>we <00:50:39.056>often <00:50:39.308>get <00:50:39.560>into.

1030
00:50:42.300 --> 00:50:45.500
<00:50:42.300>And <00:50:42.416>that <00:50:42.533>I <00:50:42.650>don't <00:50:42.766>have <00:50:42.883>a <00:50:43.000>great <00:50:43.116>answer <00:50:43.233>for <00:50:43.350>you <00:50:43.466>can <00:50:43.583>you <00:50:43.700>can

1031
00:50:45.500 --> 00:50:48.200
<00:50:45.500>tell <00:50:45.640>a <00:50:45.780>developer <00:50:45.920>to <00:50:46.060>do <00:50:46.200>something <00:50:46.340>all <00:50:46.480>day <00:50:46.620>but <00:50:46.760>they're <00:50:46.900>still

1032
00:50:48.200 --> 00:50:48.700
<00:50:48.200>gonna <00:50:48.312>do <00:50:48.424>what <00:50:48.537>they <00:50:48.649>do.

1033
00:50:49.800 --> 00:50:52.200
<00:50:49.800>If <00:50:49.975>you <00:50:50.150>can <00:50:50.325>as <00:50:50.500>a <00:50:50.675>team, <00:50:50.850>encourage <00:50:51.025>them <00:50:51.200>positively.

1034
00:50:53.400 --> 00:50:56.500
<00:50:53.400>to <00:50:53.600>like <00:50:53.800>whoever <00:50:54.000>gets <00:50:54.200>installed <00:50:54.400>first, <00:50:54.600>whoever <00:50:54.800>proves

1035
00:50:56.500 --> 00:50:59.400
<00:50:56.500>that <00:50:56.675>you <00:50:56.850>know, <00:50:57.025>they <00:50:57.200>Whoever <00:50:57.375>has <00:50:57.550>the <00:50:57.725>least <00:50:57.900>amount

1036
00:50:59.400 --> 00:50:59.500
of

1037
00:51:00.700 --> 00:51:03.200
<00:51:00.700>Of <00:51:01.049>Secrets <00:51:01.399>pushed <00:51:01.750>over <00:51:02.100>the

1038
00:51:03.200 --> 00:51:06.100
<00:51:03.200>next <00:51:03.307>month <00:51:03.415>get <00:51:03.523>some <00:51:03.630>kind <00:51:03.738>of <00:51:03.846>award. <00:51:03.953>Maybe <00:51:04.061>that's <00:51:04.169>a <00:51:04.276>good <00:51:04.384>way <00:51:04.492>to <00:51:04.600>do

1039
00:51:06.100 --> 00:51:10.000
<00:51:06.100>it. <00:51:06.200>I <00:51:06.299>don't <00:51:06.400>know <00:51:06.500>a <00:51:06.600>good <00:51:06.700>answer <00:51:06.799>to <00:51:06.900>that. <00:51:07.000>That's <00:51:07.100>just <00:51:07.200>me <00:51:07.299>speculating <00:51:07.400>but <00:51:07.500>enforcements

1040
00:51:09.100 --> 00:51:12.500
<00:51:09.100>the <00:51:09.255>hardest <00:51:09.411>part <00:51:09.566>of <00:51:09.722>that <00:51:09.877>but <00:51:10.033>measuring <00:51:10.188>it <00:51:10.344>you <00:51:10.500>simply

1041
00:51:12.500 --> 00:51:15.300
<00:51:12.500>measure <00:51:12.640>how <00:51:12.780>many <00:51:12.920>commits <00:51:13.060>contain <00:51:13.200>some <00:51:13.340>kind <00:51:13.480>of <00:51:13.620>secret <00:51:13.760>and <00:51:13.900>that's

1042
00:51:15.300 --> 00:51:16.000
<00:51:15.300>your <00:51:15.930>effectiveness.

1043
00:51:17.300 --> 00:51:20.500
<00:51:17.300>Yeah, <00:51:17.475>hey <00:51:17.650>that <00:51:17.825>the <00:51:18.000>pot <00:51:18.175>with <00:51:18.350>gamification <00:51:18.525>of <00:51:18.700>the

1044
00:51:20.500 --> 00:51:24.200
<00:51:20.500>processes <00:51:20.655>works <00:51:20.811>also <00:51:20.966>pretty <00:51:21.122>well. <00:51:21.277>I <00:51:21.433>think <00:51:21.588>so <00:51:21.744>for <00:51:21.900>motivating

1045
00:51:23.200 --> 00:51:26.300
<00:51:23.200>the <00:51:23.399>team <00:51:23.600>and <00:51:23.799>everything. <00:51:24.000>So <00:51:24.200>also <00:51:24.399>also <00:51:24.600>nice

1046
00:51:26.300 --> 00:51:29.900
<00:51:26.300>point <00:51:26.500>right <00:51:26.700>there. <00:51:26.900>I <00:51:27.100>would <00:51:27.300>say <00:51:27.500>thanks <00:51:27.700>for

1047
00:51:29.900 --> 00:51:31.900
<00:51:29.900>that <00:51:30.133>answered <00:51:30.366>Wayne. <00:51:30.600>We <00:51:30.833>got <00:51:31.066>another <00:51:31.300>question.

1048
00:51:33.200 --> 00:51:36.700
<00:51:33.200>Can <00:51:33.339>get <00:51:33.480>hooks <00:51:33.620>be <00:51:33.759>used <00:51:33.899>to <00:51:34.040>prevent <00:51:34.180>other <00:51:34.319>types <00:51:34.460>of <00:51:34.600>sensitive

1049
00:51:36.700 --> 00:51:38.800
<00:51:36.700>data <00:51:36.933>from <00:51:37.166>being <00:51:37.399>committed <00:51:37.633>to <00:51:37.866>git <00:51:38.100>Repository.

1050
00:51:41.400 --> 00:51:44.300
<00:51:41.400>If <00:51:41.507>you <00:51:41.615>can <00:51:41.723>dream <00:51:41.830>it, <00:51:41.938>you <00:51:42.046>can <00:51:42.153>script <00:51:42.261>it. <00:51:42.369>If <00:51:42.476>you <00:51:42.584>can <00:51:42.692>script <00:51:42.800>it.

1051
00:51:44.300 --> 00:51:47.800
<00:51:44.300>The <00:51:44.475>automation <00:51:44.650>will <00:51:44.825>take <00:51:45.000>care <00:51:45.175>of <00:51:45.350>it. <00:51:45.525>I <00:51:45.700>the

1052
00:51:47.800 --> 00:51:50.600
<00:51:47.800>short <00:51:47.940>answer <00:51:48.080>is <00:51:48.220>yeah, <00:51:48.360>I <00:51:48.500>so <00:51:48.640>I <00:51:48.780>was <00:51:48.920>showing <00:51:49.060>you <00:51:49.200>specifically

1053
00:51:52.400 --> 00:51:52.800
keeping

1054
00:51:54.100 --> 00:51:57.100
<00:51:54.100>hard-coded <00:51:54.255>credentials <00:51:54.411>out <00:51:54.566>of <00:51:54.722>your <00:51:54.877>source <00:51:55.033>code <00:51:55.188>using <00:51:55.344>these <00:51:55.500>tools

1055
00:51:58.800 --> 00:52:01.500
<00:51:58.800>This <00:51:59.033>is <00:51:59.266>one <00:51:59.500>use <00:51:59.733>case. <00:51:59.966>Actually. <00:52:00.200>I

1056
00:52:01.500 --> 00:52:03.000
<00:52:01.500>guess <00:52:01.635>I <00:52:01.770>showed <00:52:01.905>you <00:52:02.040>too <00:52:02.175>because <00:52:02.310>I <00:52:02.445>showed <00:52:02.580>you <00:52:02.715>get <00:52:02.850>Dad.

1057
00:52:04.300 --> 00:52:07.200
<00:52:04.300>Um <00:52:04.533>are <00:52:04.766>the <00:52:05.000>curl <00:52:05.233>a <00:52:05.466>dad <00:52:05.700>joke?

1058
00:52:07.800 --> 00:52:10.300
<00:52:07.800>But <00:52:07.955>again, <00:52:08.111>if <00:52:08.266>if <00:52:08.422>you <00:52:08.577>can <00:52:08.733>write <00:52:08.888>the <00:52:09.044>grup <00:52:09.200>for

1059
00:52:10.300 --> 00:52:13.500
<00:52:10.300>it, <00:52:10.416>you <00:52:10.533>can <00:52:10.650>search <00:52:10.766>for <00:52:10.883>anything. <00:52:11.000>If <00:52:11.116>you <00:52:11.233>can <00:52:11.350>figure <00:52:11.466>out <00:52:11.583>the <00:52:11.700>grip

1060
00:52:13.500 --> 00:52:17.000
<00:52:13.500>for <00:52:13.655>I <00:52:13.811>say <00:52:13.966>not <00:52:14.122>the <00:52:14.277>grip <00:52:14.433>the <00:52:14.588>regular <00:52:14.744>expression <00:52:14.900>for

1061
00:52:16.500 --> 00:52:19.900
<00:52:16.500>an <00:52:16.733>entire <00:52:16.966>chunk <00:52:17.200>of <00:52:17.433>code, <00:52:17.666>then <00:52:17.900>you

1062
00:52:19.900 --> 00:52:23.100
<00:52:19.900>can <00:52:20.100>make <00:52:20.300>start <00:52:20.500>looking <00:52:20.700>for <00:52:20.900>that <00:52:21.100>arbitrarily <00:52:21.300>in

1063
00:52:23.100 --> 00:52:23.700
<00:52:23.100>any <00:52:23.640>file.

1064
00:52:25.800 --> 00:52:27.000
<00:52:25.800>And <00:52:26.070>then <00:52:26.340>automate <00:52:26.610>that <00:52:26.880>process.

1065
00:52:28.200 --> 00:52:29.300
<00:52:28.200>through <00:52:28.529>use <00:52:28.860>of <00:52:29.190>GitHub

1066
00:52:30.800 --> 00:52:33.200
<00:52:30.800>It's <00:52:30.940>very <00:52:31.080>common <00:52:31.220>to <00:52:31.360>see <00:52:31.500>gith <00:52:31.640>hooks <00:52:31.780>with <00:52:31.920>Winters <00:52:32.060>in <00:52:32.200>them.

1067
00:52:33.200 --> 00:52:36.300
<00:52:33.200>I <00:52:33.327>think <00:52:33.454>that <00:52:33.581>was <00:52:33.709>more <00:52:33.836>you <00:52:33.963>the <00:52:34.090>much <00:52:34.218>more <00:52:34.345>common <00:52:34.472>use <00:52:34.600>case

1068
00:52:36.300 --> 00:52:39.400
<00:52:36.300>for <00:52:36.475>githooks <00:52:36.650>than <00:52:36.825>what <00:52:37.000>I'm <00:52:37.175>talking <00:52:37.350>about. <00:52:37.525>But <00:52:37.700>again

1069
00:52:39.400 --> 00:52:42.200
<00:52:39.400>good <00:52:39.555>hooks.com <00:52:39.711>and <00:52:39.866>there's <00:52:40.022>tons <00:52:40.177>of <00:52:40.333>examples <00:52:40.488>of <00:52:40.644>what <00:52:40.800>you

1070
00:52:42.200 --> 00:52:42.500
<00:52:42.200>can <00:52:42.470>do.

1071
00:52:43.700 --> 00:52:46.400
<00:52:43.700>And <00:52:43.827>that's <00:52:43.954>another <00:52:44.081>reason <00:52:44.209>I <00:52:44.336>love <00:52:44.463>bash <00:52:44.590>is <00:52:44.718>I <00:52:44.845>love <00:52:44.972>a <00:52:45.100>CLI.

1072
00:52:46.400 --> 00:52:49.200
<00:52:46.400>I <00:52:46.516>love <00:52:46.633>to <00:52:46.750>live <00:52:46.866>in <00:52:46.983>the <00:52:47.100>command <00:52:47.216>line <00:52:47.333>if <00:52:47.450>I <00:52:47.566>can <00:52:47.683>keep <00:52:47.800>my

1073
00:52:49.200 --> 00:52:50.400
<00:52:49.200>finger <00:52:49.379>away <00:52:49.560>from <00:52:49.740>a <00:52:49.920>mouse. <00:52:50.100>I <00:52:50.280>will.

1074
00:52:52.800 --> 00:52:53.100
so

1075
00:52:54.100 --> 00:52:56.100
<00:52:54.100>if <00:52:54.333>a <00:52:54.566>tools <00:52:54.799>got <00:52:55.033>to <00:52:55.266>see <00:52:55.500>Li.

1076
00:52:56.900 --> 00:52:58.100
<00:52:56.900>Absolutely <00:52:57.260>added <00:52:57.620>in <00:52:57.980>there.

1077
00:52:59.700 --> 00:53:02.700
<00:52:59.700>There's <00:52:59.899>a <00:53:00.100>go <00:53:00.299>back <00:53:00.500>to <00:53:00.700>Honey <00:53:00.899>tokens. <00:53:01.100>There's

1078
00:53:02.700 --> 00:53:05.700
<00:53:02.700>actually <00:53:02.827>a <00:53:02.954>tool <00:53:03.081>I'm <00:53:03.209>working <00:53:03.336>on <00:53:03.463>right <00:53:03.590>now <00:53:03.718>for <00:53:03.845>personal <00:53:03.972>use <00:53:04.100>that

1079
00:53:05.700 --> 00:53:09.100
<00:53:05.700>checks. <00:53:05.855>See <00:53:06.011>if <00:53:06.166>any <00:53:06.322>secrets <00:53:06.477>are <00:53:06.633>in <00:53:06.788>my <00:53:06.944>commit <00:53:07.100>if

1080
00:53:08.100 --> 00:53:11.400
<00:53:08.100>there <00:53:08.275>aren't <00:53:08.450>and <00:53:08.625>there <00:53:08.799>aren't <00:53:08.975>any <00:53:09.150>other <00:53:09.325>secrets <00:53:09.500>in

1081
00:53:11.400 --> 00:53:13.600
<00:53:11.400>the <00:53:11.600>entire <00:53:11.800>repository. <00:53:12.000>It <00:53:12.200>makes <00:53:12.400>a <00:53:12.600>honey <00:53:12.800>token.

1082
00:53:14.500 --> 00:53:17.600
<00:53:14.500>Creates <00:53:14.627>a <00:53:14.754>file <00:53:14.881>puts <00:53:15.009>the <00:53:15.136>honey <00:53:15.263>token <00:53:15.390>in <00:53:15.518>the <00:53:15.645>file <00:53:15.772>then <00:53:15.900>adds

1083
00:53:17.600 --> 00:53:18.400
<00:53:17.600>it <00:53:17.840>to <00:53:18.080>the <00:53:18.320>repo.

1084
00:53:19.600 --> 00:53:22.400
<00:53:19.600>That's <00:53:19.755>all <00:53:19.911>that's <00:53:20.066>a <00:53:20.222>good <00:53:20.377>hook <00:53:20.533>like <00:53:20.688>it. <00:53:20.844>Does <00:53:21.000>this

1085
00:53:22.400 --> 00:53:25.100
<00:53:22.400>automatically <00:53:22.507>for <00:53:22.615>me <00:53:22.723>so <00:53:22.830>I <00:53:22.938>don't <00:53:23.046>have <00:53:23.153>to <00:53:23.261>think <00:53:23.369>about <00:53:23.476>did <00:53:23.584>I <00:53:23.692>did <00:53:23.800>I

1086
00:53:25.100 --> 00:53:28.100
<00:53:25.100>actually <00:53:25.240>secure <00:53:25.380>this <00:53:25.520>did <00:53:25.660>I <00:53:25.799>actually <00:53:25.940>put <00:53:26.080>a <00:53:26.220>honey <00:53:26.360>token <00:53:26.500>here?

1087
00:53:28.100 --> 00:53:31.000
<00:53:28.100>So <00:53:28.255>if <00:53:28.411>anybody <00:53:28.566>juggles <00:53:28.722>the <00:53:28.877>handle <00:53:29.033>I'll <00:53:29.188>get <00:53:29.344>an <00:53:29.500>alarm.

1088
00:53:31.700 --> 00:53:34.100
<00:53:31.700>And <00:53:31.816>just <00:53:31.933>it <00:53:32.049>will <00:53:32.166>do <00:53:32.283>that <00:53:32.399>for <00:53:32.516>me <00:53:32.633>moving <00:53:32.750>forward. <00:53:32.866>It's <00:53:32.983>not <00:53:33.100>quite

1089
00:53:34.100 --> 00:53:37.300
<00:53:34.100>ready <00:53:34.227>yet. <00:53:34.354>I'm <00:53:34.481>not <00:53:34.609>gonna <00:53:34.736>open <00:53:34.863>source <00:53:34.990>it <00:53:35.118>and <00:53:35.245>then <00:53:35.372>like <00:53:35.500>next

1090
00:53:37.300 --> 00:53:40.000
<00:53:37.300>week <00:53:37.427>or <00:53:37.554>so, <00:53:37.681>but <00:53:37.809>if <00:53:37.936>you <00:53:38.063>watch <00:53:38.190>my <00:53:38.318>repos, <00:53:38.445>maybe <00:53:38.572>I'll <00:53:38.700>put

1091
00:53:40.200 --> 00:53:40.500
<00:53:40.200>it <00:53:40.290>out <00:53:40.380>there <00:53:40.470>soon.

1092
00:53:42.400 --> 00:53:45.200
<00:53:42.400>Okay, <00:53:42.750>awesome, <00:53:43.100>but <00:53:43.450>when <00:53:43.800>thank

1093
00:53:45.200 --> 00:53:47.400
<00:53:45.200>you <00:53:45.375>so <00:53:45.549>much <00:53:45.725>for <00:53:45.899>that <00:53:46.075>answers. <00:53:46.250>Well <00:53:46.424>next <00:53:46.600>question.

1094
00:53:48.500 --> 00:53:52.000
<00:53:48.500>Do <00:53:48.675>you <00:53:48.850>know <00:53:49.025>of <00:53:49.200>some <00:53:49.375>alternative <00:53:49.550>solutions <00:53:49.725>for <00:53:49.900>managing

1095
00:53:51.600 --> 00:53:53.800
<00:53:51.600>secrets <00:53:52.066>in <00:53:52.533>git <00:53:53.000>repositories?

1096
00:53:55.500 --> 00:53:57.000
<00:53:55.500>Well, <00:53:56.175>I <00:53:56.850>say

1097
00:53:59.300 --> 00:54:02.500
<00:53:59.300>the <00:53:59.475>every <00:53:59.650>platform <00:53:59.825>has <00:54:00.000>its <00:54:00.175>own <00:54:00.350>built-in <00:54:00.525>secret <00:54:00.700>manager

1098
00:54:02.500 --> 00:54:04.900
<00:54:02.500>if <00:54:02.733>you're <00:54:02.966>using <00:54:03.200>like <00:54:03.433>code <00:54:03.666>anywhere <00:54:03.900>or

1099
00:54:07.800 --> 00:54:08.400
<00:54:07.800>what's <00:54:08.340>the

1100
00:54:12.800 --> 00:54:14.800
<00:54:12.800>get <00:54:13.033>get <00:54:13.266>lab <00:54:13.500>or <00:54:13.733>not <00:54:13.966>Lab <00:54:14.200>get

1101
00:54:16.700 --> 00:54:21.600
<00:54:16.700>sorry, <00:54:16.839>my <00:54:16.980>brains <00:54:17.120>farting <00:54:17.259>on <00:54:17.399>me <00:54:17.540>here <00:54:17.680>this <00:54:17.819>morning <00:54:17.960>the <00:54:18.100>tools

1102
00:54:21.600 --> 00:54:21.800
like

1103
00:54:24.200 --> 00:54:27.900
<00:54:24.200>what's <00:54:24.433>the <00:54:24.666>get <00:54:24.899>GitHub <00:54:25.133>project <00:54:25.366>where <00:54:25.600>code

1104
00:54:27.900 --> 00:54:28.200
spaces?

1105
00:54:29.400 --> 00:54:33.500
<00:54:29.400>Duh <00:54:29.750>code <00:54:30.100>spaces <00:54:30.450>and <00:54:30.800>the

1106
00:54:32.500 --> 00:54:35.000
<00:54:32.500>other <00:54:32.966>options <00:54:33.433>out <00:54:33.900>there.

1107
00:54:35.900 --> 00:54:38.300
<00:54:35.900>where <00:54:36.133>you <00:54:36.366>are <00:54:36.600>doing <00:54:36.833>Cloud <00:54:37.066>development <00:54:37.300>environments

1108
00:54:40.600 --> 00:54:44.900
<00:54:40.600>those <00:54:40.775>involve <00:54:40.950>like <00:54:41.125>you <00:54:41.299>have <00:54:41.475>EnV <00:54:41.650>files <00:54:41.825>there, <00:54:42.000>but

1109
00:54:43.900 --> 00:54:47.600
<00:54:43.900>you <00:54:44.133>want <00:54:44.366>to <00:54:44.600>use <00:54:44.833>whatever <00:54:45.066>internal <00:54:45.300>Built

1110
00:54:47.600 --> 00:54:50.800
<00:54:47.600>tool <00:54:47.775>will <00:54:47.950>manage <00:54:48.125>your <00:54:48.299>secrets <00:54:48.475>in <00:54:48.650>a <00:54:48.825>safe <00:54:49.000>way

1111
00:54:50.800 --> 00:54:53.600
<00:54:50.800>where <00:54:50.927>you <00:54:51.054>can <00:54:51.181>just <00:54:51.309>programmatically <00:54:51.436>call <00:54:51.563>them <00:54:51.690>either <00:54:51.818>from <00:54:51.945>an <00:54:52.072>Envy <00:54:52.200>file

1112
00:54:53.600 --> 00:54:56.300
<00:54:53.600>call <00:54:53.950>or <00:54:54.299>there's <00:54:54.650>a <00:54:55.000>I

1113
00:54:56.300 --> 00:54:59.000
<00:54:56.300>mentioned <00:54:56.407>them <00:54:56.515>in <00:54:56.623>the <00:54:56.730>talk. <00:54:56.838>I'm <00:54:56.946>not <00:54:57.053>here <00:54:57.161>to <00:54:57.269>sell <00:54:57.376>you <00:54:57.484>on <00:54:57.592>them. <00:54:57.700>But

1114
00:54:59.200 --> 00:55:02.000
<00:54:59.200>I <00:54:59.327>just <00:54:59.454>really <00:54:59.581>really <00:54:59.709>like <00:54:59.836>them <00:54:59.963>and <00:55:00.090>they're <00:55:00.218>Doppler <00:55:00.345>is <00:55:00.472>the <00:55:00.600>name

1115
00:55:02.300 --> 00:55:05.800
<00:55:02.300>of <00:55:02.440>the <00:55:02.580>company. <00:55:02.720>They're <00:55:02.860>out <00:55:03.000>of <00:55:03.140>Australia, <00:55:03.280>but <00:55:03.420>they <00:55:03.560>think <00:55:03.700>that

1116
00:55:05.800 --> 00:55:08.300
<00:55:05.800>you <00:55:05.975>should <00:55:06.150>just <00:55:06.325>universally <00:55:06.500>have <00:55:06.675>a <00:55:06.850>secret <00:55:07.025>manager <00:55:07.200>that

1117
00:55:08.300 --> 00:55:08.500
you

1118
00:55:09.400 --> 00:55:12.300
<00:55:09.400>Are <00:55:09.600>always <00:55:09.800>referencing <00:55:10.000>no <00:55:10.200>matter <00:55:10.400>what <00:55:10.600>system <00:55:10.800>you're

1119
00:55:12.300 --> 00:55:14.100
<00:55:12.300>using. <00:55:12.580>So <00:55:12.860>it's <00:55:13.140>it <00:55:13.420>works <00:55:13.700>enter.

1120
00:55:14.700 --> 00:55:17.700
<00:55:14.700>On <00:55:14.899>your <00:55:15.100>local <00:55:15.299>and <00:55:15.500>it <00:55:15.700>works <00:55:15.899>between <00:55:16.100>multiple

1121
00:55:17.700 --> 00:55:21.100
<00:55:17.700>platforms <00:55:17.839>out <00:55:17.980>there, <00:55:18.120>but <00:55:18.259>there <00:55:18.399>are <00:55:18.540>a <00:55:18.680>ton <00:55:18.819>of <00:55:18.960>alternatives <00:55:19.100>to

1122
00:55:20.100 --> 00:55:23.700
<00:55:20.100>hard <00:55:20.380>coding <00:55:20.660>your <00:55:20.940>secrets. <00:55:21.220>So <00:55:21.500>we've

1123
00:55:23.700 --> 00:55:26.600
<00:55:23.700>just <00:55:23.933>mentioned <00:55:24.166>a <00:55:24.399>few <00:55:24.633>but <00:55:24.866>that's <00:55:25.100>the

1124
00:55:26.600 --> 00:55:29.200
<00:55:26.600>most <00:55:26.740>common <00:55:26.880>ones <00:55:27.020>are <00:55:27.160>actually <00:55:27.299>Court <00:55:27.440>vault <00:55:27.580>is <00:55:27.720>the <00:55:27.860>one <00:55:28.000>you'll

1125
00:55:29.200 --> 00:55:32.400
<00:55:29.200>run <00:55:29.316>into <00:55:29.433>the <00:55:29.549>most. <00:55:29.666>It's <00:55:29.783>very <00:55:29.899>heavy-handed, <00:55:30.016>but <00:55:30.133>it's <00:55:30.250>Universal <00:55:30.366>and <00:55:30.483>every <00:55:30.600>platform

1126
00:55:32.400 --> 00:55:33.600
<00:55:32.400>in <00:55:32.580>the <00:55:32.760>world <00:55:32.940>can <00:55:33.120>interact <00:55:33.300>with <00:55:33.480>it.

1127
00:55:35.700 --> 00:55:38.300
<00:55:35.700>Okay. <00:55:35.899>Yeah, <00:55:36.100>but <00:55:36.299>staying <00:55:36.500>with <00:55:36.700>one <00:55:36.899>totally <00:55:37.100>makes

1128
00:55:38.300 --> 00:55:38.500
<00:55:38.300>sense, <00:55:38.480>so

1129
00:55:40.400 --> 00:55:41.800
<00:55:40.400>so <00:55:40.610>get <00:55:40.820>used <00:55:41.030>to <00:55:41.240>one <00:55:41.450>and <00:55:41.660>maybe

1130
00:55:44.200 --> 00:55:47.900
<00:55:44.200>Maybe <00:55:44.399>you <00:55:44.600>never <00:55:44.799>have <00:55:45.000>to <00:55:45.200>switch, <00:55:45.399>so <00:55:45.600>Dwayne.

1131
00:55:47.900 --> 00:55:50.600
<00:55:47.900>Thank <00:55:48.016>you <00:55:48.133>so <00:55:48.250>much <00:55:48.366>for <00:55:48.483>the <00:55:48.600>talk <00:55:48.716>for <00:55:48.833>all <00:55:48.950>the <00:55:49.066>information <00:55:49.183>you <00:55:49.300>gave

1132
00:55:50.600 --> 00:55:53.500
<00:55:50.600>us <00:55:50.740>also <00:55:50.880>for <00:55:51.020>the <00:55:51.160>cool <00:55:51.299>Q&amp;A <00:55:51.440>with <00:55:51.580>you <00:55:51.720>many <00:55:51.860>many <00:55:52.000>greetings

1133
00:55:53.500 --> 00:55:56.600
<00:55:53.500>over <00:55:53.640>to <00:55:53.780>San <00:55:53.920>Francisco <00:55:54.060>and <00:55:54.200>try <00:55:54.340>your <00:55:54.480>stay <00:55:54.620>and <00:55:54.760>Conference <00:55:54.900>and

1134
00:55:56.600 --> 00:55:59.900
<00:55:56.600>hopefully <00:55:56.755>see <00:55:56.911>you <00:55:57.066>soon <00:55:57.222>on <00:55:57.377>another <00:55:57.533>live <00:55:57.688>day. <00:55:57.844>Absolutely. <00:55:58.000>Thanks

1135
00:55:59.900 --> 00:56:02.100
<00:55:59.900>so <00:56:00.027>much <00:56:00.154>for <00:56:00.281>having <00:56:00.409>me. <00:56:00.536>I <00:56:00.663>hope <00:56:00.790>everyone <00:56:00.918>out <00:56:01.045>there <00:56:01.172>enjoyed <00:56:01.300>it.

1136
00:56:02.100 --> 00:56:03.300
<00:56:02.100>Thanks <00:56:02.640>so <00:56:03.180>much.

1137
00:56:04.500 --> 00:56:05.600
<00:56:04.500>Thanks, <00:56:04.995>Dwayne. <00:56:05.490>Bye.