WEBVTT

1
00:00:01.180 --> 00:00:04.920
<00:00:01.180>Hello, <00:00:01.319>I'm <00:00:01.460>Antoine <00:00:01.599>Thomas, <00:00:01.739>community <00:00:01.880>manager <00:00:02.019>at <00:00:02.159>Hyland <00:00:02.300>in <00:00:02.439>charge <00:00:02.580>of

2
00:00:04.940 --> 00:00:08.620
<00:00:04.940>open-source <00:00:05.220>solution. <00:00:05.500>And <00:00:05.780>today, <00:00:06.060>we'll <00:00:06.340>speak

3
00:00:08.660 --> 00:00:12.340
<00:00:08.660>together <00:00:08.940>about <00:00:09.220>compliance <00:00:09.500>and <00:00:09.780>risk <00:00:10.060>when

4
00:00:12.960 --> 00:00:15.780
<00:00:12.960>shipping <00:00:13.310>open-source <00:00:13.660>AI <00:00:14.010>and <00:00:14.360>containers.

5
00:00:19.800 --> 00:00:20.020
So

6
00:00:21.500 --> 00:00:24.700
<00:00:21.500>why <00:00:21.850>this <00:00:22.200>talk <00:00:22.550>matters? <00:00:22.900>Actually,

7
00:00:26.020 --> 00:00:29.580
<00:00:26.020>we <00:00:26.220>are <00:00:26.419>at <00:00:26.620>this <00:00:26.820>stage <00:00:27.020>where <00:00:27.220>most <00:00:27.419>software

8
00:00:29.820 --> 00:00:33.140
<00:00:29.820>nowadays <00:00:30.053>is <00:00:30.286>shipped <00:00:30.520>with <00:00:30.753>a <00:00:30.986>combination <00:00:31.220>of

9
00:00:33.580 --> 00:00:37.100
<00:00:33.580>open-source <00:00:33.860>technologies <00:00:34.140>as <00:00:34.420>a <00:00:34.699>base, <00:00:34.980>proprietary

10
00:00:37.160 --> 00:00:39.400
<00:00:37.160>software <00:00:37.510>layers, <00:00:37.860>and <00:00:38.209>glue <00:00:38.559>to

11
00:00:40.220 --> 00:00:42.200
<00:00:40.220>put <00:00:40.420>that <00:00:40.620>together <00:00:40.820>and <00:00:41.019>make <00:00:41.220>it <00:00:41.420>work <00:00:41.620>together.

12
00:00:42.940 --> 00:00:45.800
<00:00:42.940>And, <00:00:43.290>of <00:00:43.640>course, <00:00:43.989>everybody's <00:00:44.339>adding

13
00:00:46.540 --> 00:00:50.400
<00:00:46.540>artificial <00:00:46.820>intelligence, <00:00:47.100>LLMs, <00:00:47.379>and <00:00:47.660>technology <00:00:47.940>like

14
00:00:50.460 --> 00:00:50.720
that.

15
00:00:51.860 --> 00:00:55.740
<00:00:51.860>And <00:00:52.015>mixing <00:00:52.171>that <00:00:52.326>together <00:00:52.482>will <00:00:52.637>present <00:00:52.793>a <00:00:52.948>potential <00:00:53.104>legal <00:00:53.260>risk.

16
00:00:55.980 --> 00:00:59.840
<00:00:55.980>And <00:00:56.260>this <00:00:56.540>risk <00:00:56.819>can <00:00:57.099>be <00:00:57.379>translated

17
00:00:59.900 --> 00:01:03.000
<00:00:59.900>into <00:01:00.180>business <00:01:00.460>risks, <00:01:00.739>where <00:01:01.019>some <00:01:01.300>companies

18
00:01:03.940 --> 00:01:07.660
<00:01:03.940>evaluate <00:01:04.173>first <00:01:04.406>legal <00:01:04.640>compliance <00:01:04.873>and <00:01:05.106>legal <00:01:05.340>risk

19
00:01:07.920 --> 00:01:11.300
<00:01:07.920>before <00:01:08.200>technical <00:01:08.480>risk <00:01:08.760>and <00:01:09.040>technology <00:01:09.320>itself,

20
00:01:12.080 --> 00:01:15.660
<00:01:12.080>meaning <00:01:12.429>that <00:01:12.780>they <00:01:13.130>can <00:01:13.480>not,

21
00:01:16.000 --> 00:01:19.120
<00:01:16.000>in <00:01:16.175>some <00:01:16.350>cases, <00:01:16.525>adopt <00:01:16.700>what <00:01:16.875>you <00:01:17.050>ship <00:01:17.225>your <00:01:17.400>software.

22
00:01:19.680 --> 00:01:22.760
<00:01:19.680>So <00:01:20.146>developers <00:01:20.613>increasingly <00:01:21.080>share

23
00:01:23.080 --> 00:01:26.660
<00:01:23.080>responsibility, <00:01:23.255>and <00:01:23.429>that's <00:01:23.605>the <00:01:23.780>point <00:01:23.955>of <00:01:24.130>this <00:01:24.304>talk <00:01:24.480>is

24
00:01:26.740 --> 00:01:30.670
<00:01:26.740>to <00:01:26.895>give <00:01:27.051>everybody <00:01:27.206>in <00:01:27.362>the <00:01:27.517>tech <00:01:27.673>community <00:01:27.828>some <00:01:27.984>key <00:01:28.140>and

25
00:01:30.740 --> 00:01:33.320
<00:01:30.740>examples <00:01:30.973>on <00:01:31.206>how <00:01:31.440>to <00:01:31.673>handle <00:01:31.906>that <00:01:32.140>well

26
00:01:34.380 --> 00:01:36.880
<00:01:34.380>before <00:01:34.660>it <00:01:34.940>becomes <00:01:35.220>a <00:01:35.500>potential <00:01:35.780>problem.

27
00:01:38.180 --> 00:01:38.360
So

28
00:01:39.300 --> 00:01:43.100
<00:01:39.300>first, <00:01:39.427>I <00:01:39.554>would <00:01:39.681>like <00:01:39.809>to <00:01:39.936>introduce <00:01:40.063>what <00:01:40.190>is <00:01:40.318>legal <00:01:40.445>compliance, <00:01:40.572>but <00:01:40.700>the

29
00:01:43.140 --> 00:01:43.800
<00:01:43.140>easy <00:01:43.734>way.

30
00:01:44.680 --> 00:01:45.420
The

31
00:01:46.240 --> 00:01:50.200
<00:01:46.240>target <00:01:46.367>here <00:01:46.494>is <00:01:46.621>not <00:01:46.749>to <00:01:46.876>make <00:01:47.003>it <00:01:47.130>boring, <00:01:47.258>but <00:01:47.385>instead <00:01:47.512>to <00:01:47.640>make

32
00:01:50.280 --> 00:01:53.660
<00:01:50.280>it <00:01:50.560>interesting <00:01:50.840>in <00:01:51.120>order <00:01:51.400>that <00:01:51.680>everybody

33
00:01:53.680 --> 00:01:57.240
<00:01:53.680>understands <00:01:53.913>that <00:01:54.146>it's <00:01:54.380>something <00:01:54.613>important <00:01:54.846>to <00:01:55.080>handle.

34
00:01:57.860 --> 00:02:01.420
<00:01:57.860>So <00:01:58.060>first, <00:01:58.260>legal <00:01:58.460>compliance <00:01:58.660>is <00:01:58.860>part <00:01:59.060>of <00:01:59.260>intellectual

35
00:02:01.580 --> 00:02:04.800
<00:02:01.580>property <00:02:01.735>management, <00:02:01.891>like <00:02:02.046>the <00:02:02.202>brand, <00:02:02.357>the <00:02:02.513>name <00:02:02.668>of <00:02:02.824>your <00:02:02.980>software,

36
00:02:05.460 --> 00:02:09.220
<00:02:05.460>as <00:02:05.693>logos <00:02:05.926>and <00:02:06.160>documentation. <00:02:06.393>Everything's <00:02:06.626>related <00:02:06.860>to

37
00:02:09.259 --> 00:02:13.020
<00:02:09.259>copyright <00:02:09.375>and <00:02:09.492>things <00:02:09.609>like <00:02:09.725>that. <00:02:09.842>And <00:02:09.959>of <00:02:10.075>course, <00:02:10.192>the <00:02:10.309>code <00:02:10.425>and <00:02:10.542>the <00:02:10.659>software

38
00:02:13.300 --> 00:02:13.580
ship

39
00:02:14.520 --> 00:02:16.320
<00:02:14.520>is <00:02:14.870>part <00:02:15.220>of <00:02:15.570>that. <00:02:15.920>So

40
00:02:17.300 --> 00:02:21.070
<00:02:17.300>legal <00:02:17.580>compliance <00:02:17.860>actually <00:02:18.140>include <00:02:18.420>rights <00:02:18.700>and

41
00:02:21.140 --> 00:02:24.860
<00:02:21.140>obligations <00:02:21.339>that <00:02:21.540>comes <00:02:21.739>from <00:02:21.940>open-source <00:02:22.140>licenses, <00:02:22.339>of <00:02:22.540>course,

42
00:02:25.380 --> 00:02:29.109
<00:02:25.380>but <00:02:25.660>also <00:02:25.940>it <00:02:26.220>comes <00:02:26.500>from <00:02:26.780>your

43
00:02:29.160 --> 00:02:33.130
<00:02:29.160>term <00:02:29.299>of <00:02:29.440>use, <00:02:29.579>I <00:02:29.720>mean, <00:02:29.859>your <00:02:30.000>company <00:02:30.140>term <00:02:30.280>of <00:02:30.420>use, <00:02:30.560>and

44
00:02:33.160 --> 00:02:35.800
<00:02:33.160>it <00:02:33.440>applies <00:02:33.720>when <00:02:34.000>you <00:02:34.280>distribute <00:02:34.560>software.

45
00:02:36.980 --> 00:02:40.820
<00:02:36.980>I <00:02:37.179>put <00:02:37.380>a <00:02:37.579>short <00:02:37.780>exclamation <00:02:37.980>panel <00:02:38.179>here <00:02:38.380>because

46
00:02:41.920 --> 00:02:45.480
<00:02:41.920>really <00:02:42.060>it <00:02:42.200>comes <00:02:42.340>at <00:02:42.480>distribution. <00:02:42.620>If <00:02:42.760>you <00:02:42.900>take <00:02:43.040>a <00:02:43.180>lot <00:02:43.320>of

47
00:02:45.500 --> 00:02:49.489
<00:02:45.500>technology, <00:02:45.700>you <00:02:45.900>install <00:02:46.100>that <00:02:46.300>for <00:02:46.500>your <00:02:46.700>own <00:02:46.900>use,

48
00:02:49.560 --> 00:02:52.829
<00:02:49.560>for <00:02:49.715>your <00:02:49.871>company <00:02:50.026>use, <00:02:50.182>it's <00:02:50.337>internal <00:02:50.493>only, <00:02:50.648>you're <00:02:50.804>not <00:02:50.960>really

49
00:02:52.860 --> 00:02:55.800
<00:02:52.860>distributing. <00:02:53.060>You're <00:02:53.260>assembling <00:02:53.460>a <00:02:53.660>lot <00:02:53.860>of <00:02:54.060>stuff <00:02:54.260>together.

50
00:02:56.260 --> 00:03:00.200
<00:02:56.260>But <00:02:56.376>when <00:02:56.493>you <00:02:56.609>want <00:02:56.726>to <00:02:56.843>create <00:02:56.959>something <00:02:57.076>that <00:02:57.193>you <00:02:57.310>will <00:02:57.426>ship, <00:02:57.543>say, <00:02:57.660>a

51
00:03:00.240 --> 00:03:03.680
<00:03:00.240>Docker <00:03:00.380>image <00:03:00.520>with <00:03:00.660>something <00:03:00.800>you <00:03:00.940>build <00:03:01.080>with <00:03:01.220>a <00:03:01.360>lot <00:03:01.500>of <00:03:01.640>software,

52
00:03:04.320 --> 00:03:07.040
<00:03:04.320>here <00:03:04.553>becomes <00:03:04.786>a <00:03:05.019>risk <00:03:05.253>because <00:03:05.486>most <00:03:05.720>licenses

53
00:03:07.640 --> 00:03:11.420
<00:03:07.640>apply <00:03:07.920>at <00:03:08.200>distribution <00:03:08.480>time. <00:03:08.760>So <00:03:09.040>let's

54
00:03:11.600 --> 00:03:13.760
<00:03:11.600>dig <00:03:11.950>that <00:03:12.299>a <00:03:12.650>bit <00:03:13.000>deeper.

55
00:03:14.960 --> 00:03:17.960
<00:03:14.960>Why <00:03:15.310>developers <00:03:15.660>often <00:03:16.010>overlook <00:03:16.360>it?

56
00:03:18.260 --> 00:03:18.480
Well,

57
00:03:19.800 --> 00:03:21.360
<00:03:19.800>in <00:03:20.150>the <00:03:20.500>last <00:03:20.850>25 <00:03:21.200>years,

58
00:03:22.640 --> 00:03:26.620
<00:03:22.640>people <00:03:22.779>come <00:03:22.920>and <00:03:23.059>say, <00:03:23.200>"It's <00:03:23.339>not <00:03:23.480>a <00:03:23.619>technical <00:03:23.760>problem." <00:03:23.899>Yeah, <00:03:24.040>you're

59
00:03:26.700 --> 00:03:30.460
<00:03:26.700>right. <00:03:26.855>But <00:03:27.011>the <00:03:27.166>problem <00:03:27.322>is <00:03:27.477>that <00:03:27.633>if <00:03:27.788>you <00:03:27.944>include <00:03:28.100>a

60
00:03:30.500 --> 00:03:33.980
<00:03:30.500>dependency <00:03:30.700>with <00:03:30.900>the <00:03:31.100>wrong <00:03:31.300>license, <00:03:31.500>say, <00:03:31.700>you <00:03:31.900>are

61
00:03:34.040 --> 00:03:37.960
<00:03:34.040>NPM, <00:03:34.239>you <00:03:34.440>find <00:03:34.640>something <00:03:34.840>that <00:03:35.040>works, <00:03:35.239>you <00:03:35.440>are

62
00:03:38.040 --> 00:03:41.930
<00:03:38.040>on <00:03:38.195>the <00:03:38.351>Docker <00:03:38.506>Hub, <00:03:38.662>and <00:03:38.817>you <00:03:38.973>find <00:03:39.128>an <00:03:39.284>image <00:03:39.440>that

63
00:03:41.980 --> 00:03:45.960
<00:03:41.980>works <00:03:42.107>and <00:03:42.234>solve <00:03:42.361>a <00:03:42.489>problem <00:03:42.616>for <00:03:42.743>you, <00:03:42.870>and <00:03:42.998>you <00:03:43.125>don't <00:03:43.252>care <00:03:43.380>enough

64
00:03:46.020 --> 00:03:49.360
<00:03:46.020>for <00:03:46.175>the <00:03:46.331>license. <00:03:46.486>You <00:03:46.642>put <00:03:46.797>everything <00:03:46.953>together <00:03:47.108>and <00:03:47.264>you <00:03:47.420>ship,

65
00:03:49.720 --> 00:03:53.320
<00:03:49.720>and <00:03:49.847>then <00:03:49.974>at <00:03:50.101>one <00:03:50.229>point, <00:03:50.356>someone <00:03:50.483>will <00:03:50.610>come <00:03:50.738>and <00:03:50.865>say, <00:03:50.992>"Hey, <00:03:51.120>this

66
00:03:53.360 --> 00:03:56.600
<00:03:53.360>license, <00:03:53.535>we <00:03:53.710>don't <00:03:53.885>have <00:03:54.060>the <00:03:54.235>right <00:03:54.410>to <00:03:54.585>put <00:03:54.760>together

67
00:03:57.420 --> 00:03:59.720
<00:03:57.420>with <00:03:57.770>the <00:03:58.120>entire <00:03:58.470>software." <00:03:58.820>So

68
00:04:01.060 --> 00:04:02.220
<00:04:01.060>why <00:04:02.103>developers

69
00:04:03.260 --> 00:04:06.220
<00:04:03.260>most <00:04:03.493>of <00:04:03.726>the <00:04:03.959>time <00:04:04.193>don't <00:04:04.426>think <00:04:04.660>about

70
00:04:06.640 --> 00:04:09.930
<00:04:06.640>checking <00:04:07.106>license <00:04:07.573>before <00:04:08.040>integrating?

71
00:04:09.960 --> 00:04:13.180
<00:04:09.960>It <00:04:10.115>should <00:04:10.271>be <00:04:10.426>a <00:04:10.582>criteria, <00:04:10.737>not <00:04:10.893>just <00:04:11.048>a <00:04:11.204>technical <00:04:11.360>side.

72
00:04:13.220 --> 00:04:14.360
<00:04:13.220>First, <00:04:13.425>it's <00:04:13.630>the <00:04:13.835>lack <00:04:14.040>of <00:04:14.246>knowledge.

73
00:04:14.560 --> 00:04:18.140
<00:04:14.560>You <00:04:14.715>can't <00:04:14.871>have, <00:04:15.026>I <00:04:15.182>think, <00:04:15.337>a <00:04:15.493>master <00:04:15.648>in <00:04:15.804>engineering <00:04:15.960>or

74
00:04:18.221 --> 00:04:21.709
<00:04:18.221>whatever <00:04:18.454>and <00:04:18.687>not <00:04:18.921>have <00:04:19.154>one <00:04:19.387>day, <00:04:19.620>of

75
00:04:21.840 --> 00:04:24.900
<00:04:21.839>course, <00:04:22.119>about <00:04:22.400>legal <00:04:22.679>compliance <00:04:22.960>and <00:04:23.239>licenses,

76
00:04:25.700 --> 00:04:29.000
<00:04:25.700>and <00:04:25.933>how <00:04:26.166>to <00:04:26.400>use <00:04:26.633>open <00:04:26.866>source <00:04:27.099>responsibly.

77
00:04:29.880 --> 00:04:33.740
<00:04:29.880>So <00:04:30.035>it's <00:04:30.191>often <00:04:30.346>seen <00:04:30.502>as <00:04:30.657>a <00:04:30.813>legal <00:04:30.968>team <00:04:31.124>problem <00:04:31.280>or

78
00:04:33.760 --> 00:04:36.230
<00:04:33.760>responsibility. <00:04:34.110>But <00:04:34.460>the <00:04:34.810>fact <00:04:35.159>is,

79
00:04:36.660 --> 00:04:40.380
<00:04:36.659>because <00:04:37.010>everybody <00:04:37.359>is <00:04:37.710>handling <00:04:38.059>the

80
00:04:40.400 --> 00:04:41.540
<00:04:40.400>ball <00:04:40.656>to <00:04:40.913>the <00:04:41.169>other <00:04:41.426>team,

81
00:04:42.640 --> 00:04:45.860
<00:04:42.640>it <00:04:42.873>result <00:04:43.106>with <00:04:43.340>poor <00:04:43.573>documentation, <00:04:43.806>poor <00:04:44.039>tooling.

82
00:04:46.160 --> 00:04:49.180
<00:04:46.159>But <00:04:46.359>documentation <00:04:46.559>and <00:04:46.760>tooling <00:04:46.960>are <00:04:47.159>the <00:04:47.359>key <00:04:47.559>here.

83
00:04:49.640 --> 00:04:53.620
<00:04:49.640>If <00:04:49.767>you <00:04:49.894>document <00:04:50.021>before <00:04:50.149>what <00:04:50.276>is <00:04:50.403>okay, <00:04:50.530>what <00:04:50.658>is <00:04:50.785>not <00:04:50.912>okay, <00:04:51.039>and

84
00:04:53.700 --> 00:04:57.540
<00:04:53.700>you <00:04:53.900>include <00:04:54.099>tooling <00:04:54.300>to <00:04:54.500>your <00:04:54.700>CI/CD <00:04:54.900>to <00:04:55.099>check

85
00:04:57.560 --> 00:05:00.960
<00:04:57.560>that <00:04:57.793>everything's <00:04:58.026>fine, <00:04:58.260>you <00:04:58.493>can <00:04:58.726>be <00:04:58.960>proactive.

86
00:05:01.500 --> 00:05:05.469
<00:05:01.500>The <00:05:01.627>problem <00:05:01.754>comes <00:05:01.881>when <00:05:02.009>you <00:05:02.136>have <00:05:02.263>to <00:05:02.390>fix <00:05:02.518>issue <00:05:02.645>later <00:05:02.772>in <00:05:02.900>projects,

87
00:05:05.840 --> 00:05:09.780
<00:05:05.840>because <00:05:05.956>when <00:05:06.073>it's <00:05:06.190>built <00:05:06.306>and <00:05:06.423>you <00:05:06.539>start <00:05:06.656>to <00:05:06.773>ship <00:05:06.890>and <00:05:07.006>you <00:05:07.123>have <00:05:07.239>a

88
00:05:09.820 --> 00:05:13.700
<00:05:09.820>legal <00:05:09.947>problem <00:05:10.074>coming <00:05:10.201>back, <00:05:10.329>some <00:05:10.456>legal <00:05:10.583>compliance, <00:05:10.710>let's <00:05:10.838>say <00:05:10.965>an <00:05:11.092>open <00:05:11.219>source

89
00:05:13.720 --> 00:05:16.380
<00:05:13.720>software <00:05:14.070>with <00:05:14.420>a <00:05:14.770>wrong <00:05:15.120>license,

90
00:05:17.420 --> 00:05:21.020
<00:05:17.420>well, <00:05:17.700>here <00:05:17.980>you <00:05:18.260>will <00:05:18.540>have <00:05:18.820>to

91
00:05:21.100 --> 00:05:21.780
<00:05:21.100>fix <00:05:21.712>that

92
00:05:22.620 --> 00:05:26.100
<00:05:22.620>as <00:05:22.820>a <00:05:23.020>reactive <00:05:23.220>issue. <00:05:23.420>And <00:05:23.620>everybody <00:05:23.820>knows <00:05:24.020>that

93
00:05:26.260 --> 00:05:28.599
<00:05:26.260>fixing <00:05:26.610>late <00:05:26.960>cost <00:05:27.310>a <00:05:27.659>lot.

94
00:05:29.560 --> 00:05:32.900
<00:05:29.560>So <00:05:29.793>if <00:05:30.026>you <00:05:30.260>think <00:05:30.493>about <00:05:30.726>legal <00:05:30.960>compliance,

95
00:05:33.000 --> 00:05:36.580
<00:05:33.000>licenses, <00:05:33.155>and <00:05:33.311>so <00:05:33.466>on <00:05:33.622>before <00:05:33.777>shipping, <00:05:33.933>when <00:05:34.088>you <00:05:34.244>are <00:05:34.400>at

96
00:05:36.620 --> 00:05:40.480
<00:05:36.620>the <00:05:36.795>architecture <00:05:36.970>time <00:05:37.145>or <00:05:37.320>I <00:05:37.495>would <00:05:37.670>say <00:05:37.845>development <00:05:38.020>time,

97
00:05:40.940 --> 00:05:44.660
<00:05:40.940>it's <00:05:41.115>easier <00:05:41.290>to <00:05:41.465>handle <00:05:41.640>that <00:05:41.815>well <00:05:41.990>at <00:05:42.165>the <00:05:42.340>beginning

98
00:05:45.020 --> 00:05:48.900
<00:05:45.020>than <00:05:45.195>having <00:05:45.370>to <00:05:45.544>replace <00:05:45.719>an <00:05:45.895>important <00:05:46.070>dependency, <00:05:46.245>an <00:05:46.419>important

99
00:05:48.980 --> 00:05:52.860
<00:05:48.980>library <00:05:49.180>or <00:05:49.380>something, <00:05:49.580>an <00:05:49.780>important <00:05:49.980>component <00:05:50.180>later, <00:05:50.380>because

100
00:05:52.900 --> 00:05:55.180
<00:05:52.900>you <00:05:53.055>might <00:05:53.211>have <00:05:53.366>to <00:05:53.522>redo <00:05:53.677>a <00:05:53.833>lot <00:05:53.988>of <00:05:54.144>things, <00:05:54.299>okay?

101
00:05:55.920 --> 00:05:58.360
<00:05:55.920>So <00:05:56.386>to <00:05:56.853>illustrate <00:05:57.320>that,

102
00:05:59.520 --> 00:06:03.280
<00:05:59.520>I <00:05:59.719>would <00:05:59.919>like <00:06:00.120>to <00:06:00.320>use <00:06:00.520>the <00:06:00.719>container <00:06:00.919>example,

103
00:06:03.360 --> 00:06:07.108
<00:06:03.360>which <00:06:03.593>is <00:06:03.826>How <00:06:04.060>we <00:06:04.293>ship <00:06:04.526>software <00:06:04.760>nowadays.

104
00:06:07.488 --> 00:06:11.308
<00:06:07.488>But <00:06:07.615>you <00:06:07.742>have <00:06:07.869>to <00:06:07.997>think <00:06:08.124>that <00:06:08.251>containers <00:06:08.378>is <00:06:08.506>the <00:06:08.633>same <00:06:08.760>thing <00:06:08.888>that,

105
00:06:11.808 --> 00:06:14.948
<00:06:11.808>say, <00:06:12.041>a <00:06:12.274>package <00:06:12.508>for <00:06:12.741>Apple <00:06:12.974>or <00:06:13.207>Linux,

106
00:06:15.828 --> 00:06:19.528
<00:06:15.828>a <00:06:16.061>firmware <00:06:16.294>for <00:06:16.527>embedding <00:06:16.761>device, <00:06:16.994>or <00:06:17.227>APIs.

107
00:06:20.068 --> 00:06:23.988
<00:06:20.068>Because <00:06:20.223>in <00:06:20.379>some <00:06:20.534>cases, <00:06:20.690>having <00:06:20.845>public <00:06:21.001>APIs, <00:06:21.156>there <00:06:21.312>are <00:06:21.467>some

108
00:06:24.028 --> 00:06:27.088
<00:06:24.028>open <00:06:24.261>source <00:06:24.494>license, <00:06:24.728>like <00:06:24.961>the <00:06:25.194>AGPL, <00:06:25.428>where

109
00:06:27.648 --> 00:06:30.608
<00:06:27.648>accessing <00:06:28.348>an <00:06:29.048>API,

110
00:06:31.988 --> 00:06:35.528
<00:06:31.988>making <00:06:32.104>an <00:06:32.221>API <00:06:32.338>public <00:06:32.454>and <00:06:32.571>people <00:06:32.688>connecting <00:06:32.804>to <00:06:32.921>it, <00:06:33.038>or <00:06:33.154>a <00:06:33.271>website, <00:06:33.388>an

111
00:06:35.548 --> 00:06:39.508
<00:06:35.548>application <00:06:35.703>that <00:06:35.859>people <00:06:36.014>can <00:06:36.170>access <00:06:36.325>through <00:06:36.481>the <00:06:36.636>network, <00:06:36.792>it's <00:06:36.948>considered

112
00:06:39.568 --> 00:06:40.487
<00:06:39.568>as <00:06:40.395>distribution.

113
00:06:41.748 --> 00:06:41.928
So

114
00:06:43.228 --> 00:06:47.048
<00:06:43.228>you <00:06:43.383>have <00:06:43.539>to <00:06:43.694>think <00:06:43.850>that <00:06:44.005>your <00:06:44.161>app <00:06:44.316>includes <00:06:44.472>direct <00:06:44.628>dependencies.

115
00:06:47.548 --> 00:06:50.428
<00:06:47.548>This <00:06:47.898>is <00:06:48.248>the <00:06:48.598>most <00:06:48.948>obvious,

116
00:06:51.368 --> 00:06:54.808
<00:06:51.368>be <00:06:51.523>it <00:06:51.679>in <00:06:51.834>an <00:06:51.990>image <00:06:52.145>file, <00:06:52.301>you <00:06:52.456>have <00:06:52.612>the <00:06:52.768>perm.xml.

117
00:06:55.188 --> 00:06:59.088
<00:06:55.188>If <00:06:55.281>you <00:06:55.374>use, <00:06:55.467>I <00:06:55.561>don't <00:06:55.654>know, <00:06:55.748>Composer <00:06:55.841>in <00:06:55.934>PHP <00:06:56.027>or <00:06:56.121>whatever, <00:06:56.214>you <00:06:56.308>have <00:06:56.401>your <00:06:56.494>direct <00:06:56.587>list

118
00:06:59.188 --> 00:07:02.468
<00:06:59.188>of <00:06:59.467>dependencies. <00:06:59.748>But <00:07:00.027>your <00:07:00.308>dependency <00:07:00.587>manager

119
00:07:03.048 --> 00:07:06.868
<00:07:03.048>will <00:07:03.281>handle <00:07:03.514>what <00:07:03.748>we <00:07:03.981>call <00:07:04.214>transitive <00:07:04.448>dependencies.

120
00:07:06.908 --> 00:07:10.208
<00:07:06.908>Dependencies <00:07:07.258>of <00:07:07.608>dependencies <00:07:07.958>of <00:07:08.308>dependencies.

121
00:07:10.228 --> 00:07:13.788
<00:07:10.228>Particularly <00:07:10.368>with <00:07:10.508>Docker, <00:07:10.648>it <00:07:10.788>can <00:07:10.928>be <00:07:11.068>very <00:07:11.208>difficult <00:07:11.348>to <00:07:11.488>find <00:07:11.628>the

122
00:07:13.848 --> 00:07:17.428
<00:07:13.848>entire <00:07:14.081>tree <00:07:14.314>of <00:07:14.548>dependencies. <00:07:14.781>And <00:07:15.014>so, <00:07:15.248>of

123
00:07:17.508 --> 00:07:20.768
<00:07:17.508>course, <00:07:17.707>the <00:07:17.907>more <00:07:18.108>you <00:07:18.308>add <00:07:18.508>dependencies, <00:07:18.707>the <00:07:18.907>more

124
00:07:22.068 --> 00:07:26.048
<00:07:22.068>libraries <00:07:22.207>and <00:07:22.347>dependency <00:07:22.488>stuff <00:07:22.628>and <00:07:22.768>software <00:07:22.907>you <00:07:23.048>had <00:07:23.188>with <00:07:23.328>different <00:07:23.467>licenses.

125
00:07:26.248 --> 00:07:28.288
<00:07:26.248>Okay? <00:07:26.481>And <00:07:26.714>it <00:07:26.948>can <00:07:27.181>accumulate <00:07:27.414>very <00:07:27.647>fast.

126
00:07:28.368 --> 00:07:28.488
So,

127
00:07:30.328 --> 00:07:32.788
<00:07:30.328>when <00:07:30.607>you <00:07:30.888>are <00:07:31.167>shipping <00:07:31.448>software, <00:07:31.727>basically,

128
00:07:33.668 --> 00:07:37.008
<00:07:33.668>you <00:07:34.018>are <00:07:34.368>transferring <00:07:34.718>the <00:07:35.068>legal

129
00:07:37.088 --> 00:07:40.988
<00:07:37.088>obligation <00:07:37.263>to <00:07:37.438>the <00:07:37.613>user. <00:07:37.788>It's <00:07:37.963>particularly <00:07:38.138>true <00:07:38.313>with <00:07:38.488>open

130
00:07:41.088 --> 00:07:44.748
<00:07:41.088>source, <00:07:41.438>where <00:07:41.788>most <00:07:42.138>licenses <00:07:42.488>actually

131
00:07:45.508 --> 00:07:49.268
<00:07:45.508>give <00:07:45.647>right <00:07:45.787>to-- <00:07:45.928>the <00:07:46.068>responsibilities <00:07:46.207>and <00:07:46.347>rights <00:07:46.488>are <00:07:46.628>given <00:07:46.768>to <00:07:46.907>users

132
00:07:50.228 --> 00:07:54.008
<00:07:50.228>to <00:07:50.428>protect <00:07:50.628>you <00:07:50.828>as <00:07:51.028>an <00:07:51.228>author. <00:07:51.428>But <00:07:51.628>yeah,

133
00:07:54.148 --> 00:07:57.508
<00:07:54.148>the <00:07:54.348>license <00:07:54.548>apply <00:07:54.748>at <00:07:54.948>distribution, <00:07:55.148>and <00:07:55.348>end <00:07:55.548>users

134
00:07:57.568 --> 00:08:01.448
<00:07:57.568>is <00:07:57.768>a <00:07:57.967>key <00:07:58.168>here. <00:07:58.368>So <00:07:58.568>you <00:07:58.768>don't <00:07:58.967>want

135
00:08:01.468 --> 00:08:04.868
<00:08:01.468>your <00:08:01.643>end <00:08:01.818>user <00:08:01.993>to <00:08:02.168>have <00:08:02.343>a <00:08:02.518>problem <00:08:02.693>with <00:08:02.868>legal

136
00:08:04.928 --> 00:08:05.908
<00:08:04.928>compliance. <00:08:05.810>Okay?

137
00:08:07.148 --> 00:08:10.908
<00:08:07.148>So <00:08:07.323>let's <00:08:07.498>take <00:08:07.673>this <00:08:07.848>very <00:08:08.023>example <00:08:08.198>of <00:08:08.373>containers, <00:08:08.548>and

138
00:08:11.048 --> 00:08:14.888
<00:08:11.048>here <00:08:11.223>I <00:08:11.398>have <00:08:11.573>two <00:08:11.748>use <00:08:11.923>cases <00:08:12.098>that <00:08:12.273>everybody <00:08:12.448>should

139
00:08:14.948 --> 00:08:15.268
know

140
00:08:16.628 --> 00:08:17.348
<00:08:16.628>with <00:08:17.276>modern

141
00:08:18.368 --> 00:08:19.988
<00:08:18.368>software <00:08:18.834>shipping <00:08:19.301>and <00:08:19.768>distribution.

142
00:08:20.848 --> 00:08:23.477
<00:08:20.848>So <00:08:21.081>first, <00:08:21.314>of <00:08:21.548>course, <00:08:21.781>is <00:08:22.014>packaged <00:08:22.248>software.

143
00:08:23.628 --> 00:08:27.248
<00:08:23.628>Let's <00:08:23.803>say <00:08:23.978>your <00:08:24.152>Docker <00:08:24.328>image. <00:08:24.503>So <00:08:24.678>it <00:08:24.853>contains <00:08:25.027>binaries.

144
00:08:27.748 --> 00:08:30.008
<00:08:27.748>It <00:08:28.027>doesn't <00:08:28.308>contain <00:08:28.587>source <00:08:28.868>code. <00:08:29.147>But

145
00:08:31.108 --> 00:08:34.928
<00:08:31.108>you <00:08:31.248>have <00:08:31.388>to <00:08:31.528>share <00:08:31.668>the <00:08:31.808>source <00:08:31.948>code <00:08:32.087>of <00:08:32.227>the <00:08:32.368>open <00:08:32.508>source

146
00:08:35.168 --> 00:08:37.848
<00:08:35.168>binaries <00:08:35.401>you <00:08:35.634>include <00:08:35.868>into <00:08:36.101>your <00:08:36.334>image. <00:08:36.568>Okay?

147
00:08:38.828 --> 00:08:41.338
<00:08:38.828>Then, <00:08:39.061>of <00:08:39.294>course, <00:08:39.528>the <00:08:39.761>licenses <00:08:39.994>of <00:08:40.227>all

148
00:08:42.528 --> 00:08:45.548
<00:08:42.528>your <00:08:42.683>main <00:08:42.839>software <00:08:42.994>and <00:08:43.150>all <00:08:43.305>the <00:08:43.461>dependencies <00:08:43.616>must <00:08:43.772>be <00:08:43.928>applied.

149
00:08:45.648 --> 00:08:49.028
<00:08:45.648>So <00:08:45.803>say <00:08:45.959>you <00:08:46.114>create <00:08:46.270>an <00:08:46.425>image <00:08:46.581>with <00:08:46.736>some <00:08:46.892>GPL <00:08:47.048>software.

150
00:08:49.708 --> 00:08:53.688
<00:08:49.708>By <00:08:49.863>the <00:08:50.019>GPL <00:08:50.174>license, <00:08:50.330>everything <00:08:50.485>is <00:08:50.641>GPL, <00:08:50.796>including, <00:08:50.952>in <00:08:51.108>theory,

151
00:08:54.468 --> 00:08:57.268
<00:08:54.468>your <00:08:54.668>proprietary <00:08:54.867>code, <00:08:55.068>which <00:08:55.267>can <00:08:55.468>be <00:08:55.668>a <00:08:55.867>problem.

152
00:08:57.608 --> 00:09:00.008
<00:08:57.608>There's <00:08:57.782>workaround, <00:08:57.958>but <00:08:58.132>you <00:08:58.308>have <00:08:58.483>to <00:08:58.657>think <00:08:58.833>about <00:08:59.007>that.

153
00:09:00.588 --> 00:09:01.848
<00:09:00.588>So <00:09:00.966>I <00:09:01.343>would <00:09:01.722>recommend

154
00:09:02.808 --> 00:09:03.388
building

155
00:09:05.188 --> 00:09:09.068
<00:09:05.188>Docker <00:09:05.363>image <00:09:05.538>for <00:09:05.713>internal <00:09:05.888>use <00:09:06.063>mostly, <00:09:06.238>because <00:09:06.413>it <00:09:06.588>makes

156
00:09:09.088 --> 00:09:11.708
<00:09:09.088>sense, <00:09:09.262>being <00:09:09.438>designed <00:09:09.613>for <00:09:09.788>that, <00:09:09.963>or <00:09:10.137>for <00:09:10.313>simple <00:09:10.488>image.

157
00:09:11.908 --> 00:09:12.697
<00:09:11.908>Say <00:09:12.263>you <00:09:12.618>have

158
00:09:13.768 --> 00:09:17.588
<00:09:13.768>one <00:09:13.943>application, <00:09:14.118>PostgreSQL, <00:09:14.293>a <00:09:14.468>Linux <00:09:14.643>distribution, <00:09:14.818>something <00:09:14.993>like <00:09:15.168>that.

159
00:09:17.728 --> 00:09:21.708
<00:09:17.728>One <00:09:17.855>component. <00:09:17.982>Okay? <00:09:18.109>We <00:09:18.237>can <00:09:18.364>have, <00:09:18.491>for <00:09:18.618>example, <00:09:18.746>an <00:09:18.873>Alfresco <00:09:19.000>container, <00:09:19.127>and

160
00:09:21.728 --> 00:09:25.268
<00:09:21.728>it's <00:09:21.855>just <00:09:21.982>Alfresco, <00:09:22.109>and <00:09:22.237>then <00:09:22.364>you <00:09:22.491>add <00:09:22.618>a <00:09:22.746>lot <00:09:22.873>of <00:09:23.000>things <00:09:23.127>around.

161
00:09:26.228 --> 00:09:30.068
<00:09:26.228>So <00:09:26.402>the <00:09:26.578>workaround <00:09:26.752>here, <00:09:26.928>and <00:09:27.103>something <00:09:27.277>that <00:09:27.453>is <00:09:27.627>always

162
00:09:30.168 --> 00:09:33.588
<00:09:30.168>legal <00:09:30.401>compliant, <00:09:30.634>is <00:09:30.868>to <00:09:31.101>use <00:09:31.334>build <00:09:31.568>instructions.

163
00:09:33.828 --> 00:09:37.608
<00:09:33.828>It's <00:09:33.928>the <00:09:34.028>same <00:09:34.127>with <00:09:34.228>Maven <00:09:34.328>or <00:09:34.428>Composer <00:09:34.528>or <00:09:34.627>whatever, <00:09:34.728>but <00:09:34.828>here <00:09:34.928>we <00:09:35.028>are <00:09:35.127>in <00:09:35.228>the

164
00:09:37.668 --> 00:09:39.348
<00:09:37.668>case <00:09:37.901>of <00:09:38.134>a <00:09:38.368>Docker <00:09:38.601>image <00:09:38.834>file. <00:09:39.068>Okay?

165
00:09:40.208 --> 00:09:43.448
<00:09:40.208>With <00:09:40.363>this <00:09:40.519>Docker <00:09:40.674>image <00:09:40.830>file, <00:09:40.985>there <00:09:41.141>is <00:09:41.296>no <00:09:41.452>software <00:09:41.608>included.

166
00:09:44.088 --> 00:09:44.308
So

167
00:09:45.528 --> 00:09:49.108
<00:09:45.528>it's <00:09:45.644>very <00:09:45.761>good <00:09:45.878>when <00:09:45.994>you <00:09:46.111>have <00:09:46.228>a <00:09:46.344>complex <00:09:46.461>image <00:09:46.578>with <00:09:46.694>a <00:09:46.811>lot <00:09:46.928>of

168
00:09:49.148 --> 00:09:51.608
<00:09:49.148>things, <00:09:49.381>and <00:09:49.614>you <00:09:49.848>need <00:09:50.081>to <00:09:50.314>build <00:09:50.548>that

169
00:09:52.428 --> 00:09:54.308
<00:09:52.428>in <00:09:52.894>the <00:09:53.361>customer <00:09:53.828>environment.

170
00:09:55.148 --> 00:09:59.088
<00:09:55.148>Here, <00:09:55.303>so <00:09:55.459>it <00:09:55.614>becomes <00:09:55.770>a <00:09:55.925>bit <00:09:56.081>more <00:09:56.236>difficult <00:09:56.392>if <00:09:56.548>you

171
00:09:59.128 --> 00:10:02.908
<00:09:59.128>rely <00:09:59.303>only <00:09:59.478>on <00:09:59.653>public <00:09:59.828>repositories, <00:10:00.003>of <00:10:00.178>course, <00:10:00.353>because <00:10:00.528>we

172
00:10:02.968 --> 00:10:03.708
<00:10:02.968>know <00:10:03.634>that

173
00:10:04.788 --> 00:10:08.488
<00:10:04.788>versions <00:10:04.943>and <00:10:05.099>stuff <00:10:05.254>can <00:10:05.410>disappear <00:10:05.565>and <00:10:05.721>be <00:10:05.876>replaced <00:10:06.032>by <00:10:06.188>new

174
00:10:08.508 --> 00:10:12.418
<00:10:08.508>versions. <00:10:08.648>But <00:10:08.788>I <00:10:08.928>will <00:10:09.068>explain <00:10:09.208>how <00:10:09.348>to <00:10:09.488>solve <00:10:09.628>that <00:10:09.768>in <00:10:09.908>the

175
00:10:12.468 --> 00:10:12.928
<00:10:12.468>next <00:10:12.882>slide.

176
00:10:14.268 --> 00:10:17.648
<00:10:14.268>The <00:10:14.408>one <00:10:14.548>thing <00:10:14.688>to <00:10:14.828>understand <00:10:14.968>is <00:10:15.108>that <00:10:15.248>in <00:10:15.388>term <00:10:15.528>of <00:10:15.668>legal

177
00:10:17.728 --> 00:10:21.268
<00:10:17.728>compliance, <00:10:17.928>the <00:10:18.127>risk <00:10:18.328>level <00:10:18.527>is <00:10:18.728>very <00:10:18.928>different <00:10:19.127>between

178
00:10:21.428 --> 00:10:25.387
<00:10:21.428>shipping <00:10:21.628>a <00:10:21.828>built <00:10:22.028>image, <00:10:22.228>so <00:10:22.428>binaries, <00:10:22.628>basically, <00:10:22.828>and

179
00:10:25.788 --> 00:10:29.548
<00:10:25.788>just <00:10:25.943>an <00:10:26.099>image <00:10:26.254>file <00:10:26.410>where <00:10:26.565>the <00:10:26.721>end <00:10:26.876>user <00:10:27.032>will <00:10:27.188>actually

180
00:10:29.588 --> 00:10:33.288
<00:10:29.588>download <00:10:29.681>build <00:10:29.774>and <00:10:29.867>stuff. <00:10:29.961>So <00:10:30.054>the <00:10:30.147>responsibility <00:10:30.241>is <00:10:30.334>on <00:10:30.428>the <00:10:30.521>end <00:10:30.614>user, <00:10:30.708>but <00:10:30.801>you <00:10:30.894>are <00:10:30.988>not

181
00:10:33.348 --> 00:10:37.268
<00:10:33.348>distributing <00:10:33.698>software. <00:10:34.048>So <00:10:34.397>no <00:10:34.747>license

182
00:10:37.288 --> 00:10:40.628
<00:10:37.288>applies <00:10:37.463>in <00:10:37.638>term <00:10:37.813>of <00:10:37.988>distribution <00:10:38.163>with <00:10:38.338>an <00:10:38.513>image <00:10:38.688>file.

183
00:10:40.748 --> 00:10:44.508
<00:10:40.748>So <00:10:40.864>most <00:10:40.981>of <00:10:41.098>the <00:10:41.214>time, <00:10:41.331>it's <00:10:41.448>the <00:10:41.564>best <00:10:41.681>way <00:10:41.798>to <00:10:41.914>ship <00:10:42.031>software <00:10:42.148>and

184
00:10:44.988 --> 00:10:48.528
<00:10:44.988>be <00:10:45.163>sure <00:10:45.338>that <00:10:45.513>it <00:10:45.688>will <00:10:45.863>be <00:10:46.038>legal <00:10:46.213>compliant <00:10:46.388>regarding

185
00:10:48.708 --> 00:10:50.068
<00:10:48.708>customers <00:10:49.319>and <00:10:49.932>users.

186
00:10:51.868 --> 00:10:55.668
<00:10:51.868>So <00:10:52.218>best <00:10:52.568>practices <00:10:52.918>around <00:10:53.268>container.

187
00:10:55.968 --> 00:10:59.688
<00:10:55.968>And <00:10:56.201>again, <00:10:56.434>it <00:10:56.668>works <00:10:56.901>with <00:10:57.134>firmwares, <00:10:57.367>application

188
00:11:00.648 --> 00:11:01.728
<00:11:00.648>packages, <00:11:00.972>and <00:11:01.295>so <00:11:01.620>on.

189
00:11:02.768 --> 00:11:06.308
<00:11:02.768>The <00:11:02.875>best <00:11:02.983>way <00:11:03.091>to <00:11:03.198>avoid <00:11:03.306>common <00:11:03.414>traps, <00:11:03.521>and <00:11:03.629>it <00:11:03.737>applies, <00:11:03.844>I <00:11:03.952>think, <00:11:04.060>to <00:11:04.168>both

190
00:11:06.548 --> 00:11:09.788
<00:11:06.548>image <00:11:06.723>and <00:11:06.898>image <00:11:07.073>file. <00:11:07.248>So <00:11:07.423>first, <00:11:07.598>when <00:11:07.773>you <00:11:07.948>are

191
00:11:09.868 --> 00:11:13.268
<00:11:09.868>writing <00:11:10.068>the <00:11:10.268>file, <00:11:10.468>the <00:11:10.668>instruction <00:11:10.868>file <00:11:11.068>to <00:11:11.268>build,

192
00:11:13.788 --> 00:11:16.648
<00:11:13.788>pin <00:11:14.138>versions <00:11:14.488>and <00:11:14.838>track <00:11:15.188>dependencies.

193
00:11:18.188 --> 00:11:21.588
<00:11:18.188>Be <00:11:18.343>very <00:11:18.499>serious <00:11:18.654>with <00:11:18.810>that. <00:11:18.965>Don't <00:11:19.121>just <00:11:19.276>write <00:11:19.432>something <00:11:19.588>with

194
00:11:22.428 --> 00:11:26.268
<00:11:22.428>include <00:11:22.661>Rocky <00:11:22.894>Linux <00:11:23.128>and <00:11:23.361>include <00:11:23.594>PostgreSQL. <00:11:23.828>No.

195
00:11:26.548 --> 00:11:27.408
<00:11:26.548>You <00:11:26.935>have <00:11:27.322>to

196
00:11:29.428 --> 00:11:33.228
<00:11:29.428>aim <00:11:29.661>for <00:11:29.894>something <00:11:30.128>that <00:11:30.361>is <00:11:30.594>reproducible <00:11:30.828>on

197
00:11:33.308 --> 00:11:36.348
<00:11:33.308>any <00:11:33.463>environment. <00:11:33.619>Okay? <00:11:33.774>So <00:11:33.930>you <00:11:34.085>have <00:11:34.241>to <00:11:34.396>be <00:11:34.552>very <00:11:34.708>serious.

198
00:11:36.628 --> 00:11:40.288
<00:11:36.628>I <00:11:36.735>remember <00:11:36.843>when <00:11:36.951>I <00:11:37.058>was <00:11:37.166>building <00:11:37.274>Java <00:11:37.381>in <00:11:37.489>the <00:11:37.597>past, <00:11:37.704>and <00:11:37.812>in <00:11:37.920>my <00:11:38.028>Maven

199
00:11:40.368 --> 00:11:43.728
<00:11:40.368>file, <00:11:40.648>it <00:11:40.928>would <00:11:41.208>always <00:11:41.488>have <00:11:41.768>everything.

200
00:11:44.008 --> 00:11:46.228
<00:11:44.008>The <00:11:44.241>most <00:11:44.474>detailed <00:11:44.708>stuff <00:11:44.941>you <00:11:45.174>can <00:11:45.408>add,

201
00:11:47.208 --> 00:11:50.208
<00:11:47.208>even <00:11:47.324>if <00:11:47.441>it's <00:11:47.558>a <00:11:47.674>private <00:11:47.791>repository, <00:11:47.908>you <00:11:48.024>add <00:11:48.141>the <00:11:48.257>link <00:11:48.374>and <00:11:48.491>so <00:11:48.608>on.

202
00:11:51.208 --> 00:11:52.008
<00:11:51.208>It's <00:11:51.568>better. <00:11:51.928>Okay?

203
00:11:52.868 --> 00:11:53.708
<00:11:52.868>Then <00:11:53.120>the <00:11:53.372>second <00:11:53.624>thing,

204
00:11:54.888 --> 00:11:58.668
<00:11:54.888>archive <00:11:55.043>the <00:11:55.199>sources. <00:11:55.354>So <00:11:55.510>you <00:11:55.665>don't <00:11:55.821>want <00:11:55.976>to <00:11:56.132>depend <00:11:56.288>on

205
00:11:58.688 --> 00:12:02.568
<00:11:58.688>public <00:11:58.804>repos <00:11:58.921>because <00:11:59.038>let's <00:11:59.154>say <00:11:59.271>in <00:11:59.388>one <00:11:59.504>year, <00:11:59.621>you <00:11:59.738>have <00:11:59.854>a <00:11:59.971>small <00:12:00.088>bug,

206
00:12:02.628 --> 00:12:06.268
<00:12:02.628>you <00:12:02.755>have <00:12:02.882>to <00:12:03.009>update <00:12:03.137>a <00:12:03.264>library, <00:12:03.391>or <00:12:03.518>you <00:12:03.646>have <00:12:03.773>to <00:12:03.900>replace <00:12:04.028>a

207
00:12:06.308 --> 00:12:10.148
<00:12:06.308>library <00:12:06.508>because <00:12:06.708>someone <00:12:06.908>is <00:12:07.108>pointing <00:12:07.308>a <00:12:07.508>problem <00:12:07.708>with--

208
00:12:10.428 --> 00:12:13.528
<00:12:10.428>technical <00:12:10.603>problem, <00:12:10.778>but <00:12:10.953>also <00:12:11.128>eventually <00:12:11.303>a <00:12:11.478>legal <00:12:11.653>compliance <00:12:11.828>problem.

209
00:12:14.298 --> 00:12:18.156
<00:12:14.298>And <00:12:14.453>Let's <00:12:14.609>say <00:12:14.764>for <00:12:14.920>some <00:12:15.075>reason <00:12:15.231>it <00:12:15.386>disappeared, <00:12:15.542>then <00:12:15.698>you

210
00:12:18.196 --> 00:12:22.156
<00:12:18.196>cannot <00:12:18.303>build <00:12:18.411>again <00:12:18.519>the <00:12:18.626>same <00:12:18.734>stuff <00:12:18.842>and <00:12:18.949>just <00:12:19.057>replace <00:12:19.165>one <00:12:19.272>component <00:12:19.380>and <00:12:19.488>write <00:12:19.596>a

211
00:12:22.196 --> 00:12:26.056
<00:12:22.196>bit <00:12:22.323>of <00:12:22.450>code. <00:12:22.577>So <00:12:22.705>what <00:12:22.832>you <00:12:22.959>want <00:12:23.086>is <00:12:23.214>to <00:12:23.341>archive <00:12:23.468>everything <00:12:23.596>into

212
00:12:26.276 --> 00:12:29.896
<00:12:26.276>private <00:12:26.431>repositories. <00:12:26.587>You <00:12:26.742>can <00:12:26.898>use <00:12:27.053>K, <00:12:27.209>GitHub <00:12:27.364>is <00:12:27.520>providing <00:12:27.675>solutions.

213
00:12:30.296 --> 00:12:34.076
<00:12:30.296>There's <00:12:30.496>a <00:12:30.696>lot <00:12:30.896>of <00:12:31.096>alternatives <00:12:31.296>and <00:12:31.496>strong <00:12:31.696>public

214
00:12:34.556 --> 00:12:35.996
<00:12:34.556>repos <00:12:34.880>like <00:12:35.204>the <00:12:35.528>Docker <00:12:35.852>Hub,

215
00:12:36.836 --> 00:12:40.776
<00:12:36.836>where <00:12:37.011>instead <00:12:37.186>of-- <00:12:37.361>And <00:12:37.536>then <00:12:37.711>you <00:12:37.886>write <00:12:38.061>your <00:12:38.236>building

216
00:12:40.836 --> 00:12:44.556
<00:12:40.836>instruction <00:12:41.036>based <00:12:41.236>on <00:12:41.436>this <00:12:41.636>repository <00:12:41.836>instead <00:12:42.036>of <00:12:42.236>relying

217
00:12:44.576 --> 00:12:47.825
<00:12:44.576>public. <00:12:44.731>Meaning <00:12:44.887>that <00:12:45.042>when <00:12:45.198>you <00:12:45.353>are <00:12:45.509>sending <00:12:45.664>an <00:12:45.820>image <00:12:45.976>files,

218
00:12:48.476 --> 00:12:52.216
<00:12:48.476>you <00:12:48.616>are <00:12:48.756>always <00:12:48.896>building <00:12:49.036>with <00:12:49.176>the <00:12:49.316>same <00:12:49.456>stuff, <00:12:49.596>that <00:12:49.736>is <00:12:49.876>everything.

219
00:12:52.716 --> 00:12:56.536
<00:12:52.716>Everything <00:12:52.823>is <00:12:52.931>in <00:12:53.039>the <00:12:53.146>same <00:12:53.254>repo, <00:12:53.362>and <00:12:53.469>so <00:12:53.577>each <00:12:53.685>time <00:12:53.792>you <00:12:53.900>build, <00:12:54.008>you <00:12:54.116>have

220
00:12:56.556 --> 00:12:58.576
<00:12:56.556>the <00:12:57.022>exact <00:12:57.489>same <00:12:57.956>result.

221
00:12:59.716 --> 00:13:03.256
<00:12:59.716>Then, <00:12:59.949>to <00:13:00.182>help <00:13:00.416>people <00:13:00.649>that <00:13:00.882>are <00:13:01.116>not

222
00:13:03.316 --> 00:13:06.916
<00:13:03.316>developer, <00:13:03.596>like <00:13:03.876>me <00:13:04.156>or <00:13:04.436>like <00:13:04.716>your

223
00:13:06.976 --> 00:13:10.776
<00:13:06.976>legal <00:13:07.176>team, <00:13:07.376>or <00:13:07.576>your <00:13:07.776>customer <00:13:07.976>legal <00:13:08.176>team, <00:13:08.376>or

224
00:13:10.956 --> 00:13:14.776
<00:13:10.956>if <00:13:11.056>one <00:13:11.156>of <00:13:11.256>your <00:13:11.356>contact <00:13:11.456>has <00:13:11.556>an <00:13:11.656>open <00:13:11.756>source <00:13:11.856>program <00:13:11.956>office <00:13:12.056>that <00:13:12.156>will <00:13:12.256>be <00:13:12.356>in

225
00:13:14.816 --> 00:13:18.696
<00:13:14.816>charge <00:13:14.956>of <00:13:15.096>that, <00:13:15.236>they <00:13:15.376>need <00:13:15.516>to <00:13:15.656>have <00:13:15.796>a <00:13:15.936>list <00:13:16.076>of <00:13:16.216>the

226
00:13:18.736 --> 00:13:22.196
<00:13:18.736>dependencies <00:13:18.911>and <00:13:19.086>all <00:13:19.261>the <00:13:19.436>dependencies <00:13:19.611>of <00:13:19.786>dependencies <00:13:19.961>of <00:13:20.136>dependencies.

227
00:13:22.226 --> 00:13:26.116
<00:13:22.226>So <00:13:22.426>generate <00:13:22.626>a <00:13:22.826>software <00:13:23.026>bill <00:13:23.226>of <00:13:23.426>material <00:13:23.626>and

228
00:13:26.236 --> 00:13:29.916
<00:13:26.236>put <00:13:26.411>that <00:13:26.586>somewhere <00:13:26.761>in <00:13:26.936>the <00:13:27.111>documentation, <00:13:27.286>on <00:13:27.461>your <00:13:27.636>GitHub

229
00:13:29.956 --> 00:13:33.676
<00:13:29.956>repository, <00:13:30.111>on <00:13:30.267>your <00:13:30.422>website. <00:13:30.578>You <00:13:30.733>can <00:13:30.889>do, <00:13:31.044>for <00:13:31.200>example, <00:13:31.356>like

230
00:13:33.736 --> 00:13:34.076
Apple,

231
00:13:34.906 --> 00:13:37.456
<00:13:34.906>they <00:13:35.106>have <00:13:35.305>a <00:13:35.506>wonderful <00:13:35.705>website, <00:13:35.906>I <00:13:36.106>like <00:13:36.305>it.

232
00:13:37.496 --> 00:13:41.116
<00:13:37.496>It's <00:13:37.729>called <00:13:37.962>opensource.apple.com, <00:13:38.196>where <00:13:38.429>everything <00:13:38.662>is <00:13:38.896>available,

233
00:13:41.256 --> 00:13:43.376
<00:13:41.256>sources, <00:13:41.956>repositories, <00:13:42.656>whatever.

234
00:13:43.856 --> 00:13:47.596
<00:13:43.856>And <00:13:44.011>so <00:13:44.167>it <00:13:44.322>helps <00:13:44.478>people, <00:13:44.633>and <00:13:44.789>particularly <00:13:44.944>on <00:13:45.100>the <00:13:45.256>enterprise

235
00:13:47.656 --> 00:13:51.616
<00:13:47.656>level, <00:13:47.889>to <00:13:48.122>check <00:13:48.356>that <00:13:48.589>you're <00:13:48.822>good, <00:13:49.055>that

236
00:13:51.696 --> 00:13:53.676
<00:13:51.696>everything <00:13:51.896>is <00:13:52.096>fine, <00:13:52.296>and <00:13:52.496>that <00:13:52.696>they <00:13:52.896>can <00:13:53.096>adopt.

237
00:13:53.826 --> 00:13:57.556
<00:13:53.826>Because <00:13:54.026>yeah, <00:13:54.226>at <00:13:54.426>enterprise <00:13:54.626>level, <00:13:54.826>we <00:13:55.026>check <00:13:55.226>the

238
00:13:57.596 --> 00:14:00.436
<00:13:57.596>legal <00:13:57.771>risk <00:13:57.946>first, <00:13:58.121>and <00:13:58.296>then <00:13:58.471>we <00:13:58.646>check <00:13:58.821>the <00:13:58.996>technology.

239
00:14:00.996 --> 00:14:04.976
<00:14:00.996>If <00:14:01.151>at <00:14:01.307>the <00:14:01.462>legal <00:14:01.618>time <00:14:01.773>they <00:14:01.929>say <00:14:02.084>no, <00:14:02.240>then <00:14:02.396>there's

240
00:14:04.996 --> 00:14:08.496
<00:14:04.996>no <00:14:05.112>technical <00:14:05.229>evaluation <00:14:05.346>at <00:14:05.462>all <00:14:05.579>and <00:14:05.696>it's <00:14:05.812>blacklisted. <00:14:05.929>So <00:14:06.045>you <00:14:06.162>don't <00:14:06.279>want <00:14:06.396>that.

241
00:14:09.816 --> 00:14:10.776
<00:14:09.816>Make <00:14:10.248>it <00:14:10.680>easy

242
00:14:11.696 --> 00:14:12.856
<00:14:11.696>and <00:14:11.957>not <00:14:12.218>just <00:14:12.479>say, <00:14:12.740>"Hey,

243
00:14:13.796 --> 00:14:17.656
<00:14:13.796>the <00:14:13.936>image <00:14:14.076>file <00:14:14.216>is <00:14:14.356>here," <00:14:14.496>or <00:14:14.636>"The <00:14:14.776>pom.xml <00:14:14.916>is <00:14:15.056>here," <00:14:15.196>or

244
00:14:17.696 --> 00:14:21.416
<00:14:17.696>whatever. <00:14:17.896>No, <00:14:18.096>you <00:14:18.296>make <00:14:18.496>it <00:14:18.696>easy, <00:14:18.896>human <00:14:19.096>readable

245
00:14:22.336 --> 00:14:26.076
<00:14:22.336>for <00:14:22.511>someone <00:14:22.686>who <00:14:22.861>will <00:14:23.036>not <00:14:23.211>write <00:14:23.386>some <00:14:23.561>command <00:14:23.736>lines

246
00:14:26.216 --> 00:14:28.456
<00:14:26.216>or <00:14:26.416>scripts <00:14:26.616>or <00:14:26.816>whatever <00:14:27.016>to <00:14:27.216>generate <00:14:27.416>the <00:14:27.616>list.

247
00:14:28.636 --> 00:14:30.296
<00:14:28.636>An <00:14:28.915>Excel <00:14:29.195>file <00:14:29.476>is <00:14:29.756>a <00:14:30.036>solution,

248
00:14:31.256 --> 00:14:33.176
<00:14:31.256>but <00:14:31.489>you <00:14:31.722>can <00:14:31.956>write <00:14:32.189>a <00:14:32.422>markdown, <00:14:32.656>whatever.

249
00:14:33.276 --> 00:14:36.736
<00:14:33.276>And <00:14:33.450>there's <00:14:33.626>tools <00:14:33.800>to <00:14:33.976>automate <00:14:34.151>that, <00:14:34.325>by <00:14:34.501>the <00:14:34.675>way.

250
00:14:36.896 --> 00:14:40.256
<00:14:36.896>You <00:14:37.096>can <00:14:37.295>script <00:14:37.496>that <00:14:37.695>during <00:14:37.896>your <00:14:38.096>continuous <00:14:38.295>integration.

251
00:14:40.356 --> 00:14:41.356
<00:14:40.356>So <00:14:40.581>that's <00:14:40.806>not <00:14:41.031>an <00:14:41.256>issue.

252
00:14:42.476 --> 00:14:46.236
<00:14:42.476>Once <00:14:42.631>you <00:14:42.787>have <00:14:42.942>the <00:14:43.098>software <00:14:43.253>bill <00:14:43.409>of <00:14:43.564>material, <00:14:43.720>analyze <00:14:43.876>licenses.

253
00:14:46.596 --> 00:14:47.376
<00:14:46.596>Check <00:14:47.298>that

254
00:14:48.696 --> 00:14:52.456
<00:14:48.696>it's <00:14:48.812>okay <00:14:48.929>that <00:14:49.046>you <00:14:49.162>don't <00:14:49.279>have <00:14:49.396>bad <00:14:49.512>surprises <00:14:49.629>with <00:14:49.746>the <00:14:49.862>dependency <00:14:49.979>of <00:14:50.096>a

255
00:14:52.516 --> 00:14:55.316
<00:14:52.516>dependency <00:14:52.749>in <00:14:52.982>some <00:14:53.216>sublayers <00:14:53.449>when <00:14:53.682>you <00:14:53.915>build.

256
00:14:56.696 --> 00:14:59.696
<00:14:56.696>And <00:14:56.836>in <00:14:56.976>case <00:14:57.116>you <00:14:57.256>have <00:14:57.396>a <00:14:57.536>bad <00:14:57.676>surprise, <00:14:57.816>find <00:14:57.956>a <00:14:58.096>way.

257
00:14:59.936 --> 00:15:02.696
<00:14:59.936>You <00:15:00.063>will <00:15:00.190>have <00:15:00.317>to <00:15:00.445>find <00:15:00.572>a <00:15:00.699>work <00:15:00.826>around <00:15:00.954>at <00:15:01.081>one <00:15:01.208>point. <00:15:01.336>Replace.

258
00:15:03.356 --> 00:15:06.736
<00:15:03.356>Sometimes <00:15:03.531>a <00:15:03.706>new <00:15:03.881>version <00:15:04.056>will <00:15:04.231>have <00:15:04.406>the <00:15:04.581>correct <00:15:04.756>license.

259
00:15:06.876 --> 00:15:10.536
<00:15:06.876>It <00:15:07.016>happens <00:15:07.156>sometimes <00:15:07.295>that <00:15:07.435>the <00:15:07.576>first <00:15:07.716>version <00:15:07.856>could <00:15:07.996>be <00:15:08.136>in <00:15:08.276>GPL

260
00:15:10.616 --> 00:15:12.876
<00:15:10.616>or, <00:15:10.849>I <00:15:11.082>don't <00:15:11.316>know, <00:15:11.549>MPL <00:15:11.782>or <00:15:12.016>something.

261
00:15:13.196 --> 00:15:15.856
<00:15:13.196>And <00:15:13.371>then <00:15:13.546>at <00:15:13.721>some <00:15:13.896>point, <00:15:14.071>the <00:15:14.246>authors <00:15:14.421>realize <00:15:14.596>that

262
00:15:16.916 --> 00:15:20.736
<00:15:16.916>to <00:15:17.116>ease <00:15:17.316>adoption, <00:15:17.516>they <00:15:17.716>change <00:15:17.916>the <00:15:18.116>new <00:15:18.316>version

263
00:15:20.776 --> 00:15:23.356
<00:15:20.776>into <00:15:21.009>MIT, <00:15:21.242>which <00:15:21.476>is <00:15:21.709>way <00:15:21.942>more <00:15:22.175>permissive.

264
00:15:23.956 --> 00:15:27.796
<00:15:23.956>So <00:15:24.043>you <00:15:24.131>want <00:15:24.218>to <00:15:24.306>have <00:15:24.393>a <00:15:24.481>look <00:15:24.568>at <00:15:24.656>that, <00:15:24.743>and <00:15:24.831>you <00:15:24.918>can <00:15:25.006>use <00:15:25.093>people <00:15:25.181>like <00:15:25.268>me <00:15:25.356>to

265
00:15:27.856 --> 00:15:31.276
<00:15:27.856>have <00:15:28.011>a <00:15:28.167>look. <00:15:28.322>There <00:15:28.478>are <00:15:28.633>some <00:15:28.789>experts <00:15:28.944>you <00:15:29.100>can <00:15:29.256>hire.

266
00:15:31.716 --> 00:15:35.576
<00:15:31.716>And <00:15:31.843>of <00:15:31.970>course, <00:15:32.097>most <00:15:32.225>of <00:15:32.352>legal <00:15:32.479>team <00:15:32.606>should <00:15:32.734>have <00:15:32.861>someone <00:15:32.988>with <00:15:33.116>a

267
00:15:35.596 --> 00:15:39.016
<00:15:35.596>bit <00:15:35.829>of <00:15:36.062>copyright <00:15:36.296>and <00:15:36.529>intellectual <00:15:36.762>property <00:15:36.996>knowledge

268
00:15:39.996 --> 00:15:43.856
<00:15:39.996>just <00:15:40.103>to <00:15:40.211>read <00:15:40.319>that <00:15:40.426>anyway. <00:15:40.534>So <00:15:40.642>even <00:15:40.749>if <00:15:40.857>they <00:15:40.965>are <00:15:41.072>not <00:15:41.180>experts <00:15:41.288>of <00:15:41.396>that,

269
00:15:45.296 --> 00:15:48.496
<00:15:45.296>they <00:15:45.396>will <00:15:45.496>have <00:15:45.596>access <00:15:45.696>to <00:15:45.796>resources <00:15:45.896>that <00:15:45.996>will <00:15:46.096>be <00:15:46.196>able <00:15:46.296>to <00:15:46.396>help <00:15:46.496>you <00:15:46.596>to <00:15:46.696>understand.

270
00:15:48.836 --> 00:15:50.676
<00:15:48.836>But <00:15:49.116>in <00:15:49.396>general, <00:15:49.676>yeah, <00:15:49.956>don't <00:15:50.236>forget.

271
00:15:50.736 --> 00:15:54.656
<00:15:50.736>And <00:15:50.836>it <00:15:50.936>doesn't <00:15:51.036>need <00:15:51.136>to <00:15:51.236>take <00:15:51.336>a <00:15:51.436>lot <00:15:51.536>of <00:15:51.636>time, <00:15:51.736>it's <00:15:51.836>just <00:15:51.936>you <00:15:52.036>create <00:15:52.136>an

272
00:15:54.696 --> 00:15:57.216
<00:15:54.696>automation <00:15:54.976>to <00:15:55.256>build <00:15:55.536>that, <00:15:55.816>a <00:15:56.096>warning.

273
00:15:57.256 --> 00:16:00.956
<00:15:57.256>When <00:15:57.396>you <00:15:57.536>have <00:15:57.675>the <00:15:57.815>list <00:15:57.956>of <00:15:58.096>license <00:15:58.236>allowed <00:15:58.376>or <00:15:58.516>not <00:15:58.656>allowed,

274
00:16:01.536 --> 00:16:05.496
<00:16:01.536>you <00:16:01.691>just <00:16:01.847>write <00:16:02.002>a <00:16:02.158>warning <00:16:02.313>into <00:16:02.469>your <00:16:02.624>test, <00:16:02.780>and <00:16:02.935>you're

275
00:16:05.536 --> 00:16:09.236
<00:16:05.536>done. <00:16:05.736>So <00:16:05.935>last <00:16:06.136>thing, <00:16:06.335>be <00:16:06.536>careful <00:16:06.736>when <00:16:06.935>distributing

276
00:16:09.296 --> 00:16:11.096
<00:16:09.296>images <00:16:09.576>like <00:16:09.856>on <00:16:10.136>the <00:16:10.416>previous <00:16:10.696>slide.

277
00:16:11.916 --> 00:16:15.316
<00:16:11.916>When <00:16:12.056>not <00:16:12.196>sure, <00:16:12.336>when <00:16:12.476>it's <00:16:12.616>complicated, <00:16:12.756>when <00:16:12.896>you <00:16:13.036>have <00:16:13.176>a <00:16:13.316>potential

278
00:16:15.696 --> 00:16:19.516
<00:16:15.696>legal <00:16:15.823>compliance <00:16:15.950>risk, <00:16:16.077>use <00:16:16.205>image <00:16:16.332>files <00:16:16.459>and <00:16:16.586>build <00:16:16.714>directly <00:16:16.841>on <00:16:16.968>the <00:16:17.096>customer

279
00:16:19.596 --> 00:16:22.596
<00:16:19.596>side, <00:16:19.796>user <00:16:19.996>side. <00:16:20.196>The <00:16:20.396>key <00:16:20.596>here, <00:16:20.796>yes, <00:16:20.996>it's

280
00:16:22.776 --> 00:16:24.276
reproducibility.

281
00:16:27.316 --> 00:16:31.216
<00:16:27.316>So <00:16:27.491>I <00:16:27.666>spoke <00:16:27.841>about <00:16:28.016>license. <00:16:28.191>I <00:16:28.366>will <00:16:28.541>not <00:16:28.716>spend

282
00:16:31.256 --> 00:16:33.475
<00:16:31.256>too <00:16:31.456>much <00:16:31.656>time <00:16:31.856>on <00:16:32.055>that. <00:16:32.256>It's <00:16:32.456>something <00:16:32.656>you

283
00:16:34.676 --> 00:16:36.636
<00:16:34.676>need <00:16:34.909>to <00:16:35.142>have <00:16:35.376>the <00:16:35.609>vocabulary <00:16:35.842>in <00:16:36.076>mind.

284
00:16:37.836 --> 00:16:41.316
<00:16:37.836>I <00:16:37.963>think <00:16:38.090>it's <00:16:38.217>quite <00:16:38.345>easy <00:16:38.472>the <00:16:38.599>way <00:16:38.726>I <00:16:38.854>share <00:16:38.981>it <00:16:39.108>on <00:16:39.236>the

285
00:16:41.496 --> 00:16:44.776
<00:16:41.496>screen. <00:16:41.776>Basically, <00:16:42.055>you <00:16:42.336>have <00:16:42.616>three <00:16:42.896>families

286
00:16:46.656 --> 00:16:50.276
<00:16:46.656>of <00:16:46.856>open <00:16:47.055>source <00:16:47.256>license. <00:16:47.455>First, <00:16:47.656>you <00:16:47.856>have <00:16:48.055>permissive.

287
00:16:50.816 --> 00:16:54.646
<00:16:50.816>So <00:16:51.049>typically <00:16:51.282>MIT, <00:16:51.516>APach <00:16:51.749>2.0. <00:16:51.982>You <00:16:52.216>have,

288
00:16:54.816 --> 00:16:56.456
<00:16:54.816>I <00:16:55.166>would <00:16:55.516>say, <00:16:55.866>minimal <00:16:56.216>obligations.

289
00:16:57.176 --> 00:17:00.936
<00:16:57.176>What <00:16:57.292>it <00:16:57.409>means <00:16:57.526>is <00:16:57.642>that <00:16:57.759>most <00:16:57.876>of <00:16:57.992>the <00:16:58.109>time, <00:16:58.226>the <00:16:58.342>obligation <00:16:58.459>you <00:16:58.576>have

290
00:17:01.036 --> 00:17:04.796
<00:17:01.036>is <00:17:01.191>to <00:17:01.347>tell, <00:17:01.502>"I'm <00:17:01.658>using <00:17:01.813>that." <00:17:01.969>As <00:17:02.124>an <00:17:02.280>example, <00:17:02.435>you

291
00:17:04.876 --> 00:17:08.366
<00:17:04.876>can <00:17:05.225>open <00:17:05.576>an <00:17:05.925>Android <00:17:06.276>phone

292
00:17:08.536 --> 00:17:08.906
and

293
00:17:09.777 --> 00:17:12.536
<00:17:09.777>look <00:17:09.977>at <00:17:10.177>the <00:17:10.377>third-party <00:17:10.577>software <00:17:10.777>in <00:17:10.977>the <00:17:11.177>parameters.

294
00:17:12.556 --> 00:17:16.536
<00:17:12.556>But <00:17:12.672>it <00:17:12.789>works <00:17:12.906>with, <00:17:13.022>say, <00:17:13.139>Spotify. <00:17:13.256>You <00:17:13.372>go <00:17:13.489>in <00:17:13.606>the <00:17:13.722>parameters, <00:17:13.839>you <00:17:13.956>scroll

295
00:17:16.596 --> 00:17:20.267
<00:17:16.596>down, <00:17:16.796>and <00:17:16.996>you <00:17:17.195>will <00:17:17.396>see <00:17:17.596>a <00:17:17.796>third-party <00:17:17.996>software.

296
00:17:20.386 --> 00:17:22.136
<00:17:20.386>And <00:17:20.526>you <00:17:20.665>click <00:17:20.806>on <00:17:20.945>it, <00:17:21.086>and <00:17:21.225>you <00:17:21.366>have <00:17:21.505>the <00:17:21.646>entire <00:17:21.786>list.

297
00:17:22.576 --> 00:17:24.517
<00:17:22.576>So <00:17:22.809>you <00:17:23.042>don't <00:17:23.276>have <00:17:23.509>to <00:17:23.742>include <00:17:23.976>that,

298
00:17:25.596 --> 00:17:27.517
<00:17:25.596>I <00:17:25.796>would <00:17:25.996>say, <00:17:26.195>like <00:17:26.396>Spotify <00:17:26.596>and <00:17:26.796>so <00:17:26.996>on.

299
00:17:27.656 --> 00:17:30.196
<00:17:27.656>It's <00:17:27.796>a <00:17:27.935>good <00:17:28.076>practice <00:17:28.215>to <00:17:28.356>do <00:17:28.495>it <00:17:28.636>anyway <00:17:28.775>for <00:17:28.916>end <00:17:29.056>users.

300
00:17:30.576 --> 00:17:34.516
<00:17:30.576>But <00:17:30.703>you <00:17:30.830>have <00:17:30.957>to <00:17:31.085>provide <00:17:31.212>that <00:17:31.339>through <00:17:31.466>the <00:17:31.594>software <00:17:31.721>bill <00:17:31.848>of <00:17:31.976>materials

301
00:17:34.676 --> 00:17:38.416
<00:17:34.676>as <00:17:34.851>BOM, <00:17:35.025>and <00:17:35.201>it <00:17:35.376>should <00:17:35.551>be <00:17:35.726>available <00:17:35.900>to <00:17:36.076>your

302
00:17:38.516 --> 00:17:40.436
<00:17:38.516>end <00:17:38.796>users <00:17:39.076>and <00:17:39.356>your <00:17:39.636>customers. <00:17:39.916>Okay?

303
00:17:40.776 --> 00:17:44.236
<00:17:40.776>That's, <00:17:40.903>I <00:17:41.030>would <00:17:41.157>say, <00:17:41.285>the <00:17:41.412>minimal <00:17:41.539>obligation <00:17:41.666>from <00:17:41.794>this <00:17:41.921>kind <00:17:42.048>of <00:17:42.176>license.

304
00:17:45.056 --> 00:17:47.856
<00:17:45.056>Then <00:17:45.256>you <00:17:45.456>have <00:17:45.656>what <00:17:45.856>we <00:17:46.056>call <00:17:46.256>weak <00:17:46.456>copyleft.

305
00:17:48.796 --> 00:17:52.656
<00:17:48.796>Typically, <00:17:48.971>the <00:17:49.146>LGPL, <00:17:49.321>so <00:17:49.496>lesser <00:17:49.671>GPL, <00:17:49.846>or <00:17:50.021>the <00:17:50.196>MPL,

306
00:17:52.716 --> 00:17:56.656
<00:17:52.716>which <00:17:52.916>is <00:17:53.116>Mozilla's <00:17:53.315>license. <00:17:53.515>And <00:17:53.716>here <00:17:53.916>you <00:17:54.116>have

307
00:17:56.716 --> 00:18:00.036
<00:17:56.716>what <00:17:56.890>I <00:17:57.065>would <00:17:57.241>say <00:17:57.416>a <00:17:57.591>limited <00:17:57.765>source <00:17:57.940>code <00:17:58.116>share

308
00:18:00.076 --> 00:18:04.036
<00:18:00.076>obligation, <00:18:00.276>where <00:18:00.476>if <00:18:00.676>you <00:18:00.876>embed <00:18:01.076>some <00:18:01.276>LGPL <00:18:01.476>into

309
00:18:04.076 --> 00:18:07.856
<00:18:04.076>something <00:18:04.231>with <00:18:04.387>proprietary <00:18:04.542>code <00:18:04.698>and <00:18:04.853>so <00:18:05.009>on, <00:18:05.164>it's <00:18:05.320>possible <00:18:05.476>you

310
00:18:07.896 --> 00:18:11.836
<00:18:07.896>will <00:18:08.051>only <00:18:08.207>have <00:18:08.362>to <00:18:08.518>share <00:18:08.673>the <00:18:08.829>source <00:18:08.984>of <00:18:09.140>the <00:18:09.296>software

311
00:18:11.856 --> 00:18:15.256
<00:18:11.856>with <00:18:12.011>this <00:18:12.167>kind <00:18:12.322>of <00:18:12.478>license. <00:18:12.633>Okay? <00:18:12.789>So <00:18:12.944>say <00:18:13.100>you <00:18:13.256>include

312
00:18:15.636 --> 00:18:19.056
<00:18:15.636>Alfresco. <00:18:15.791>It's <00:18:15.947>in <00:18:16.102>the <00:18:16.258>community <00:18:16.413>edition <00:18:16.569>of <00:18:16.724>Alfresco, <00:18:16.880>is <00:18:17.036>in

313
00:18:19.136 --> 00:18:22.896
<00:18:19.136>LGPL. <00:18:19.311>You <00:18:19.485>modify <00:18:19.661>something, <00:18:19.836>you <00:18:20.011>build <00:18:20.186>it <00:18:20.360>into <00:18:20.536>another

314
00:18:22.976 --> 00:18:26.376
<00:18:22.976>solution <00:18:23.209>where <00:18:23.442>Alfresco <00:18:23.676>handle, <00:18:23.909>for <00:18:24.142>example, <00:18:24.376>document

315
00:18:26.876 --> 00:18:27.856
<00:18:26.876>and <00:18:27.317>content <00:18:27.758>storage.

316
00:18:29.356 --> 00:18:33.216
<00:18:29.356>Then <00:18:29.463>you <00:18:29.571>have <00:18:29.679>to <00:18:29.786>tell <00:18:29.894>that <00:18:30.002>you <00:18:30.109>use <00:18:30.217>Alfresco, <00:18:30.325>and <00:18:30.432>you <00:18:30.540>have <00:18:30.648>to <00:18:30.756>share

317
00:18:33.336 --> 00:18:35.936
<00:18:33.336>your <00:18:33.569>modification <00:18:33.802>or <00:18:34.036>the <00:18:34.269>general <00:18:34.502>source <00:18:34.736>code.

318
00:18:35.956 --> 00:18:39.776
<00:18:35.956>And <00:18:36.063>then <00:18:36.171>you <00:18:36.279>have <00:18:36.386>what <00:18:36.494>we <00:18:36.602>call <00:18:36.709>strong <00:18:36.817>copyleft, <00:18:36.925>typically <00:18:37.032>the <00:18:37.140>GPL <00:18:37.248>or <00:18:37.356>the

319
00:18:39.836 --> 00:18:43.322
<00:18:39.836>AGPL. <00:18:40.011>You <00:18:40.186>have <00:18:40.361>to <00:18:40.536>share <00:18:40.711>everything, <00:18:40.886>but <00:18:41.061>With <00:18:41.236>those

320
00:18:43.392 --> 00:18:45.652
<00:18:43.392>licenses, <00:18:43.672>it's <00:18:43.952>a <00:18:44.232>bit <00:18:44.512>tricky <00:18:44.792>because

321
00:18:46.592 --> 00:18:50.502
<00:18:46.592>by <00:18:46.719>the <00:18:46.846>license, <00:18:46.973>if <00:18:47.101>you <00:18:47.228>aggregate <00:18:47.355>a <00:18:47.482>lot <00:18:47.610>of <00:18:47.737>software <00:18:47.864>and <00:18:47.992>one

322
00:18:50.552 --> 00:18:54.132
<00:18:50.552>of <00:18:50.707>the <00:18:50.863>software <00:18:51.018>in <00:18:51.174>the <00:18:51.329>GPL, <00:18:51.485>everything <00:18:51.640>becomes <00:18:51.796>GPL, <00:18:51.952>including

323
00:18:54.492 --> 00:18:58.192
<00:18:54.492>potential <00:18:54.632>proprietary <00:18:54.772>source <00:18:54.912>code, <00:18:55.052>which <00:18:55.192>can <00:18:55.331>be <00:18:55.472>a <00:18:55.611>problem <00:18:55.752>for <00:18:55.892>your

324
00:18:58.232 --> 00:19:02.072
<00:18:58.232>company <00:18:58.372>and <00:18:58.512>your <00:18:58.652>product. <00:18:58.792>You <00:18:58.932>don't <00:18:59.072>want <00:18:59.212>maybe <00:18:59.351>to <00:18:59.492>share <00:18:59.632>your

325
00:19:02.112 --> 00:19:04.412
<00:19:02.112>secrets <00:19:02.462>in <00:19:02.812>your <00:19:03.162>proprietary <00:19:03.512>code.

326
00:19:05.772 --> 00:19:09.472
<00:19:05.772>And <00:19:05.947>with <00:19:06.121>AGPL, <00:19:06.297>a <00:19:06.472>license <00:19:06.647>that <00:19:06.822>has <00:19:06.996>been <00:19:07.172>invented

327
00:19:09.712 --> 00:19:13.632
<00:19:09.712>typically <00:19:09.867>for <00:19:10.023>the <00:19:10.178>cloud <00:19:10.334>era, <00:19:10.489>you <00:19:10.645>have <00:19:10.800>to <00:19:10.956>consider, <00:19:11.112>I

328
00:19:14.072 --> 00:19:17.752
<00:19:14.072>spoke <00:19:14.305>earlier <00:19:14.538>about <00:19:14.772>APIs <00:19:15.005>or <00:19:15.238>accessing <00:19:15.472>the

329
00:19:17.852 --> 00:19:19.452
<00:19:17.852>front <00:19:18.132>end <00:19:18.412>of <00:19:18.692>a <00:19:18.972>web <00:19:19.252>application.

330
00:19:20.292 --> 00:19:22.672
<00:19:20.292>If <00:19:20.572>this <00:19:20.851>software <00:19:21.131>is <00:19:21.411>in <00:19:21.692>AGPL,

331
00:19:23.952 --> 00:19:27.862
<00:19:23.952>any <00:19:24.059>user <00:19:24.167>accessing <00:19:24.275>your <00:19:24.382>API <00:19:24.490>or <00:19:24.598>your <00:19:24.705>front <00:19:24.813>end <00:19:24.921>or <00:19:25.028>your <00:19:25.136>application <00:19:25.244>into <00:19:25.352>web

332
00:19:27.872 --> 00:19:30.692
<00:19:27.872>browser, <00:19:28.047>say, <00:19:28.222>can <00:19:28.397>ask <00:19:28.572>for <00:19:28.747>the <00:19:28.922>sources <00:19:29.097>as <00:19:29.272>well.

333
00:19:30.732 --> 00:19:34.632
<00:19:30.732>So <00:19:30.831>if <00:19:30.932>you <00:19:31.032>made <00:19:31.132>modification <00:19:31.232>and <00:19:31.331>so <00:19:31.432>on, <00:19:31.532>you <00:19:31.632>have <00:19:31.732>to <00:19:31.831>provide <00:19:31.932>a <00:19:32.032>way <00:19:32.132>for

334
00:19:34.732 --> 00:19:38.572
<00:19:34.732>end <00:19:34.831>users <00:19:34.932>to <00:19:35.032>access <00:19:35.132>the <00:19:35.232>source. <00:19:35.331>Or <00:19:35.432>at <00:19:35.532>least <00:19:35.632>if <00:19:35.732>they <00:19:35.831>ask <00:19:35.932>it <00:19:36.032>you, <00:19:36.132>it's

335
00:19:38.612 --> 00:19:41.992
<00:19:38.612>mandatory, <00:19:38.739>you <00:19:38.866>have <00:19:38.993>to <00:19:39.121>send <00:19:39.248>them. <00:19:39.375>It <00:19:39.502>can <00:19:39.630>be <00:19:39.757>a <00:19:39.884>zip <00:19:40.012>file.

336
00:19:42.152 --> 00:19:43.572
<00:19:42.152>You <00:19:42.365>don't <00:19:42.578>have <00:19:42.791>to <00:19:43.004>have <00:19:43.217>a <00:19:43.430>public

337
00:19:44.512 --> 00:19:48.372
<00:19:44.512>repository. <00:19:44.639>But <00:19:44.766>you <00:19:44.893>have <00:19:45.021>to <00:19:45.148>have <00:19:45.275>a <00:19:45.402>way <00:19:45.530>to <00:19:45.657>send <00:19:45.784>the <00:19:45.912>source

338
00:19:48.432 --> 00:19:52.052
<00:19:48.432>code <00:19:48.572>if <00:19:48.712>people <00:19:48.852>ask <00:19:48.992>about <00:19:49.132>it. <00:19:49.272>So <00:19:49.412>that's <00:19:49.552>how <00:19:49.692>it <00:19:49.832>works.

339
00:19:52.832 --> 00:19:56.492
<00:19:52.832>So <00:19:53.007>if <00:19:53.182>I <00:19:53.357>have <00:19:53.532>to <00:19:53.707>make <00:19:53.882>it <00:19:54.057>simple, <00:19:54.232>licenses,

340
00:19:56.992 --> 00:20:00.292
<00:19:56.992>they <00:19:57.132>define <00:19:57.272>what <00:19:57.412>you <00:19:57.552>can <00:19:57.692>and <00:19:57.831>what <00:19:57.972>you <00:19:58.111>can't <00:19:58.252>do. <00:19:58.392>Okay?

341
00:20:00.812 --> 00:20:04.772
<00:20:00.812>They <00:20:00.928>protect <00:20:01.045>the <00:20:01.161>whole <00:20:01.278>source <00:20:01.395>of <00:20:01.512>the <00:20:01.628>code, <00:20:01.745>and <00:20:01.861>they <00:20:01.978>give <00:20:02.095>the <00:20:02.212>responsibility

342
00:20:04.812 --> 00:20:06.512
<00:20:04.812>to <00:20:05.091>the <00:20:05.371>users <00:20:05.651>or <00:20:05.931>the <00:20:06.212>customers.

343
00:20:07.492 --> 00:20:11.472
<00:20:07.492>And <00:20:07.667>it <00:20:07.841>apply <00:20:08.017>when <00:20:08.192>you <00:20:08.367>distribute <00:20:08.542>the <00:20:08.716>software, <00:20:08.892>not

344
00:20:11.532 --> 00:20:15.312
<00:20:11.532>really <00:20:11.619>when <00:20:11.706>you <00:20:11.794>use. <00:20:11.881>As <00:20:11.969>I <00:20:12.057>said <00:20:12.144>earlier, <00:20:12.232>if <00:20:12.319>you <00:20:12.407>aggregate <00:20:12.494>a <00:20:12.581>lot <00:20:12.669>of <00:20:12.756>things <00:20:12.844>to <00:20:12.932>build

345
00:20:15.352 --> 00:20:18.492
<00:20:15.352>something <00:20:15.492>that <00:20:15.632>is <00:20:15.772>used <00:20:15.912>internally, <00:20:16.052>there's <00:20:16.192>no <00:20:16.332>distribution, <00:20:16.472>so <00:20:16.612>that's <00:20:16.752>okay.

346
00:20:19.032 --> 00:20:22.992
<00:20:19.032>But <00:20:19.125>if <00:20:19.218>you <00:20:19.312>want <00:20:19.405>to <00:20:19.498>take <00:20:19.591>that, <00:20:19.685>the <00:20:19.778>stuff <00:20:19.871>you <00:20:19.965>build <00:20:20.058>and <00:20:20.151>say, <00:20:20.245>"It <00:20:20.338>could <00:20:20.432>be

347
00:20:23.012 --> 00:20:26.332
<00:20:23.012>a <00:20:23.152>wonderful <00:20:23.292>product <00:20:23.432>we <00:20:23.572>could <00:20:23.712>sell," <00:20:23.851>and <00:20:23.992>so <00:20:24.131>on, <00:20:24.272>then <00:20:24.412>you

348
00:20:26.392 --> 00:20:30.072
<00:20:26.392>will <00:20:26.592>distribute, <00:20:26.792>so <00:20:26.992>you <00:20:27.192>have <00:20:27.392>to <00:20:27.592>check <00:20:27.792>that

349
00:20:30.112 --> 00:20:33.652
<00:20:30.112>there's <00:20:30.392>no <00:20:30.672>license <00:20:30.952>conflicts <00:20:31.232>and <00:20:31.512>problems.

350
00:20:34.092 --> 00:20:37.392
<00:20:34.092>Here <00:20:34.219>again, <00:20:34.346>the <00:20:34.473>solution <00:20:34.601>is <00:20:34.728>an <00:20:34.855>image <00:20:34.982>file. <00:20:35.110>It's <00:20:35.237>the <00:20:35.364>easy <00:20:35.492>way.

351
00:20:39.252 --> 00:20:42.892
<00:20:39.252>So <00:20:39.485>why <00:20:39.718>license <00:20:39.952>choice <00:20:40.185>matters? <00:20:40.418>I <00:20:40.652>want

352
00:20:42.952 --> 00:20:46.472
<00:20:42.952>to <00:20:43.092>give <00:20:43.232>a <00:20:43.372>second <00:20:43.512>use <00:20:43.652>case. <00:20:43.792>The <00:20:43.932>first <00:20:44.072>one <00:20:44.212>was <00:20:44.352>about,

353
00:20:46.912 --> 00:20:48.312
<00:20:46.912>Docker <00:20:47.164>image <00:20:47.416>and <00:20:47.668>Docker <00:20:47.919>image <00:20:48.172>files.

354
00:20:48.332 --> 00:20:49.192
<00:20:48.332>This <00:20:48.590>one <00:20:48.848>is <00:20:49.106>very

355
00:20:50.432 --> 00:20:54.152
<00:20:50.432>real <00:20:50.607>life. <00:20:50.782>If <00:20:50.957>you <00:20:51.132>think <00:20:51.307>about <00:20:51.482>Apple <00:20:51.657>and <00:20:51.832>Nintendo

356
00:20:54.212 --> 00:20:56.692
<00:20:54.212>devices <00:20:54.445>like <00:20:54.678>your <00:20:54.912>MacBook, <00:20:55.145>your <00:20:55.378>Nintendo <00:20:55.612>Switch,

357
00:20:57.832 --> 00:21:01.432
<00:20:57.832>they <00:20:57.987>are <00:20:58.143>using <00:20:58.298>BSD <00:20:58.454>software <00:20:58.609>as <00:20:58.765>a <00:20:58.920>base <00:20:59.076>for <00:20:59.232>their

358
00:21:01.472 --> 00:21:04.732
<00:21:01.472>operating <00:21:01.647>systems. <00:21:01.822>BSD <00:21:01.997>is <00:21:02.172>a <00:21:02.347>very <00:21:02.522>permissive <00:21:02.697>license <00:21:02.872>like

359
00:21:05.552 --> 00:21:09.532
<00:21:05.552>MIT, <00:21:05.901>and <00:21:06.252>they <00:21:06.601>don't <00:21:06.952>need

360
00:21:09.772 --> 00:21:13.672
<00:21:09.772>to <00:21:09.927>share <00:21:10.083>modifications, <00:21:10.238>okay? <00:21:10.394>They <00:21:10.549>have <00:21:10.705>to <00:21:10.860>tell, <00:21:11.016>they <00:21:11.172>use

361
00:21:14.332 --> 00:21:18.232
<00:21:14.332>some <00:21:14.472>software <00:21:14.612>with <00:21:14.752>a <00:21:14.892>BSD <00:21:15.032>license <00:21:15.172>as <00:21:15.312>a <00:21:15.452>base, <00:21:15.592>so <00:21:15.732>they

362
00:21:18.292 --> 00:21:21.492
<00:21:18.292>have <00:21:18.432>to <00:21:18.572>share <00:21:18.712>the <00:21:18.851>source <00:21:18.992>of <00:21:19.131>the <00:21:19.272>original <00:21:19.411>software <00:21:19.552>they <00:21:19.692>use.

363
00:21:21.812 --> 00:21:25.691
<00:21:21.812>But <00:21:21.952>by <00:21:22.091>the <00:21:22.232>license, <00:21:22.371>it's <00:21:22.512>not <00:21:22.651>mandatory <00:21:22.792>to <00:21:22.931>share <00:21:23.072>their <00:21:23.212>modifications.

364
00:21:25.772 --> 00:21:28.192
<00:21:25.772>So <00:21:25.912>they <00:21:26.052>can <00:21:26.192>keep, <00:21:26.331>I <00:21:26.472>would <00:21:26.611>say, <00:21:26.752>their <00:21:26.891>secret <00:21:27.032>sauce, <00:21:27.172>okay?

365
00:21:29.052 --> 00:21:30.212
<00:21:29.052>In <00:21:29.312>the <00:21:29.573>case <00:21:29.835>of <00:21:30.096>VIZIO,

366
00:21:31.212 --> 00:21:34.452
<00:21:31.212>the <00:21:31.445>make <00:21:31.678>entertainment <00:21:31.912>stuff, <00:21:32.145>televisions <00:21:32.378>and <00:21:32.612>stuff,

367
00:21:35.412 --> 00:21:39.312
<00:21:35.412>they <00:21:35.539>chose <00:21:35.666>to <00:21:35.793>use <00:21:35.921>Linux, <00:21:36.048>which <00:21:36.175>is <00:21:36.302>distributed <00:21:36.430>with <00:21:36.557>a <00:21:36.684>GPL <00:21:36.812>license,

368
00:21:39.612 --> 00:21:42.412
<00:21:39.612>and <00:21:39.812>so <00:21:40.012>they <00:21:40.212>must <00:21:40.412>distribute <00:21:40.612>the <00:21:40.812>source <00:21:41.012>code.

369
00:21:42.422 --> 00:21:45.902
<00:21:42.422>And <00:21:42.562>so <00:21:42.702>that's <00:21:42.842>annoying <00:21:42.982>because, <00:21:43.122>of <00:21:43.262>course, <00:21:43.402>to <00:21:43.542>create <00:21:43.682>a <00:21:43.822>modern

370
00:21:46.312 --> 00:21:47.952
<00:21:46.312>entertainment <00:21:46.778>device, <00:21:47.245>you <00:21:47.712>mix

371
00:21:48.812 --> 00:21:52.692
<00:21:48.812>GPL <00:21:48.939>code, <00:21:49.066>if <00:21:49.193>it's <00:21:49.321>Linux <00:21:49.448>with <00:21:49.575>proprietary, <00:21:49.702>I <00:21:49.830>would <00:21:49.957>say <00:21:50.084>codecs <00:21:50.212>or

372
00:21:52.792 --> 00:21:55.212
<00:21:52.792>applications <00:21:52.992>like, <00:21:53.192>I <00:21:53.391>would <00:21:53.591>say <00:21:53.792>Netflix <00:21:53.992>or <00:21:54.192>whatever.

373
00:21:56.192 --> 00:21:59.112
<00:21:56.192>And <00:21:56.367>in <00:21:56.542>theory, <00:21:56.717>you <00:21:56.892>can't <00:21:57.067>distribute <00:21:57.242>all <00:21:57.417>that <00:21:57.592>together.

374
00:22:00.132 --> 00:22:03.472
<00:22:00.132>So <00:22:00.412>currently, <00:22:00.692>VIZIO <00:22:00.972>is <00:22:01.252>sued <00:22:01.532>by

375
00:22:04.212 --> 00:22:06.272
<00:22:04.212>Software <00:22:04.492>Conservancy, <00:22:04.772>which <00:22:05.052>is <00:22:05.331>a <00:22:05.612>foundation

376
00:22:07.192 --> 00:22:10.072
<00:22:07.192>in <00:22:07.658>charge <00:22:08.125>of <00:22:08.592>defending

377
00:22:11.092 --> 00:22:14.692
<00:22:11.092>open <00:22:11.372>source <00:22:11.652>contributors. <00:22:11.932>And <00:22:12.212>so <00:22:12.492>Software

378
00:22:14.752 --> 00:22:16.792
<00:22:14.752>Conservancy <00:22:14.985>want <00:22:15.218>access <00:22:15.452>to <00:22:15.685>the <00:22:15.918>source <00:22:16.152>code.

379
00:22:17.052 --> 00:22:17.472
Currently,

380
00:22:18.432 --> 00:22:22.172
<00:22:18.432>this <00:22:18.632>is <00:22:18.832>still <00:22:19.032>processing, <00:22:19.232>but <00:22:19.432>at <00:22:19.632>one <00:22:19.832>point,

381
00:22:22.352 --> 00:22:25.432
<00:22:22.352>if <00:22:22.507>the <00:22:22.663>GPL <00:22:22.818>applies, <00:22:22.974>they <00:22:23.129>will <00:22:23.285>have <00:22:23.440>to <00:22:23.596>do <00:22:23.752>it.

382
00:22:26.072 --> 00:22:29.632
<00:22:26.072>So <00:22:26.212>same <00:22:26.351>kind <00:22:26.492>of <00:22:26.631>product, <00:22:26.772>really <00:22:26.911>the <00:22:27.052>same <00:22:27.191>kind <00:22:27.331>of <00:22:27.472>family,

383
00:22:29.702 --> 00:22:33.372
<00:22:29.702>entertainment <00:22:29.902>device <00:22:30.102>with <00:22:30.302>screens <00:22:30.502>and <00:22:30.702>audio <00:22:30.902>and <00:22:31.102>whatever,

384
00:22:33.712 --> 00:22:36.292
<00:22:33.712>but <00:22:34.062>very <00:22:34.412>different <00:22:34.762>legal <00:22:35.112>obligations.

385
00:22:36.752 --> 00:22:40.452
<00:22:36.752>And <00:22:36.859>you <00:22:36.967>have <00:22:37.075>to <00:22:37.182>keep <00:22:37.290>that <00:22:37.398>in <00:22:37.505>mind <00:22:37.613>because <00:22:37.721>in <00:22:37.828>some <00:22:37.936>cases, <00:22:38.044>you <00:22:38.152>don't

386
00:22:40.492 --> 00:22:44.152
<00:22:40.492>want <00:22:40.647>to <00:22:40.803>share <00:22:40.958>your <00:22:41.114>secret <00:22:41.269>sauce. <00:22:41.425>And <00:22:41.580>in <00:22:41.736>this <00:22:41.892>case,

387
00:22:44.452 --> 00:22:48.372
<00:22:44.452>for <00:22:44.552>example, <00:22:44.652>you <00:22:44.752>don't <00:22:44.852>want <00:22:44.952>to <00:22:45.052>use <00:22:45.152>GPL <00:22:45.252>software, <00:22:45.352>and <00:22:45.452>that's <00:22:45.552>important <00:22:45.652>to <00:22:45.752>keep <00:22:45.852>in

388
00:22:48.412 --> 00:22:49.012
<00:22:48.412>mind, <00:22:48.952>okay?

389
00:22:50.752 --> 00:22:51.892
<00:22:50.752>So <00:22:51.778>now,

390
00:22:53.392 --> 00:22:57.192
<00:22:53.392>what <00:22:53.532>is <00:22:53.672>important <00:22:53.812>is <00:22:53.952>that <00:22:54.092>new <00:22:54.232>to <00:22:54.372>the <00:22:54.512>field <00:22:54.652>in <00:22:54.792>the

391
00:22:57.252 --> 00:23:01.212
<00:22:57.252>last <00:22:57.452>two <00:22:57.652>or <00:22:57.851>three <00:22:58.052>years, <00:22:58.252>because <00:22:58.452>before, <00:22:58.652>that

392
00:23:01.232 --> 00:23:04.872
<00:23:01.232>was <00:23:01.407>not <00:23:01.581>something <00:23:01.757>we <00:23:01.932>had <00:23:02.107>to <00:23:02.282>handle, <00:23:02.456>is <00:23:02.632>the

393
00:23:04.912 --> 00:23:08.372
<00:23:04.912>licensing <00:23:05.262>of <00:23:05.612>artificial <00:23:05.962>intelligence <00:23:06.312>model.

394
00:23:08.432 --> 00:23:11.992
<00:23:08.432>Large <00:23:08.607>language <00:23:08.782>models, <00:23:08.957>but <00:23:09.132>tooling, <00:23:09.307>databases, <00:23:09.482>and <00:23:09.657>so <00:23:09.832>on.

395
00:23:13.552 --> 00:23:16.872
<00:23:13.552>When <00:23:13.785>you <00:23:14.018>want <00:23:14.252>to <00:23:14.485>add <00:23:14.718>some <00:23:14.952>AI

396
00:23:17.052 --> 00:23:18.252
<00:23:17.052>component <00:23:17.591>or <00:23:18.132>layers,

397
00:23:19.192 --> 00:23:23.012
<00:23:19.192>features <00:23:19.392>to <00:23:19.592>your <00:23:19.792>application, <00:23:19.992>you <00:23:20.192>will <00:23:20.392>build <00:23:20.592>your

398
00:23:23.032 --> 00:23:26.392
<00:23:23.032>application <00:23:23.232>and <00:23:23.432>add <00:23:23.631>via <00:23:23.831>APIs <00:23:24.032>or <00:23:24.232>some <00:23:24.432>stuff,

399
00:23:28.112 --> 00:23:31.332
<00:23:28.112>MCP, <00:23:28.462>you <00:23:28.812>will <00:23:29.162>add <00:23:29.512>some

400
00:23:31.472 --> 00:23:34.812
<00:23:31.472>LLMs, <00:23:31.672>and <00:23:31.872>so <00:23:32.072>on. <00:23:32.272>So <00:23:32.472>you <00:23:32.672>have <00:23:32.872>some

401
00:23:34.892 --> 00:23:36.212
<00:23:34.892>discussion <00:23:36.080>features.

402
00:23:37.052 --> 00:23:40.392
<00:23:37.052>You <00:23:37.207>can <00:23:37.363>extract <00:23:37.518>metadata <00:23:37.674>from <00:23:37.829>documents, <00:23:37.985>this <00:23:38.140>kind <00:23:38.296>of <00:23:38.452>thing.

403
00:23:40.472 --> 00:23:41.992
<00:23:40.472>This <00:23:40.624>is <00:23:40.776>what <00:23:40.928>we <00:23:41.080>do <00:23:41.232>at <00:23:41.384>Hyron, <00:23:41.536>by <00:23:41.687>the <00:23:41.840>way.

404
00:23:42.632 --> 00:23:45.112
<00:23:42.632>And <00:23:43.098>so <00:23:43.565>we <00:23:44.032>analyzed,

405
00:23:46.012 --> 00:23:47.212
<00:23:46.012>I <00:23:46.371>would <00:23:46.732>say <00:23:47.092>81

406
00:23:48.792 --> 00:23:51.972
<00:23:48.792>technologies, <00:23:49.141>can <00:23:49.492>be <00:23:49.841>LLMs, <00:23:50.192>protocols,

407
00:23:52.132 --> 00:23:52.852
databases,

408
00:23:54.072 --> 00:23:56.032
<00:23:54.072>inference <00:23:54.538>engines. <00:23:55.005>It's <00:23:55.472>written.

409
00:23:57.392 --> 00:23:58.052
<00:23:57.392>But <00:23:57.985>typically,

410
00:23:59.612 --> 00:24:01.212
<00:23:59.612>our <00:23:59.962>target <00:24:00.312>was <00:24:00.662>to <00:24:01.012>check

411
00:24:02.112 --> 00:24:04.212
<00:24:02.112>what <00:24:02.392>was <00:24:02.672>the <00:24:02.952>tendencies <00:24:03.232>or <00:24:03.512>trend

412
00:24:05.852 --> 00:24:06.452
<00:24:05.852>to <00:24:06.392>say,

413
00:24:07.572 --> 00:24:08.632
<00:24:07.572>is <00:24:08.526>proprietary

414
00:24:09.572 --> 00:24:12.352
<00:24:09.572>what <00:24:09.921>everybody <00:24:10.272>is <00:24:10.621>doing? <00:24:10.972>Or

415
00:24:13.172 --> 00:24:15.652
<00:24:13.172>is <00:24:13.452>on <00:24:13.732>the <00:24:14.012>opposite <00:24:14.292>open <00:24:14.572>source

416
00:24:16.972 --> 00:24:20.452
<00:24:16.972>the <00:24:17.112>best <00:24:17.252>way <00:24:17.392>to <00:24:17.532>do <00:24:17.672>it? <00:24:17.812>And <00:24:17.952>is <00:24:18.091>there <00:24:18.232>also <00:24:18.372>alternative?

417
00:24:20.572 --> 00:24:23.432
<00:24:20.572>And <00:24:20.699>so <00:24:20.826>there <00:24:20.953>are <00:24:21.081>fair <00:24:21.208>use, <00:24:21.335>as <00:24:21.462>you <00:24:21.590>can <00:24:21.717>see <00:24:21.844>behind <00:24:21.972>me.

418
00:24:24.212 --> 00:24:27.992
<00:24:24.212>So <00:24:24.367>what <00:24:24.523>you <00:24:24.678>can <00:24:24.834>see <00:24:24.989>is <00:24:25.145>that <00:24:25.300>the <00:24:25.456>biggest <00:24:25.612>license

419
00:24:28.072 --> 00:24:31.912
<00:24:28.072>is <00:24:28.246>really <00:24:28.421>Apache <00:24:28.597>2.0. <00:24:28.772>It's <00:24:28.947>a <00:24:29.121>very <00:24:29.296>good <00:24:29.472>license

420
00:24:31.972 --> 00:24:33.592
<00:24:31.972>written <00:24:32.322>by <00:24:32.672>the <00:24:33.022>Apache <00:24:33.372>Foundation.

421
00:24:34.292 --> 00:24:37.892
<00:24:34.292>It's <00:24:34.492>a <00:24:34.692>permissive <00:24:34.891>license, <00:24:35.091>but <00:24:35.292>it's <00:24:35.492>just <00:24:35.692>when

422
00:24:37.992 --> 00:24:39.652
<00:24:37.992>MIT <00:24:38.272>and <00:24:38.552>BSD <00:24:38.831>are <00:24:39.111>very <00:24:39.392>short.

423
00:24:40.852 --> 00:24:43.912
<00:24:40.852>Apache <00:24:41.132>is <00:24:41.412>very <00:24:41.692>comprehensive. <00:24:41.972>It <00:24:42.252>protects

424
00:24:45.012 --> 00:24:47.372
<00:24:45.012>authors. <00:24:45.292>It <00:24:45.572>gives <00:24:45.851>rights <00:24:46.131>to <00:24:46.412>users.

425
00:24:47.452 --> 00:24:49.492
<00:24:47.452>It <00:24:48.152>handles <00:24:48.852>contributions.

426
00:24:50.512 --> 00:24:54.296
<00:24:50.512>And <00:24:50.639>how <00:24:50.766>you <00:24:50.893>speak <00:24:51.021>about <00:24:51.148>how <00:24:51.275>you <00:24:51.402>use <00:24:51.530>The <00:24:51.657>Apache <00:24:51.784>software <00:24:51.912>you

427
00:24:54.356 --> 00:24:55.196
<00:24:54.356>embed. <00:24:55.111>So,

428
00:24:56.276 --> 00:25:00.076
<00:24:56.276>I <00:24:56.416>was <00:24:56.556>not <00:24:56.696>very <00:24:56.836>surprised. <00:24:56.976>But <00:24:57.116>this <00:24:57.256>is <00:24:57.396>something <00:24:57.536>to <00:24:57.676>understand.

429
00:25:00.516 --> 00:25:04.496
<00:25:00.516>There's <00:25:00.616>a <00:25:00.716>lot <00:25:00.816>of <00:25:00.916>stuff. <00:25:01.016>The <00:25:01.116>tendency <00:25:01.216>is <00:25:01.316>to <00:25:01.416>move <00:25:01.516>a <00:25:01.616>lot <00:25:01.716>of <00:25:01.816>stuff <00:25:01.916>to

430
00:25:04.536 --> 00:25:08.376
<00:25:04.536>Apache. <00:25:04.676>Typically, <00:25:04.816>Google, <00:25:04.956>for <00:25:05.096>example, <00:25:05.236>with <00:25:05.376>Gemma, <00:25:05.516>is <00:25:05.656>using <00:25:05.796>this <00:25:05.936>license.

431
00:25:09.096 --> 00:25:12.636
<00:25:09.096>Mistral <00:25:09.376>and <00:25:09.656>Qwen <00:25:09.936>also. <00:25:10.216>Then <00:25:10.496>second,

432
00:25:13.196 --> 00:25:14.796
<00:25:13.196>you <00:25:13.896>have <00:25:14.596>proprietary.

433
00:25:16.136 --> 00:25:19.376
<00:25:16.136>Typically, <00:25:16.336>it <00:25:16.536>will <00:25:16.735>be <00:25:16.936>APIs. <00:25:17.136>It <00:25:17.336>will <00:25:17.536>be

434
00:25:19.756 --> 00:25:22.816
<00:25:19.756>ChatGPT, <00:25:19.931>it <00:25:20.106>will <00:25:20.281>be <00:25:20.456>Claude, <00:25:20.631>it <00:25:20.806>will <00:25:20.981>be <00:25:21.156>Gemini,

435
00:25:24.516 --> 00:25:27.456
<00:25:24.516>by <00:25:24.716>the <00:25:24.916>famous <00:25:25.116>company, <00:25:25.316>OpenAI, <00:25:25.516>Anthropic, <00:25:25.716>and <00:25:25.916>Google.

436
00:25:28.216 --> 00:25:32.096
<00:25:28.216>This <00:25:28.390>you <00:25:28.565>cannot <00:25:28.741>ship. <00:25:28.916>They <00:25:29.091>will <00:25:29.265>not <00:25:29.440>give <00:25:29.616>it

437
00:25:32.156 --> 00:25:36.036
<00:25:32.156>to <00:25:32.311>you. <00:25:32.467>And <00:25:32.622>so <00:25:32.778>it's <00:25:32.933>restricted <00:25:33.089>to <00:25:33.244>how <00:25:33.400>they <00:25:33.556>give

438
00:25:36.076 --> 00:25:39.956
<00:25:36.076>you <00:25:36.203>access <00:25:36.330>to <00:25:36.457>their <00:25:36.585>APIs, <00:25:36.712>basically, <00:25:36.839>and <00:25:36.966>where <00:25:37.094>it's <00:25:37.221>hosted <00:25:37.348>and <00:25:37.476>whatever.

439
00:25:40.656 --> 00:25:44.116
<00:25:40.656>So <00:25:40.856>you <00:25:41.056>have <00:25:41.255>just <00:25:41.456>to <00:25:41.656>read <00:25:41.856>their <00:25:42.056>commercial

440
00:25:44.176 --> 00:25:47.616
<00:25:44.176>conditions, <00:25:44.331>their <00:25:44.487>term <00:25:44.642>of <00:25:44.798>use, <00:25:44.953>whatever, <00:25:45.109>and <00:25:45.264>play <00:25:45.420>with <00:25:45.576>that.

441
00:25:47.676 --> 00:25:51.556
<00:25:47.676>Okay. <00:25:47.851>And <00:25:48.025>then <00:25:48.201>you <00:25:48.376>have <00:25:48.551>11% <00:25:48.726>of <00:25:48.900>fair <00:25:49.076>use.

442
00:25:51.596 --> 00:25:55.396
<00:25:51.596>And <00:25:51.736>I <00:25:51.876>think <00:25:52.016>I <00:25:52.156>will <00:25:52.296>spend <00:25:52.436>some <00:25:52.576>time <00:25:52.716>explaining <00:25:52.856>what <00:25:52.996>it

443
00:25:55.476 --> 00:25:58.055
<00:25:55.476>is <00:25:55.676>because <00:25:55.876>there's <00:25:56.076>a <00:25:56.276>couple <00:25:56.476>of <00:25:56.676>options <00:25:56.876>here,

444
00:25:59.876 --> 00:26:01.636
<00:25:59.876>where <00:26:00.156>you <00:26:00.436>have, <00:26:00.716>for <00:26:00.995>example, <00:26:01.276>Llama.

445
00:26:03.836 --> 00:26:04.296
It's

446
00:26:05.336 --> 00:26:09.096
<00:26:05.336>the <00:26:05.491>license <00:26:05.647>used <00:26:05.802>by <00:26:05.958>Meta <00:26:06.113>and <00:26:06.269>Facebook <00:26:06.424>for <00:26:06.580>their <00:26:06.736>models.

447
00:26:09.716 --> 00:26:12.296
<00:26:09.716>And <00:26:09.949>here <00:26:10.182>the <00:26:10.416>restriction <00:26:10.649>is <00:26:10.882>mostly <00:26:11.116>users.

448
00:26:13.456 --> 00:26:16.616
<00:26:13.456>Falcon <00:26:13.630>is <00:26:13.805>a <00:26:13.981>custom <00:26:14.156>license <00:26:14.331>and <00:26:14.505>Stable <00:26:14.680>LM <00:26:14.856>also.

449
00:26:17.056 --> 00:26:20.836
<00:26:17.056>But <00:26:17.183>basically <00:26:17.310>what <00:26:17.437>they <00:26:17.565>say <00:26:17.692>is <00:26:17.819>that <00:26:17.946>no <00:26:18.074>commercial <00:26:18.201>use <00:26:18.328>or <00:26:18.456>sometimes

450
00:26:20.856 --> 00:26:24.676
<00:26:20.856>you <00:26:21.056>have <00:26:21.256>to <00:26:21.456>have <00:26:21.656>less <00:26:21.856>than <00:26:22.056>a <00:26:22.256>certain

451
00:26:24.686 --> 00:26:28.376
<00:26:24.686>amount <00:26:24.826>of <00:26:24.966>numbers. <00:26:25.106>And <00:26:25.245>some <00:26:25.386>fair <00:26:25.525>use <00:26:25.666>licenses <00:26:25.805>also <00:26:25.946>say, <00:26:26.086>"It's

452
00:26:28.436 --> 00:26:32.356
<00:26:28.436>okay. <00:26:28.529>You <00:26:28.622>can <00:26:28.716>use <00:26:28.809>it <00:26:28.902>for <00:26:28.995>research <00:26:29.089>purposes, <00:26:29.182>but <00:26:29.275>you <00:26:29.369>cannot <00:26:29.462>embed <00:26:29.555>it <00:26:29.649>and <00:26:29.742>use <00:26:29.836>it

453
00:26:32.396 --> 00:26:34.396
<00:26:32.396>for <00:26:32.745>commercial <00:26:33.096>stuff." <00:26:33.446>Okay. <00:26:33.796>So

454
00:26:35.916 --> 00:26:38.436
<00:26:35.916>same <00:26:36.149>technology, <00:26:36.382>I <00:26:36.616>would <00:26:36.849>say, <00:26:37.082>same <00:26:37.316>API.

455
00:26:39.356 --> 00:26:42.256
<00:26:39.356>But <00:26:39.472>not <00:26:39.589>the <00:26:39.706>same <00:26:39.822>rights, <00:26:39.939>so <00:26:40.056>you <00:26:40.172>have <00:26:40.289>to <00:26:40.406>take <00:26:40.522>care <00:26:40.639>about <00:26:40.756>that.

456
00:26:43.516 --> 00:26:47.436
<00:26:43.516>So <00:26:43.716>what <00:26:43.916>can <00:26:44.116>you <00:26:44.316>actually <00:26:44.516>use? <00:26:44.716>Let's <00:26:44.916>go

457
00:26:47.496 --> 00:26:50.356
<00:26:47.496>a <00:26:47.671>bit <00:26:47.846>deeper. <00:26:48.021>This <00:26:48.196>slide <00:26:48.371>is <00:26:48.546>a <00:26:48.721>bit <00:26:48.896>big.

458
00:26:51.036 --> 00:26:54.556
<00:26:51.036>Sorry <00:26:51.143>for <00:26:51.251>putting, <00:26:51.359>I <00:26:51.466>would <00:26:51.574>say, <00:26:51.682>that <00:26:51.789>amount <00:26:51.897>of <00:26:52.005>text, <00:26:52.112>but <00:26:52.220>I <00:26:52.328>think <00:26:52.436>it's

459
00:26:54.576 --> 00:26:58.356
<00:26:54.576>interesting <00:26:54.731>because <00:26:54.887>you <00:26:55.042>can <00:26:55.198>pause <00:26:55.353>and <00:26:55.509>take <00:26:55.664>the <00:26:55.820>time <00:26:55.976>to

460
00:26:58.436 --> 00:27:02.176
<00:26:58.436>read <00:26:58.563>and <00:26:58.690>take <00:26:58.817>notes. <00:26:58.945>It <00:26:59.072>will <00:26:59.199>help <00:26:59.326>you <00:26:59.454>to <00:26:59.581>build <00:26:59.708>a <00:26:59.836>good

461
00:27:02.276 --> 00:27:05.956
<00:27:02.276>strategy. <00:27:02.431>So <00:27:02.587>first <00:27:02.742>is, <00:27:02.898>I <00:27:03.053>would <00:27:03.209>say, <00:27:03.364>true <00:27:03.520>open <00:27:03.676>source

462
00:27:06.076 --> 00:27:09.976
<00:27:06.076>with <00:27:06.251>permissive <00:27:06.426>models. <00:27:06.601>The <00:27:06.776>commercial <00:27:06.951>use <00:27:07.126>is <00:27:07.301>allowed, <00:27:07.476>typically

463
00:27:10.296 --> 00:27:10.616
Apache

464
00:27:11.636 --> 00:27:12.236
<00:27:11.636>2, <00:27:12.176>MIT,

465
00:27:13.116 --> 00:27:17.016
<00:27:13.116>BSD, <00:27:13.256>this <00:27:13.396>kind <00:27:13.536>of <00:27:13.676>license. <00:27:13.816>Typically, <00:27:13.956>so <00:27:14.096>Mistral, <00:27:14.235>Gemma, <00:27:14.376>and <00:27:14.516>DeepSeek.

466
00:27:17.876 --> 00:27:19.136
<00:27:17.876>So <00:27:18.159>you <00:27:18.443>have <00:27:18.726>fair <00:27:19.010>use,

467
00:27:20.376 --> 00:27:22.816
<00:27:20.376>and <00:27:20.576>they <00:27:20.776>are, <00:27:20.976>I <00:27:21.176>would <00:27:21.376>say, <00:27:21.576>custom <00:27:21.776>licenses.

468
00:27:23.136 --> 00:27:25.956
<00:27:23.136>So <00:27:23.336>they <00:27:23.536>have <00:27:23.735>a <00:27:23.936>couple <00:27:24.136>of <00:27:24.336>usage <00:27:24.536>limits.

469
00:27:27.036 --> 00:27:30.996
<00:27:27.036>Can <00:27:27.152>be, <00:27:27.269>I <00:27:27.386>said <00:27:27.502>in <00:27:27.619>the <00:27:27.736>previous <00:27:27.852>slide, <00:27:27.969>number <00:27:28.086>of <00:27:28.202>users, <00:27:28.319>no <00:27:28.436>commercial

470
00:27:31.116 --> 00:27:34.876
<00:27:31.116>use, <00:27:31.349>research <00:27:31.582>only. <00:27:31.816>Typically, <00:27:32.049>Rail <00:27:32.282>is <00:27:32.516>a

471
00:27:34.936 --> 00:27:38.536
<00:27:34.936>responsible <00:27:35.136>AI <00:27:35.336>license, <00:27:35.535>and <00:27:35.735>it <00:27:35.936>falls <00:27:36.136>into <00:27:36.336>that.

472
00:27:38.596 --> 00:27:41.016
<00:27:38.596>The <00:27:38.829>Falcon <00:27:39.062>license <00:27:39.296>also <00:27:39.529>falls <00:27:39.762>into <00:27:39.996>that.

473
00:27:41.116 --> 00:27:44.836
<00:27:41.116>And <00:27:41.271>the <00:27:41.427>Llama <00:27:41.582>is <00:27:41.738>widely <00:27:41.893>used <00:27:42.049>because <00:27:42.204>they <00:27:42.360>set <00:27:42.516>a

474
00:27:44.916 --> 00:27:47.936
<00:27:44.916>number <00:27:45.149>of <00:27:45.382>users, <00:27:45.616>like <00:27:45.849>seven <00:27:46.082>million <00:27:46.316>users.

475
00:27:48.036 --> 00:27:51.756
<00:27:48.036>You <00:27:48.191>have <00:27:48.347>really <00:27:48.502>to <00:27:48.658>be <00:27:48.813>ultra <00:27:48.969>big <00:27:49.124>to <00:27:49.280>have <00:27:49.436>that.

476
00:27:52.356 --> 00:27:55.836
<00:27:52.356>But <00:27:52.496>it's <00:27:52.636>still <00:27:52.776>fair <00:27:52.916>use. <00:27:53.056>So <00:27:53.196>even <00:27:53.336>if <00:27:53.476>it <00:27:53.616>works <00:27:53.756>well,

477
00:27:56.316 --> 00:28:00.256
<00:27:56.316>at <00:27:56.416>one <00:27:56.516>point, <00:27:56.616>if <00:27:56.716>you <00:27:56.816>want <00:27:56.916>to <00:27:57.016>have <00:27:57.116>a <00:27:57.216>commercial <00:27:57.316>use <00:27:57.416>of <00:27:57.516>that, <00:27:57.616>and <00:27:57.716>it's

478
00:28:00.276 --> 00:28:04.116
<00:28:00.276>the <00:28:00.376>case, <00:28:00.476>for <00:28:00.576>example, <00:28:00.676>with <00:28:00.776>Falcon, <00:28:00.876>you <00:28:00.976>will <00:28:01.076>have <00:28:01.176>to <00:28:01.276>contact <00:28:01.376>the <00:28:01.476>vendor <00:28:01.576>and <00:28:01.676>say,

479
00:28:04.145 --> 00:28:07.096
<00:28:04.145>"Hey, <00:28:04.300>okay, <00:28:04.456>we've <00:28:04.611>been <00:28:04.767>doing <00:28:04.922>research <00:28:05.078>tests <00:28:05.233>and <00:28:05.389>so <00:28:05.545>on.

480
00:28:07.636 --> 00:28:11.136
<00:28:07.636>We <00:28:07.743>are <00:28:07.851>at <00:28:07.959>the <00:28:08.066>point <00:28:08.174>where <00:28:08.282>we <00:28:08.389>want <00:28:08.497>to <00:28:08.605>embed, <00:28:08.712>and <00:28:08.820>we <00:28:08.928>need <00:28:09.036>a

481
00:28:11.476 --> 00:28:12.976
<00:28:11.476>commercial <00:28:11.926>contract <00:28:12.376>with <00:28:12.826>you."

482
00:28:13.916 --> 00:28:17.856
<00:28:13.916>So <00:28:14.023>at <00:28:14.131>one <00:28:14.239>point <00:28:14.346>you <00:28:14.454>have <00:28:14.562>to <00:28:14.669>do <00:28:14.777>that. <00:28:14.885>In <00:28:14.992>some <00:28:15.100>cases, <00:28:15.208>you <00:28:15.316>can

483
00:28:17.936 --> 00:28:20.836
<00:28:17.936>find <00:28:18.216>already <00:28:18.495>hosted <00:28:18.775>versions <00:28:19.055>of <00:28:19.336>those.

484
00:28:22.076 --> 00:28:25.776
<00:28:22.076>Typically, <00:28:22.231>AWS <00:28:22.387>will <00:28:22.542>do <00:28:22.698>that, <00:28:22.853>I <00:28:23.009>think <00:28:23.164>in <00:28:23.320>Bedrock, <00:28:23.476>where

485
00:28:25.836 --> 00:28:29.596
<00:28:25.836>AWS <00:28:26.011>already <00:28:26.186>negotiated <00:28:26.361>that. <00:28:26.536>So <00:28:26.711>you <00:28:26.886>have <00:28:27.061>just <00:28:27.236>to

486
00:28:29.716 --> 00:28:31.956
<00:28:29.716>pay, <00:28:30.065>and <00:28:30.416>Amazon <00:28:30.765>is <00:28:31.116>handling

487
00:28:32.796 --> 00:28:34.796
<00:28:32.796>the <00:28:33.029>stuff <00:28:33.262>for <00:28:33.496>what <00:28:33.729>you <00:28:33.962>are <00:28:34.196>doing.

488
00:28:35.636 --> 00:28:39.256
<00:28:35.636>So <00:28:35.791>then <00:28:35.947>you <00:28:36.102>have <00:28:36.258>the <00:28:36.413>commercial-only, <00:28:36.569>and <00:28:36.724>typically <00:28:36.880>it's <00:28:37.036>usually

489
00:28:39.296 --> 00:28:39.856
APIs.

490
00:28:40.796 --> 00:28:43.876
<00:28:40.796>So <00:28:40.923>there's <00:28:41.050>no <00:28:41.177>redistribution, <00:28:41.305>of <00:28:41.432>course. <00:28:41.559>You <00:28:41.686>don't <00:28:41.814>have <00:28:41.941>access <00:28:42.068>to <00:28:42.196>anything.

491
00:28:44.736 --> 00:28:48.416
<00:28:44.736>It's <00:28:44.891>vendor <00:28:45.047>login. <00:28:45.202>They <00:28:45.358>decide. <00:28:45.513>So <00:28:45.669>example <00:28:45.824>of <00:28:45.980>product <00:28:46.136>are

492
00:28:48.516 --> 00:28:52.296
<00:28:48.516>ChatGPT, <00:28:48.691>Claude, <00:28:48.866>and <00:28:49.041>Gemini. <00:28:49.216>And <00:28:49.391>we <00:28:49.566>saw <00:28:49.741>in <00:28:49.916>the

493
00:28:52.356 --> 00:28:55.676
<00:28:52.356>last <00:28:52.556>weeks <00:28:52.756>that <00:28:52.956>there's <00:28:53.156>a <00:28:53.356>lot <00:28:53.556>of <00:28:53.756>change,

494
00:28:56.716 --> 00:28:57.476
<00:28:56.716>typically <00:28:57.400>with

495
00:28:58.896 --> 00:29:01.996
<00:28:58.896>the <00:28:59.129>commercial <00:28:59.362>model, <00:28:59.596>which <00:28:59.829>was <00:29:00.062>based <00:29:00.296>on

496
00:29:02.776 --> 00:29:06.736
<00:29:02.776>you <00:29:02.951>paid <00:29:03.126>per <00:29:03.301>month <00:29:03.476>and <00:29:03.651>you <00:29:03.826>had <00:29:04.001>quite <00:29:04.176>unlimited

497
00:29:07.256 --> 00:29:11.036
<00:29:07.256>access. <00:29:07.411>And <00:29:07.567>now, <00:29:07.722>the <00:29:07.878>model <00:29:08.033>is <00:29:08.189>moving <00:29:08.344>very <00:29:08.500>fast <00:29:08.656>to

498
00:29:11.356 --> 00:29:15.076
<00:29:11.356>pay <00:29:11.531>per <00:29:11.706>use, <00:29:11.881>which <00:29:12.056>can <00:29:12.231>be <00:29:12.406>very <00:29:12.581>expensive, <00:29:12.756>and

499
00:29:15.156 --> 00:29:19.036
<00:29:15.156>that <00:29:15.272>you <00:29:15.389>don't <00:29:15.505>have <00:29:15.622>the <00:29:15.739>hand. <00:29:15.856>So <00:29:15.972>if <00:29:16.089>you <00:29:16.206>build <00:29:16.322>your <00:29:16.439>entire <00:29:16.556>strategy

500
00:29:19.156 --> 00:29:19.736
relying

501
00:29:21.196 --> 00:29:25.136
<00:29:21.196>on <00:29:21.396>your <00:29:21.596>product, <00:29:21.795>your <00:29:21.995>solution, <00:29:22.196>using <00:29:22.396>their <00:29:22.596>APIs,

502
00:29:25.436 --> 00:29:27.416
<00:29:25.436>it's <00:29:25.716>wonderful. <00:29:25.995>It <00:29:26.275>works <00:29:26.555>very <00:29:26.836>well.

503
00:29:27.516 --> 00:29:29.776
<00:29:27.516>But <00:29:27.716>at <00:29:27.916>any <00:29:28.116>time, <00:29:28.316>they <00:29:28.516>can <00:29:28.716>block <00:29:28.916>you.

504
00:29:29.916 --> 00:29:30.476
<00:29:29.916>They <00:29:30.420>can

505
00:29:32.056 --> 00:29:34.156
<00:29:32.056>change <00:29:32.336>the <00:29:32.616>conditions, <00:29:32.896>change <00:29:33.176>the <00:29:33.456>price.

506
00:29:34.256 --> 00:29:38.046
<00:29:34.256>So <00:29:34.383>you <00:29:34.510>have <00:29:34.637>to <00:29:34.765>handle <00:29:34.892>that. <00:29:35.019>And <00:29:35.146>so <00:29:35.274>this <00:29:35.401>performance <00:29:35.528>you <00:29:35.656>will

507
00:29:38.136 --> 00:29:40.896
<00:29:38.136>have <00:29:38.336>with <00:29:38.536>them <00:29:38.735>comes <00:29:38.936>at <00:29:39.136>a <00:29:39.336>cost <00:29:39.536>and

508
00:29:42.556 --> 00:29:46.436
<00:29:42.556>removes <00:29:42.836>freedom <00:29:43.116>of <00:29:43.396>use. <00:29:43.676>Okay. <00:29:43.956>So

509
00:29:46.506 --> 00:29:50.356
<00:29:46.506>on <00:29:46.661>these <00:29:46.817>three <00:29:46.972>categories <00:29:47.128>of <00:29:47.283>AI <00:29:47.439>usage, <00:29:47.594>always <00:29:47.750>check <00:29:47.906>the

510
00:29:50.676 --> 00:29:54.636
<00:29:50.676>commercial <00:29:50.909>condition, <00:29:51.142>the <00:29:51.376>redistribution <00:29:51.609>rights, <00:29:51.842>and <00:29:52.076>I

511
00:29:54.656 --> 00:29:57.676
<00:29:54.656>would <00:29:54.796>say <00:29:54.936>the <00:29:55.076>model <00:29:55.216>output <00:29:55.356>restrictions <00:29:55.495>when <00:29:55.636>it <00:29:55.775>comes <00:29:55.916>with <00:29:56.056>API.

512
00:29:57.736 --> 00:30:00.856
<00:29:57.736>But <00:29:57.936>some <00:29:58.136>also <00:29:58.336>stuff <00:29:58.536>you <00:29:58.736>can <00:29:58.936>find <00:29:59.136>on

513
00:30:02.116 --> 00:30:05.576
<00:30:02.116>Hugging <00:30:02.316>Face. <00:30:02.516>Sometimes <00:30:02.716>you <00:30:02.916>click <00:30:03.116>too <00:30:03.316>fast <00:30:03.516>to

514
00:30:05.646 --> 00:30:09.616
<00:30:05.646>accept <00:30:05.745>and <00:30:05.846>be <00:30:05.946>able <00:30:06.046>to <00:30:06.146>use <00:30:06.245>and <00:30:06.346>so <00:30:06.446>on. <00:30:06.546>But <00:30:06.646>if <00:30:06.745>you <00:30:06.846>look <00:30:06.946>a <00:30:07.046>bit

515
00:30:09.676 --> 00:30:13.616
<00:30:09.676>deeper <00:30:09.792>in <00:30:09.909>their <00:30:10.025>license, <00:30:10.142>you <00:30:10.259>can <00:30:10.376>have <00:30:10.492>also <00:30:10.609>some <00:30:10.726>restriction <00:30:10.842>on <00:30:10.959>what <00:30:11.076>you

516
00:30:13.676 --> 00:30:17.116
<00:30:13.676>can <00:30:13.783>do <00:30:13.891>with <00:30:13.999>the <00:30:14.106>output <00:30:14.214>of <00:30:14.322>their <00:30:14.429>models. <00:30:14.537>So <00:30:14.645>have <00:30:14.752>a <00:30:14.860>look <00:30:14.968>at <00:30:15.076>that.

517
00:30:18.196 --> 00:30:21.176
<00:30:18.196>Most <00:30:18.336>of <00:30:18.476>the <00:30:18.616>time <00:30:18.755>it's <00:30:18.896>really <00:30:19.035>easy <00:30:19.176>to <00:30:19.315>understand. <00:30:19.456>It's <00:30:19.596>boring.

518
00:30:21.316 --> 00:30:24.416
<00:30:21.316>It's <00:30:21.549>a <00:30:21.782>bit <00:30:22.016>long. <00:30:22.249>It's <00:30:22.482>written <00:30:22.716>by

519
00:30:24.476 --> 00:30:28.116
<00:30:24.476>lawyers. <00:30:24.826>But <00:30:25.176>typically <00:30:25.526>it's <00:30:25.876>okay.

520
00:30:28.896 --> 00:30:30.276
<00:30:28.896>You <00:30:29.206>should <00:30:29.517>be <00:30:29.827>able <00:30:30.138>to

521
00:30:31.916 --> 00:30:33.896
<00:30:31.916>understand <00:30:32.196>and <00:30:32.476>see <00:30:32.755>easily <00:30:33.035>the <00:30:33.316>restriction.

522
00:30:34.016 --> 00:30:37.996
<00:30:34.016>And <00:30:34.123>just <00:30:34.231>in <00:30:34.339>case, <00:30:34.446>if <00:30:34.554>you <00:30:34.662>have <00:30:34.769>a <00:30:34.877>legal <00:30:34.985>team, <00:30:35.092>give <00:30:35.200>them <00:30:35.308>the <00:30:35.416>document,

523
00:30:38.056 --> 00:30:39.936
<00:30:38.056>and <00:30:38.196>they <00:30:38.336>will <00:30:38.476>tell <00:30:38.616>you. <00:30:38.756>Okay, <00:30:38.896>and <00:30:39.036>then <00:30:39.176>you <00:30:39.316>add <00:30:39.456>that.

524
00:30:40.096 --> 00:30:43.776
<00:30:40.096>Again, <00:30:40.251>you <00:30:40.407>add <00:30:40.562>that <00:30:40.718>to <00:30:40.873>your <00:30:41.029>CI/CD <00:30:41.184>and <00:30:41.340>so <00:30:41.496>on,

525
00:30:43.856 --> 00:30:44.696
<00:30:43.856>and <00:30:44.234>you're <00:30:44.611>done.

526
00:30:46.816 --> 00:30:47.656
<00:30:46.816>So <00:30:47.572>conclusion.

527
00:30:48.836 --> 00:30:52.096
<00:30:48.836>Making <00:30:49.069>compliance <00:30:49.302>scalable <00:30:49.536>is <00:30:49.769>really <00:30:50.002>possible <00:30:50.236>because

528
00:30:52.116 --> 00:30:55.236
<00:30:52.116>thanks <00:30:52.349>to <00:30:52.582>other <00:30:52.816>developers, <00:30:53.049>tools <00:30:53.282>are <00:30:53.516>getting.

529
00:30:55.356 --> 00:30:58.296
<00:30:55.356>So <00:30:55.531>the <00:30:55.706>first <00:30:55.881>thing <00:30:56.056>is <00:30:56.231>to <00:30:56.406>use <00:30:56.581>the <00:30:56.756>SPDX

530
00:30:58.976 --> 00:31:02.836
<00:30:58.976>framework. <00:30:59.209>SPDX, <00:30:59.442>so <00:30:59.676>it's <00:30:59.909>been <00:31:00.142>developed <00:31:00.376>by

531
00:31:02.876 --> 00:31:03.596
<00:31:02.876>the <00:31:03.524>Debian

532
00:31:04.476 --> 00:31:07.780
<00:31:04.476>developers. <00:31:04.676>And <00:31:04.876>What <00:31:05.076>they <00:31:05.276>do <00:31:05.476>is <00:31:05.676>that <00:31:05.876>they

533
00:31:07.840 --> 00:31:10.800
<00:31:07.840>created <00:31:08.189>a <00:31:08.540>tag <00:31:08.889>for <00:31:09.240>each

534
00:31:11.700 --> 00:31:14.859
<00:31:11.700>license <00:31:11.900>and <00:31:12.100>their <00:31:12.300>versions. <00:31:12.500>And <00:31:12.700>it <00:31:12.900>should <00:31:13.100>come.

535
00:31:14.960 --> 00:31:17.740
<00:31:14.960>It's <00:31:15.310>been <00:31:15.660>adopted <00:31:16.010>widely <00:31:16.360>now.

536
00:31:18.840 --> 00:31:21.360
<00:31:18.840>So <00:31:19.073>it <00:31:19.306>should <00:31:19.540>be <00:31:19.773>available <00:31:20.006>in <00:31:20.240>most

537
00:31:22.180 --> 00:31:25.920
<00:31:22.180>software <00:31:22.307>you <00:31:22.434>will <00:31:22.561>find. <00:31:22.689>If <00:31:22.816>you <00:31:22.943>find <00:31:23.070>software <00:31:23.198>that <00:31:23.325>is <00:31:23.452>not <00:31:23.580>available

538
00:31:25.960 --> 00:31:29.940
<00:31:25.960>with <00:31:26.115>SPDX <00:31:26.271>in <00:31:26.426>the <00:31:26.582>files <00:31:26.737>or <00:31:26.893>license <00:31:27.048>files <00:31:27.204>or <00:31:27.360>whatever,

539
00:31:31.160 --> 00:31:35.060
<00:31:31.160>file <00:31:31.276>a <00:31:31.393>bug <00:31:31.510>report, <00:31:31.626>ask <00:31:31.743>that, <00:31:31.860>explain <00:31:31.976>what <00:31:32.093>it <00:31:32.210>is, <00:31:32.326>and <00:31:32.443>you <00:31:32.560>should

540
00:31:35.120 --> 00:31:38.330
<00:31:35.120>have <00:31:35.275>a <00:31:35.431>new <00:31:35.586>version <00:31:35.742>with <00:31:35.897>that. <00:31:36.053>It <00:31:36.208>can <00:31:36.364>help <00:31:36.520>because

541
00:31:39.040 --> 00:31:43.030
<00:31:39.040>when <00:31:39.167>you <00:31:39.294>have <00:31:39.421>SPDX <00:31:39.549>in <00:31:39.676>software, <00:31:39.803>in <00:31:39.930>your <00:31:40.058>dependencies, <00:31:40.185>we'd <00:31:40.312>say, <00:31:40.440>and

542
00:31:43.160 --> 00:31:45.969
<00:31:43.160>what <00:31:43.335>you <00:31:43.510>write, <00:31:43.685>you <00:31:43.860>can <00:31:44.035>use <00:31:44.210>tools <00:31:44.385>like <00:31:44.560>Tern.

543
00:31:47.440 --> 00:31:51.130
<00:31:47.440>And <00:31:47.673>Tern <00:31:47.906>is <00:31:48.140>made <00:31:48.373>to <00:31:48.606>understand <00:31:48.840>and

544
00:31:51.280 --> 00:31:54.890
<00:31:51.280>read <00:31:51.480>the <00:31:51.680>layers, <00:31:51.879>the <00:31:52.080>dependencies, <00:31:52.280>and <00:31:52.480>dependencies, <00:31:52.680>and

545
00:31:54.940 --> 00:31:57.860
<00:31:54.940>dependencies. <00:31:55.220>Particularly <00:31:55.500>very <00:31:55.780>good <00:31:56.060>with <00:31:56.340>containers.

546
00:31:57.940 --> 00:32:00.780
<00:31:57.940>It's <00:31:58.080>been <00:31:58.220>developed <00:31:58.360>with <00:31:58.500>that. <00:31:58.640>You <00:31:58.780>can <00:31:58.920>find <00:31:59.060>it <00:31:59.200>on <00:31:59.340>GitHub.

547
00:32:01.580 --> 00:32:02.920
<00:32:01.580>The <00:32:01.982>documentation <00:32:02.384>is <00:32:02.786>wonderful.

548
00:32:04.320 --> 00:32:07.980
<00:32:04.320>But <00:32:04.436>I <00:32:04.553>would <00:32:04.669>say <00:32:04.786>if <00:32:04.903>you <00:32:05.020>have, <00:32:05.136>I <00:32:05.253>would <00:32:05.370>say, <00:32:05.486>a <00:32:05.603>step-by-step <00:32:05.720>strategy.

549
00:32:08.120 --> 00:32:11.660
<00:32:08.120>So <00:32:08.320>first, <00:32:08.520>involve <00:32:08.719>your <00:32:08.919>legal <00:32:09.120>teams <00:32:09.320>early. <00:32:09.520>Okay?

550
00:32:12.380 --> 00:32:15.760
<00:32:12.380>It <00:32:12.555>doesn't <00:32:12.730>require <00:32:12.905>a <00:32:13.080>lot <00:32:13.255>of <00:32:13.430>time <00:32:13.605>from <00:32:13.780>them.

551
00:32:16.400 --> 00:32:20.140
<00:32:16.400>It's <00:32:16.540>not <00:32:16.680>annoying, <00:32:16.820>and <00:32:16.960>really, <00:32:17.100>it <00:32:17.240>will <00:32:17.380>save <00:32:17.520>you <00:32:17.660>a <00:32:17.800>lot

552
00:32:20.220 --> 00:32:23.880
<00:32:20.220>of <00:32:20.453>burden <00:32:20.686>and <00:32:20.920>problems <00:32:21.153>in <00:32:21.386>near <00:32:21.620>future.

553
00:32:24.540 --> 00:32:27.780
<00:32:24.540>If <00:32:24.715>you <00:32:24.889>just, <00:32:25.065>as <00:32:25.240>I <00:32:25.415>said <00:32:25.590>earlier, <00:32:25.764>give <00:32:25.940>them

554
00:32:28.440 --> 00:32:32.400
<00:32:28.440>the <00:32:28.580>terms, <00:32:28.720>they <00:32:28.860>document <00:32:29.000>it, <00:32:29.140>they <00:32:29.280>write <00:32:29.420>something <00:32:29.560>for <00:32:29.700>you <00:32:29.840>in

555
00:32:32.440 --> 00:32:34.520
<00:32:32.440>the <00:32:32.720>documentation, <00:32:33.000>in <00:32:33.280>the <00:32:33.560>developer <00:32:33.840>documentation.

556
00:32:34.820 --> 00:32:37.400
<00:32:34.820>This <00:32:34.960>is <00:32:35.100>okay, <00:32:35.240>this <00:32:35.379>is <00:32:35.520>not <00:32:35.659>okay, <00:32:35.800>and <00:32:35.939>you <00:32:36.080>follow <00:32:36.220>that.

557
00:32:37.600 --> 00:32:41.480
<00:32:37.600>And <00:32:37.755>yes, <00:32:37.911>this <00:32:38.066>is <00:32:38.222>a <00:32:38.377>second <00:32:38.533>step. <00:32:38.688>You <00:32:38.844>document <00:32:39.000>that

558
00:32:41.640 --> 00:32:45.340
<00:32:41.640>for <00:32:41.815>the <00:32:41.990>developers <00:32:42.165>internally <00:32:42.340>or <00:32:42.515>externally <00:32:42.690>for <00:32:42.865>contributors <00:32:43.040>or

559
00:32:45.360 --> 00:32:49.200
<00:32:45.360>whatever. <00:32:45.500>You <00:32:45.639>document <00:32:45.780>what <00:32:45.919>is <00:32:46.060>allowed, <00:32:46.199>what <00:32:46.340>is <00:32:46.479>forbidden, <00:32:46.620>which <00:32:46.760>is

560
00:32:49.280 --> 00:32:51.240
<00:32:49.280>licensees <00:32:49.746>or <00:32:50.213>other <00:32:50.680>criterias.

561
00:32:52.180 --> 00:32:56.040
<00:32:52.180>For <00:32:52.320>example, <00:32:52.460>I <00:32:52.600>know <00:32:52.740>some <00:32:52.880>companies <00:32:53.020>that <00:32:53.160>refuse <00:32:53.300>to <00:32:53.440>have <00:32:53.580>dependencies

562
00:32:56.460 --> 00:32:59.740
<00:32:56.460>maintained <00:32:56.615>by <00:32:56.771>only <00:32:56.926>one <00:32:57.082>people. <00:32:57.237>Because <00:32:57.393>of <00:32:57.548>the <00:32:57.704>risk <00:32:57.860>factor.

563
00:32:59.800 --> 00:33:01.400
<00:32:59.800>If <00:33:00.149>this <00:33:00.500>guy <00:33:00.850>disappear, <00:33:01.200>then

564
00:33:02.340 --> 00:33:04.420
<00:33:02.340>nobody <00:33:02.573>will <00:33:02.806>maintain <00:33:03.040>that <00:33:03.273>in <00:33:03.506>the <00:33:03.740>future.

565
00:33:05.000 --> 00:33:06.340
<00:33:05.000>So <00:33:05.402>build <00:33:05.803>a <00:33:06.206>criteria,

566
00:33:07.160 --> 00:33:09.050
<00:33:07.160>a <00:33:07.360>list <00:33:07.560>of <00:33:07.760>criterias, <00:33:07.960>and <00:33:08.160>build <00:33:08.360>with <00:33:08.560>that.

567
00:33:09.880 --> 00:33:11.880
<00:33:09.880>So <00:33:10.230>once <00:33:10.580>you <00:33:10.930>have <00:33:11.280>that,

568
00:33:13.020 --> 00:33:16.589
<00:33:13.020>put <00:33:13.220>that <00:33:13.420>into <00:33:13.620>your <00:33:13.820>continuous <00:33:14.020>integration <00:33:14.220>and <00:33:14.420>continuous

569
00:33:16.720 --> 00:33:20.460
<00:33:16.720>delivery <00:33:16.953>with <00:33:17.186>tests <00:33:17.420>and <00:33:17.653>checks. <00:33:17.886>Set <00:33:18.120>warnings.

570
00:33:20.500 --> 00:33:24.120
<00:33:20.500>If, <00:33:20.640>for <00:33:20.780>example, <00:33:20.920>at <00:33:21.060>one <00:33:21.200>point <00:33:21.340>you <00:33:21.480>detect <00:33:21.620>a <00:33:21.760>dependency <00:33:21.900>that

571
00:33:24.620 --> 00:33:28.320
<00:33:24.620>does <00:33:24.760>not <00:33:24.899>fit <00:33:25.040>the <00:33:25.179>rules <00:33:25.320>you've <00:33:25.459>wrote <00:33:25.600>in <00:33:25.739>your <00:33:25.879>documentation, <00:33:26.020>yeah,

572
00:33:28.580 --> 00:33:30.300
<00:33:28.580>it's <00:33:28.813>time <00:33:29.046>to <00:33:29.280>find <00:33:29.513>a <00:33:29.746>workaround. <00:33:29.980>Okay?

573
00:33:31.380 --> 00:33:35.160
<00:33:31.380>With <00:33:31.496>that, <00:33:31.613>thanks <00:33:31.730>to <00:33:31.846>the <00:33:31.963>CI <00:33:32.080>and <00:33:32.196>CD, <00:33:32.313>you <00:33:32.430>can <00:33:32.546>also <00:33:32.663>generate <00:33:32.780>software

574
00:33:35.260 --> 00:33:38.900
<00:33:35.260>bill <00:33:35.387>of <00:33:35.514>material <00:33:35.641>automatically, <00:33:35.769>and <00:33:35.896>Tern <00:33:36.023>typically <00:33:36.150>can <00:33:36.278>do <00:33:36.405>that <00:33:36.532>for <00:33:36.660>Docker

575
00:33:38.940 --> 00:33:39.280
image.

576
00:33:41.480 --> 00:33:42.480
<00:33:41.480>One <00:33:41.780>advice <00:33:42.080>I <00:33:42.380>gave

577
00:33:43.320 --> 00:33:46.840
<00:33:43.320>at <00:33:43.475>the <00:33:43.631>beginning <00:33:43.786>is <00:33:43.942>archive <00:33:44.097>and <00:33:44.253>build <00:33:44.408>from <00:33:44.564>a <00:33:44.720>private

578
00:33:46.900 --> 00:33:50.620
<00:33:46.900>repository. <00:33:47.075>Always <00:33:47.250>archive <00:33:47.425>everything, <00:33:47.600>because <00:33:47.775>at <00:33:47.950>one <00:33:48.125>point, <00:33:48.300>a

579
00:33:50.640 --> 00:33:54.500
<00:33:50.640>customer <00:33:50.815>maybe <00:33:50.990>need <00:33:51.165>the <00:33:51.340>sources <00:33:51.515>of <00:33:51.690>something, <00:33:51.865>but <00:33:52.040>in

580
00:33:54.540 --> 00:33:55.559
<00:33:54.540>two <00:33:54.998>years. <00:33:55.457>Okay?

581
00:33:56.620 --> 00:34:00.220
<00:33:56.620>And <00:33:56.820>you <00:33:57.020>build <00:33:57.219>based <00:33:57.419>on <00:33:57.620>Docker <00:33:57.820>Hub, <00:33:58.020>and

582
00:34:00.260 --> 00:34:04.020
<00:34:00.260>this <00:34:00.435>version <00:34:00.610>is <00:34:00.785>old, <00:34:00.960>is <00:34:01.135>not <00:34:01.310>available <00:34:01.485>anymore <00:34:01.660>in

583
00:34:04.220 --> 00:34:07.120
<00:34:04.220>any <00:34:04.500>public <00:34:04.780>repository, <00:34:05.060>you're <00:34:05.340>screwed. <00:34:05.620>Okay?

584
00:34:08.261 --> 00:34:11.940
<00:34:08.261>So <00:34:08.436>archive <00:34:08.610>everything. <00:34:08.786>You <00:34:08.960>archive <00:34:09.136>the <00:34:09.311>software, <00:34:09.485>the <00:34:09.661>binaries,

585
00:34:12.380 --> 00:34:15.460
<00:34:12.380>the <00:34:12.535>image <00:34:12.691>or <00:34:12.846>whatever <00:34:13.002>you <00:34:13.157>use, <00:34:13.313>and <00:34:13.468>their <00:34:13.624>source <00:34:13.780>code.

586
00:34:16.060 --> 00:34:20.040
<00:34:16.060>And <00:34:16.199>the <00:34:16.340>good <00:34:16.480>practice, <00:34:16.620>as <00:34:16.759>I <00:34:16.900>said, <00:34:17.040>open <00:34:17.179>source.apple.com <00:34:17.320>is <00:34:17.460>a

587
00:34:20.100 --> 00:34:22.821
<00:34:20.100>very <00:34:20.299>good <00:34:20.500>example. <00:34:20.699>Create <00:34:20.900>a <00:34:21.100>website <00:34:21.299>or <00:34:21.500>something.

588
00:34:23.080 --> 00:34:27.060
<00:34:23.080>You <00:34:23.235>can <00:34:23.391>even <00:34:23.546>just <00:34:23.702>have <00:34:23.857>a <00:34:24.013>GitHub <00:34:24.168>website <00:34:24.324>or <00:34:24.480>whatever,

589
00:34:28.000 --> 00:34:31.720
<00:34:28.000>so <00:34:28.175>it's <00:34:28.350>easy <00:34:28.525>to <00:34:28.699>host. <00:34:28.875>And <00:34:29.050>then <00:34:29.225>also, <00:34:29.400>you

590
00:34:31.740 --> 00:34:35.440
<00:34:31.739>decide <00:34:31.856>if <00:34:31.973>it's <00:34:32.089>public <00:34:32.206>or <00:34:32.323>private. <00:34:32.439>I <00:34:32.556>said <00:34:32.673>private <00:34:32.790>repository <00:34:32.906>because <00:34:33.023>it's <00:34:33.139>yours,

591
00:34:35.520 --> 00:34:39.420
<00:34:35.520>but <00:34:35.602>if <00:34:35.684>you <00:34:35.767>want <00:34:35.849>to <00:34:35.931>make <00:34:36.014>it <00:34:36.096>public <00:34:36.178>so <00:34:36.261>anyone <00:34:36.343>can <00:34:36.425>build <00:34:36.508>from <00:34:36.590>that, <00:34:36.672>of <00:34:36.755>course <00:34:36.837>you <00:34:36.920>can.

592
00:34:40.120 --> 00:34:43.640
<00:34:40.120>And <00:34:40.236>the <00:34:40.353>last <00:34:40.469>step, <00:34:40.586>I <00:34:40.703>would <00:34:40.819>say, <00:34:40.936>require, <00:34:41.053>I <00:34:41.170>would <00:34:41.286>say, <00:34:41.403>a <00:34:41.520>mature

593
00:34:44.420 --> 00:34:45.281
organization

594
00:34:46.801 --> 00:34:49.261
<00:34:46.801>when <00:34:46.956>it <00:34:47.112>comes <00:34:47.267>to <00:34:47.423>open <00:34:47.578>source <00:34:47.734>and <00:34:47.889>license <00:34:48.045>and <00:34:48.201>stuff.

595
00:34:49.940 --> 00:34:51.900
<00:34:49.940>Create <00:34:50.220>an <00:34:50.500>open <00:34:50.780>source <00:34:51.060>program <00:34:51.340>office.

596
00:34:52.100 --> 00:34:54.841
<00:34:52.100>Doesn't <00:34:52.299>need <00:34:52.500>to <00:34:52.699>be <00:34:52.900>a <00:34:53.100>specific <00:34:53.299>dedicated <00:34:53.500>team.

597
00:34:55.341 --> 00:34:59.240
<00:34:55.341>What <00:34:55.434>you <00:34:55.527>need <00:34:55.621>is <00:34:55.714>to <00:34:55.807>have <00:34:55.900>a <00:34:55.994>bunch <00:34:56.087>of <00:34:56.181>people, <00:34:56.274>people <00:34:56.367>like <00:34:56.460>me, <00:34:56.554>for <00:34:56.647>example, <00:34:56.741>who

598
00:34:59.300 --> 00:35:02.420
<00:34:59.300>are <00:34:59.475>not <00:34:59.650>really <00:34:59.825>developers <00:35:00.000>but <00:35:00.175>work <00:35:00.350>with <00:35:00.525>technical <00:35:00.700>people.

599
00:35:02.820 --> 00:35:03.840
<00:35:02.820>Someone <00:35:03.279>from <00:35:03.738>legal,

600
00:35:04.960 --> 00:35:08.000
<00:35:04.960>maybe <00:35:05.135>someone <00:35:05.310>from <00:35:05.485>the <00:35:05.660>strategic <00:35:05.835>team <00:35:06.010>of <00:35:06.185>the <00:35:06.360>company,

601
00:35:08.760 --> 00:35:10.480
<00:35:08.760>working <00:35:09.040>together <00:35:09.320>from <00:35:09.600>time <00:35:09.880>to <00:35:10.160>time.

602
00:35:11.680 --> 00:35:11.960
And

603
00:35:12.780 --> 00:35:15.160
<00:35:12.780>let's <00:35:12.980>say <00:35:13.180>a <00:35:13.380>group <00:35:13.580>chat <00:35:13.780>in <00:35:13.980>Teams <00:35:14.180>or

604
00:35:16.200 --> 00:35:17.620
<00:35:16.200>Slack <00:35:17.478>where

605
00:35:19.040 --> 00:35:22.560
<00:35:19.040>people <00:35:19.240>can <00:35:19.440>be <00:35:19.640>free <00:35:19.840>to <00:35:20.040>ask <00:35:20.240>questions, <00:35:20.440>send

606
00:35:22.600 --> 00:35:25.140
<00:35:22.600>documents <00:35:22.755>and <00:35:22.911>stuff, <00:35:23.066>you <00:35:23.222>study <00:35:23.377>that, <00:35:23.533>you <00:35:23.688>create <00:35:23.844>an <00:35:24.000>answer.

607
00:35:25.399 --> 00:35:28.560
<00:35:25.399>And <00:35:25.515>the <00:35:25.632>key <00:35:25.749>here <00:35:25.865>again, <00:35:25.982>is <00:35:26.098>then <00:35:26.215>to <00:35:26.332>document <00:35:26.449>the <00:35:26.565>output <00:35:26.682>of <00:35:26.799>that.

608
00:35:29.080 --> 00:35:31.820
<00:35:29.080>Just <00:35:29.279>don't <00:35:29.480>stay <00:35:29.680>on <00:35:29.880>the <00:35:30.080>chat <00:35:30.279>or <00:35:30.480>whatever.

609
00:35:31.940 --> 00:35:35.540
<00:35:31.940>Once <00:35:32.140>some <00:35:32.340>decision <00:35:32.540>is <00:35:32.740>taken, <00:35:32.940>document <00:35:33.140>it <00:35:33.340>in

610
00:35:35.960 --> 00:35:38.220
<00:35:35.960>the <00:35:36.193>developer <00:35:36.426>documentation, <00:35:36.660>in <00:35:36.893>the <00:35:37.126>user <00:35:37.360>documentation,

611
00:35:39.080 --> 00:35:42.440
<00:35:39.080>so <00:35:39.235>it's <00:35:39.391>not <00:35:39.546>lost. <00:35:39.702>So <00:35:39.857>really, <00:35:40.013>my <00:35:40.168>point <00:35:40.324>is <00:35:40.480>that

612
00:35:42.540 --> 00:35:46.280
<00:35:42.540>developers <00:35:42.715>can <00:35:42.890>prevent <00:35:43.065>risk <00:35:43.240>and <00:35:43.415>not <00:35:43.590>just <00:35:43.765>fix <00:35:43.940>it.

613
00:35:46.480 --> 00:35:50.100
<00:35:46.480>It's <00:35:46.635>always <00:35:46.791>the <00:35:46.946>same <00:35:47.102>with <00:35:47.257>architecture, <00:35:47.413>product <00:35:47.568>management <00:35:47.724>or <00:35:47.880>whatever.

614
00:35:50.600 --> 00:35:53.460
<00:35:50.600>But <00:35:50.799>developers <00:35:51.000>have <00:35:51.200>a <00:35:51.400>role <00:35:51.600>because <00:35:51.799>they <00:35:52.000>choose

615
00:35:54.480 --> 00:35:57.900
<00:35:54.480>the <00:35:54.655>dependencies, <00:35:54.830>the <00:35:55.005>libraries, <00:35:55.180>the <00:35:55.355>software <00:35:55.530>they <00:35:55.705>will <00:35:55.880>integrate,

616
00:35:58.060 --> 00:36:01.800
<00:35:58.060>particularly <00:35:58.235>at <00:35:58.410>an <00:35:58.585>era <00:35:58.759>where <00:35:58.935>using <00:35:59.110>open <00:35:59.285>source <00:35:59.460>components

617
00:36:02.000 --> 00:36:05.680
<00:36:02.000>is <00:36:02.200>just <00:36:02.400>the <00:36:02.600>norm. <00:36:02.800>So <00:36:03.000>developers <00:36:03.200>have <00:36:03.400>a

618
00:36:05.720 --> 00:36:09.500
<00:36:05.720>role, <00:36:05.919>have <00:36:06.120>a <00:36:06.319>responsibility <00:36:06.520>here, <00:36:06.720>and <00:36:06.919>really, <00:36:07.120>developers,

619
00:36:09.680 --> 00:36:12.640
<00:36:09.680>it <00:36:09.835>will <00:36:09.991>save <00:36:10.146>you <00:36:10.302>time <00:36:10.457>to <00:36:10.613>do <00:36:10.768>that <00:36:10.924>in <00:36:11.080>advance.

620
00:36:12.680 --> 00:36:12.800
So

621
00:36:13.860 --> 00:36:15.500
<00:36:13.860>yeah, <00:36:14.093>it's <00:36:14.326>not <00:36:14.560>something <00:36:14.793>you <00:36:15.026>should <00:36:15.260>avoid.

622
00:36:17.540 --> 00:36:21.340
<00:36:17.540>I <00:36:17.680>like <00:36:17.820>this <00:36:17.960>kind <00:36:18.100>of <00:36:18.240>a <00:36:18.380>quote, <00:36:18.520>"Compliance <00:36:18.660>is <00:36:18.800>not <00:36:18.940>about

623
00:36:21.480 --> 00:36:25.320
<00:36:21.480>blocking <00:36:21.635>innovation." <00:36:21.791>Okay? <00:36:21.946>"It's <00:36:22.102>about <00:36:22.257>making <00:36:22.413>sure <00:36:22.568>what <00:36:22.724>we <00:36:22.880>build

624
00:36:25.400 --> 00:36:29.160
<00:36:25.400>can <00:36:25.575>safely <00:36:25.750>scale, <00:36:25.925>ship, <00:36:26.100>and <00:36:26.275>succeed <00:36:26.450>in <00:36:26.625>the <00:36:26.800>real

625
00:36:29.240 --> 00:36:31.280
<00:36:29.240>world." <00:36:29.706>So <00:36:30.173>that's <00:36:30.640>it.

626
00:36:33.000 --> 00:36:36.760
<00:36:33.000>It's <00:36:33.140>just <00:36:33.280>to <00:36:33.420>make <00:36:33.560>sure <00:36:33.700>that <00:36:33.840>everybody <00:36:33.980>can <00:36:34.120>use <00:36:34.260>your <00:36:34.400>software.

627
00:36:36.849 --> 00:36:40.480
<00:36:36.849>And <00:36:37.004>by <00:36:37.160>everybody, <00:36:37.315>I <00:36:37.471>mean <00:36:37.626>people, <00:36:37.782>but <00:36:37.937>also <00:36:38.093>organization, <00:36:38.249>enterprise.

628
00:36:41.600 --> 00:36:44.600
<00:36:41.600>I <00:36:41.799>don't <00:36:42.000>know <00:36:42.200>whoever <00:36:42.400>are <00:36:42.600>your <00:36:42.799>end <00:36:43.000>users.

629
00:36:45.180 --> 00:36:48.240
<00:36:45.180>Or <00:36:45.307>if <00:36:45.434>they <00:36:45.561>are <00:36:45.689>paying <00:36:45.816>or <00:36:45.943>if <00:36:46.070>it's <00:36:46.198>free <00:36:46.325>of <00:36:46.452>charge, <00:36:46.580>whatever.

630
00:36:50.080 --> 00:36:53.100
<00:36:50.080>But <00:36:50.235>you <00:36:50.391>have <00:36:50.546>to <00:36:50.702>ensure <00:36:50.857>that <00:36:51.013>you're <00:36:51.168>not <00:36:51.324>creating <00:36:51.480>a

631
00:36:53.140 --> 00:36:54.240
responsibility

632
00:36:55.180 --> 00:36:58.780
<00:36:55.180>when <00:36:55.355>you <00:36:55.529>ship. <00:36:55.705>Particularly <00:36:55.879>with <00:36:56.055>open <00:36:56.230>source, <00:36:56.404>responsibility <00:36:56.580>is

633
00:36:58.900 --> 00:37:02.820
<00:36:58.900>given <00:36:59.075>to <00:36:59.250>the <00:36:59.425>end <00:36:59.600>users. <00:36:59.775>So <00:36:59.950>you <00:37:00.125>don't <00:37:00.300>want

634
00:37:03.120 --> 00:37:06.540
<00:37:03.120>to <00:37:03.319>create <00:37:03.520>a <00:37:03.720>problem <00:37:03.920>for <00:37:04.120>your <00:37:04.319>end <00:37:04.520>user.

635
00:37:06.630 --> 00:37:08.490
<00:37:06.630>So <00:37:06.830>fix <00:37:07.030>that <00:37:07.230>in <00:37:07.430>amount. <00:37:07.630>That's <00:37:07.830>the <00:37:08.030>key.

636
00:37:09.580 --> 00:37:09.800
Yeah.

637
00:37:12.320 --> 00:37:13.540
<00:37:12.320>We <00:37:12.686>can <00:37:13.052>build <00:37:13.418>safely,

638
00:37:14.500 --> 00:37:16.440
<00:37:14.500>scale, <00:37:14.850>ship, <00:37:15.200>and <00:37:15.550>succeed. <00:37:15.900>Okay.

639
00:37:17.440 --> 00:37:20.960
<00:37:17.440>About <00:37:17.640>me, <00:37:17.840>a <00:37:18.040>quick <00:37:18.240>word. <00:37:18.440>So <00:37:18.640>I'm <00:37:18.840>Antoine

640
00:37:21.000 --> 00:37:24.500
<00:37:21.000>Thomas. <00:37:21.155>This <00:37:21.311>is <00:37:21.466>one <00:37:21.622>of <00:37:21.777>my <00:37:21.933>avatar <00:37:22.088>you <00:37:22.244>will <00:37:22.400>find

641
00:37:24.960 --> 00:37:28.780
<00:37:24.960>currently <00:37:25.160>on <00:37:25.360>the <00:37:25.560>internet. <00:37:25.760>I'm <00:37:25.960>a <00:37:26.160>community <00:37:26.360>manager

642
00:37:28.800 --> 00:37:30.900
<00:37:28.800>in <00:37:29.000>charge <00:37:29.200>of <00:37:29.400>open <00:37:29.600>source <00:37:29.800>solutions <00:37:30.000>at <00:37:30.200>Hailong.

643
00:37:31.020 --> 00:37:32.080
<00:37:31.020>I've <00:37:31.497>been <00:37:31.974>involved

644
00:37:33.260 --> 00:37:36.560
<00:37:33.260>in <00:37:33.435>the <00:37:33.610>last <00:37:33.785>25 <00:37:33.960>years <00:37:34.135>into <00:37:34.310>open <00:37:34.485>source <00:37:34.660>communities.

645
00:37:37.780 --> 00:37:40.460
<00:37:37.780>I've <00:37:37.980>been <00:37:38.180>co-founding <00:37:38.380>Ubuntu <00:37:38.580>Studio <00:37:38.780>in <00:37:38.980>the <00:37:39.180>past.

646
00:37:40.580 --> 00:37:43.920
<00:37:40.580>I <00:37:40.813>work <00:37:41.046>for <00:37:41.279>Bonitasoft, <00:37:41.513>the <00:37:41.746>Eclipse <00:37:41.980>Foundations,

647
00:37:44.620 --> 00:37:47.080
<00:37:44.620>PrestaShop, <00:37:45.086>and <00:37:45.553>currently <00:37:46.020>Hailong.

648
00:37:47.580 --> 00:37:49.100
<00:37:47.580>I <00:37:48.948>speak

649
00:37:50.120 --> 00:37:54.020
<00:37:50.120>at <00:37:50.295>conferences. <00:37:50.470>I <00:37:50.645>wrote <00:37:50.819>a <00:37:50.995>couple <00:37:51.170>of <00:37:51.345>things <00:37:51.520>about

650
00:37:54.060 --> 00:37:57.640
<00:37:54.060>best <00:37:54.215>practices <00:37:54.371>and <00:37:54.526>other <00:37:54.682>things. <00:37:54.837>I <00:37:54.993>teach, <00:37:55.148>and <00:37:55.304>sometimes <00:37:55.460>I

651
00:37:57.760 --> 00:38:00.280
<00:37:57.760>advise <00:37:57.960>other <00:37:58.160>on <00:37:58.360>open <00:37:58.560>source <00:37:58.760>and <00:37:58.960>legal <00:37:59.160>compliance.

652
00:38:00.700 --> 00:38:03.340
<00:38:00.700>I'm <00:38:00.980>really <00:38:01.259>easy <00:38:01.540>to <00:38:01.819>reach. <00:38:02.100>So

653
00:38:04.180 --> 00:38:06.940
<00:38:04.180>you <00:38:04.379>can <00:38:04.580>find <00:38:04.779>me <00:38:04.980>on <00:38:05.180>LinkedIn, <00:38:05.379>on <00:38:05.580>X,

654
00:38:08.840 --> 00:38:12.520
<00:38:08.840>and <00:38:08.940>on <00:38:09.040>my <00:38:09.140>blog <00:38:09.240>you <00:38:09.340>will <00:38:09.440>find <00:38:09.540>some <00:38:09.640>portfolio <00:38:09.740>and <00:38:09.840>other <00:38:09.940>ways <00:38:10.040>to <00:38:10.140>contact <00:38:10.240>me.

655
00:38:13.380 --> 00:38:16.080
<00:38:13.380>So <00:38:13.555>don't <00:38:13.730>be <00:38:13.905>shy. <00:38:14.080>I'm <00:38:14.255>really <00:38:14.430>happy <00:38:14.605>to <00:38:14.780>exchange.

656
00:38:16.140 --> 00:38:19.840
<00:38:16.140>If <00:38:16.227>you <00:38:16.315>have <00:38:16.402>question, <00:38:16.490>by <00:38:16.577>the <00:38:16.665>way, <00:38:16.752>you <00:38:16.839>can <00:38:16.927>contact <00:38:17.015>me, <00:38:17.102>and <00:38:17.190>I <00:38:17.277>will <00:38:17.365>always <00:38:17.452>take <00:38:17.540>time

657
00:38:19.880 --> 00:38:20.300
<00:38:19.880>to <00:38:20.258>answer.

658
00:38:21.600 --> 00:38:24.380
<00:38:21.600>It <00:38:21.727>was <00:38:21.854>nice <00:38:21.981>to <00:38:22.109>give <00:38:22.236>this <00:38:22.363>talk, <00:38:22.490>and <00:38:22.618>see <00:38:22.745>you <00:38:22.872>next <00:38:23.000>year.