1 00:00:04,960 --> 00:00:20,000 [Music] 2 00:00:20,640 --> 00:00:25,519 hello oh the mic works okay great hello 3 00:00:23,680 --> 00:00:29,199 everyone welcome to the lightning talk 4 00:00:25,519 --> 00:00:30,519 session for uh the dev oops track um 5 00:00:29,199 --> 00:00:32,680 this is our first 6 00:00:30,519 --> 00:00:34,440 um time running lightning talks for Dev 7 00:00:32,680 --> 00:00:38,200 oops so there's going to be a lot of 8 00:00:34,440 --> 00:00:39,120 oopsies um but it's going to be fun 9 00:00:38,200 --> 00:00:44,440 who's 10 00:00:39,120 --> 00:00:50,160 ready yeah let's go Okay cool so 11 00:00:44,440 --> 00:00:52,879 um we are all good okay so um how is 12 00:00:50,160 --> 00:00:54,800 this going to work so uh we're going to 13 00:00:52,879 --> 00:00:58,280 introduce who's up on deck which in this 14 00:00:54,800 --> 00:01:02,239 case is James uh and then who is the 15 00:00:58,280 --> 00:01:02,239 next upcoming speaker which will will 16 00:01:03,600 --> 00:01:09,560 be in one of these 17 00:01:06,119 --> 00:01:11,920 tabs I found the tab oh so next up will 18 00:01:09,560 --> 00:01:15,119 be Pat so when I say next up I want you 19 00:01:11,920 --> 00:01:18,439 to be ready to come on and um connect to 20 00:01:15,119 --> 00:01:20,000 the podium Podium has a HDMI cable um 21 00:01:18,439 --> 00:01:22,439 please connect as quickly as possible we 22 00:01:20,000 --> 00:01:26,320 only have one um 23 00:01:22,439 --> 00:01:27,799 Podium uh and so the quicker you do it 24 00:01:26,320 --> 00:01:30,680 the less awkward silence there will be 25 00:01:27,799 --> 00:01:32,439 and the less improv I'll have to do cuz 26 00:01:30,680 --> 00:01:35,399 I'm not that good at 27 00:01:32,439 --> 00:01:38,840 improv uh but maybe I'll get better in 28 00:01:35,399 --> 00:01:41,600 this hour uh 29 00:01:38,840 --> 00:01:44,880 okay that's the spirit yeah let's go 30 00:01:41,600 --> 00:01:47,320 okay um yes it's very important to keep 31 00:01:44,880 --> 00:01:50,399 to time because we only have an hour and 32 00:01:47,320 --> 00:01:51,960 we have eight amazing speakers uh and if 33 00:01:50,399 --> 00:01:53,600 it takes too long and you go over five 34 00:01:51,960 --> 00:02:00,280 minutes we're going to throw you off the 35 00:01:53,600 --> 00:02:01,680 stage um I will I won't be able to um 36 00:02:00,280 --> 00:02:05,560 okay uh so there'll be a timer for 37 00:02:01,680 --> 00:02:08,879 speakers which um Justin will be um 38 00:02:05,560 --> 00:02:11,480 showing you uh and in the last 10 39 00:02:08,879 --> 00:02:13,720 seconds there'll be um we want everyone 40 00:02:11,480 --> 00:02:17,120 to be doing finger claps like this CA 41 00:02:13,720 --> 00:02:19,160 show me yeah cool okay so that's last 10 42 00:02:17,120 --> 00:02:20,760 seconds and then the last 3 seconds 43 00:02:19,160 --> 00:02:23,200 we're going to do like a little hand 44 00:02:20,760 --> 00:02:24,720 Applause a little bit louder yeah yeah 45 00:02:23,200 --> 00:02:26,720 cool and then the last second we're 46 00:02:24,720 --> 00:02:28,640 going have really loud claps and and 47 00:02:26,720 --> 00:02:30,360 telling you we get off stage yeah nice 48 00:02:28,640 --> 00:02:33,920 nice nice okay and then 49 00:02:30,360 --> 00:02:36,599 okay awesome cool so bring it up for 50 00:02:33,920 --> 00:02:39,000 James who is going to be speaking 51 00:02:36,599 --> 00:02:42,080 about 52 00:02:39,000 --> 00:02:45,400 something which is Pixie plus UV modern 53 00:02:42,080 --> 00:02:45,400 python packaging take your away 54 00:02:45,640 --> 00:02:49,760 James thanks everyone uh pleasure to be 55 00:02:48,159 --> 00:02:52,560 here my name is James today we're 56 00:02:49,760 --> 00:02:55,360 talking about the modern state of python 57 00:02:52,560 --> 00:02:58,519 packaging so talking about two tools 58 00:02:55,360 --> 00:03:00,200 today uh one is Pixie and one is UV uh 59 00:02:58,519 --> 00:03:03,720 so could I get a raise of hand who's 60 00:03:00,200 --> 00:03:05,799 heard of UV before probably most or a 61 00:03:03,720 --> 00:03:07,280 good chunk of people it looks like if 62 00:03:05,799 --> 00:03:09,080 you if you've been on hacking news I 63 00:03:07,280 --> 00:03:10,959 guess at any point in the last 6 months 64 00:03:09,080 --> 00:03:13,319 you've probably seen it on there seems 65 00:03:10,959 --> 00:03:14,920 to be popping up quite frequently but 66 00:03:13,319 --> 00:03:17,440 for those who haven't this one's for you 67 00:03:14,920 --> 00:03:19,360 so usually these days when you do like 68 00:03:17,440 --> 00:03:21,400 some python packaging you're probably 69 00:03:19,360 --> 00:03:23,280 using well if you're old school you're 70 00:03:21,400 --> 00:03:24,319 using pip you're creating your virtual 71 00:03:23,280 --> 00:03:27,360 environments you have like a 72 00:03:24,319 --> 00:03:30,120 requirements txt uh maybe you use pip 73 00:03:27,360 --> 00:03:31,519 compile you have like a requirements.in 74 00:03:30,120 --> 00:03:34,560 thing and then you compile the 75 00:03:31,519 --> 00:03:36,560 requirements txt well UV is like here to 76 00:03:34,560 --> 00:03:38,439 sort of change all of this and it's 77 00:03:36,560 --> 00:03:40,799 essentially an improvement on a lot of 78 00:03:38,439 --> 00:03:44,080 where python packaging has gone from a 79 00:03:40,799 --> 00:03:45,959 pip install through to poetry there's 80 00:03:44,080 --> 00:03:48,280 like hatch 81 00:03:45,959 --> 00:03:50,239 PDM you know there's probably like 10 82 00:03:48,280 --> 00:03:51,519 other tools that exist currently so 83 00:03:50,239 --> 00:03:53,280 hopefully this is the tool that we can 84 00:03:51,519 --> 00:03:55,000 sort of get behind um so I'm just going 85 00:03:53,280 --> 00:03:59,879 to like quickly just rock in and do a 86 00:03:55,000 --> 00:04:02,400 little live demo so um well I'm going to 87 00:03:59,879 --> 00:04:05,599 make a thing called UV and just show 88 00:04:02,400 --> 00:04:08,159 around how it works so if I do UV in it 89 00:04:05,599 --> 00:04:11,239 now I have a project that is now my 90 00:04:08,159 --> 00:04:13,959 python project I can do um if I actually 91 00:04:11,239 --> 00:04:15,360 do a it's going to have I've got a 92 00:04:13,959 --> 00:04:16,799 python version here which people might 93 00:04:15,360 --> 00:04:19,239 have seen before so it's going to 94 00:04:16,799 --> 00:04:21,759 basically tell my IDE and whatever which 95 00:04:19,239 --> 00:04:23,000 python version I'm using um I don't have 96 00:04:21,759 --> 00:04:24,919 to actually activate into the 97 00:04:23,000 --> 00:04:28,479 environment so it's if I install a 98 00:04:24,919 --> 00:04:31,440 package like um let's just add EV ad py 99 00:04:28,479 --> 00:04:32,360 test so that was pretty pretty quick um 100 00:04:31,440 --> 00:04:35,520 don't think I've done that before so 101 00:04:32,360 --> 00:04:37,759 that's probably not either um anyway so 102 00:04:35,520 --> 00:04:40,320 now par so I don't have to like activate 103 00:04:37,759 --> 00:04:43,720 into this environment uh if I do like UV 104 00:04:40,320 --> 00:04:46,320 run I think it's hello.py is the default 105 00:04:43,720 --> 00:04:48,680 one yep there it is so UV run is like an 106 00:04:46,320 --> 00:04:50,520 UV ad all this kind of stuff kind of 107 00:04:48,680 --> 00:04:51,560 abstracts away the virtual environment 108 00:04:50,520 --> 00:04:54,520 so you don't have to worry about that 109 00:04:51,560 --> 00:04:56,199 anymore it's very fast uh it installs 110 00:04:54,520 --> 00:04:59,120 python for you so you don't have to have 111 00:04:56,199 --> 00:05:00,639 like Pi en or any of these other tools 112 00:04:59,120 --> 00:05:05,120 um this is of the direction where a lot 113 00:05:00,639 --> 00:05:07,440 of modern pip Python package development 114 00:05:05,120 --> 00:05:09,840 and all this kind of stuff is going so 115 00:05:07,440 --> 00:05:12,080 if you haven't tried it or done anything 116 00:05:09,840 --> 00:05:15,160 with it uh recently then I'd highly 117 00:05:12,080 --> 00:05:16,360 recommend um but the second tool which 118 00:05:15,160 --> 00:05:18,600 I'm not sure I'm tracking for time so 119 00:05:16,360 --> 00:05:22,120 we'll keep going but 120 00:05:18,600 --> 00:05:25,840 um okay great halfway that's that's good 121 00:05:22,120 --> 00:05:27,639 uh Pixie so raise your hand if you're 122 00:05:25,840 --> 00:05:29,919 like a condo 123 00:05:27,639 --> 00:05:31,639 person there's a couple of people yeah 124 00:05:29,919 --> 00:05:33,160 so it's probably much less but you know 125 00:05:31,639 --> 00:05:35,039 cond does have a place especially if 126 00:05:33,160 --> 00:05:37,319 you're in a certain I mean ourwork 127 00:05:35,039 --> 00:05:39,240 corporate environment you can't in 128 00:05:37,319 --> 00:05:41,720 sometimes install everything you want 129 00:05:39,240 --> 00:05:43,800 directly from from GitHub or wherever so 130 00:05:41,720 --> 00:05:47,319 cond is a good way to install some of 131 00:05:43,800 --> 00:05:49,520 these things um so condo is kind of the 132 00:05:47,319 --> 00:05:51,240 thing that was used um a while ago to 133 00:05:49,520 --> 00:05:52,840 install like things like numai and 134 00:05:51,240 --> 00:05:54,840 pandas because you have all these like C 135 00:05:52,840 --> 00:05:56,440 dependencies that are were hard to get 136 00:05:54,840 --> 00:05:58,479 nowadays you can use Wheels to do that 137 00:05:56,440 --> 00:06:00,759 but that didn't really exist for a while 138 00:05:58,479 --> 00:06:02,360 um and condo was really slow so people 139 00:06:00,759 --> 00:06:03,639 kind of were sick of it and then they 140 00:06:02,360 --> 00:06:05,319 they moved to this thing called Mamba 141 00:06:03,639 --> 00:06:06,800 which was like kind of like condo but it 142 00:06:05,319 --> 00:06:09,440 was a bit faster and it pretty much did 143 00:06:06,800 --> 00:06:10,880 all the same stuff nowadays uh probably 144 00:06:09,440 --> 00:06:12,680 in the last two years I think the the 145 00:06:10,880 --> 00:06:14,840 same guys who created Mamba have created 146 00:06:12,680 --> 00:06:16,919 this store called pixie um and it's kind 147 00:06:14,840 --> 00:06:20,080 of a similar thing to UV it's built with 148 00:06:16,919 --> 00:06:22,360 rust it's very fast it has a lot of 149 00:06:20,080 --> 00:06:23,720 different benefits so you can pretty 150 00:06:22,360 --> 00:06:26,199 much install whatever you want so if I 151 00:06:23,720 --> 00:06:29,840 do like pixie in it it's going to like 152 00:06:26,199 --> 00:06:32,120 create my my thing and then I can add uh 153 00:06:29,840 --> 00:06:34,319 Python 3 out2 and it's going to be 154 00:06:32,120 --> 00:06:36,720 pretty quick hopefully yep there you go 155 00:06:34,319 --> 00:06:38,240 okay great um you can do other stuff in 156 00:06:36,720 --> 00:06:39,840 here so you can have like a different 157 00:06:38,240 --> 00:06:40,800 environments within the same project 158 00:06:39,840 --> 00:06:43,440 well actually that's one of the main 159 00:06:40,800 --> 00:06:45,560 differences is like cond and Mambo are 160 00:06:43,440 --> 00:06:46,520 like you create this global environment 161 00:06:45,560 --> 00:06:49,720 you can sort of take it with you 162 00:06:46,520 --> 00:06:51,160 wherever you go but pixie is Project 163 00:06:49,720 --> 00:06:53,840 based which is similar to how a lot of 164 00:06:51,160 --> 00:06:56,199 other python tools work which is sort of 165 00:06:53,840 --> 00:06:58,960 more ergonomic from a developer 166 00:06:56,199 --> 00:07:00,000 perspective um you can yeah install 167 00:06:58,960 --> 00:07:01,400 whatever you want you have different 168 00:07:00,000 --> 00:07:02,800 environments so you can have like a test 169 00:07:01,400 --> 00:07:05,080 environment you want to run your tests 170 00:07:02,800 --> 00:07:06,720 with like optional packages that should 171 00:07:05,080 --> 00:07:08,919 only exist in the test environment 172 00:07:06,720 --> 00:07:10,639 things like that anyway very good if 173 00:07:08,919 --> 00:07:12,560 you're on cond and you haven't tried 174 00:07:10,639 --> 00:07:14,080 pixie already would highly recommend 175 00:07:12,560 --> 00:07:16,879 anyway I'm going to sort of wrap it up 176 00:07:14,080 --> 00:07:17,990 there I think we're nearly at time but 177 00:07:16,879 --> 00:07:26,540 there you go thanks 178 00:07:17,990 --> 00:07:26,540 [Applause] 179 00:07:27,160 --> 00:07:35,720 folks next up is oh look it works okay 180 00:07:29,919 --> 00:07:39,120 great um awesome so up next we have uh 181 00:07:35,720 --> 00:07:40,919 GTH could you get ready please um but uh 182 00:07:39,120 --> 00:07:47,000 right now we have Pat who's going to be 183 00:07:40,919 --> 00:07:48,240 speaking about um ml Ops what how that's 184 00:07:47,000 --> 00:07:52,039 a very good 185 00:07:48,240 --> 00:07:56,240 question um all right let's see how 186 00:07:52,039 --> 00:07:56,240 quickly this works 187 00:08:06,159 --> 00:08:10,479 um cool take it away 188 00:08:10,680 --> 00:08:16,159 Pat 189 00:08:12,599 --> 00:08:19,759 um who here has heard of the term 190 00:08:16,159 --> 00:08:21,360 mlops yeah that's good that's maybe a 191 00:08:19,759 --> 00:08:26,039 third is a lot of people haven't all 192 00:08:21,360 --> 00:08:27,960 right who here has worked on some worked 193 00:08:26,039 --> 00:08:29,080 on a project being a data scientist done 194 00:08:27,960 --> 00:08:30,080 something which you'd say you'd have 195 00:08:29,080 --> 00:08:34,479 some sort of 196 00:08:30,080 --> 00:08:36,120 Ops okay like 10ish maybe okay that's 197 00:08:34,479 --> 00:08:37,599 cool I mean I was I wasn't really sure I 198 00:08:36,120 --> 00:08:39,599 was going to say I just like it's 199 00:08:37,599 --> 00:08:41,479 something I talk about a lot um this is 200 00:08:39,599 --> 00:08:43,159 a slide deck I put together like a year 201 00:08:41,479 --> 00:08:45,399 ago I just thought like I'll Chuck it up 202 00:08:43,159 --> 00:08:49,279 and see what it is so um emots machine 203 00:08:45,399 --> 00:08:52,800 learning operations uh it's yeah devops 204 00:08:49,279 --> 00:08:55,880 for machine learning um it's not 205 00:08:52,800 --> 00:08:58,040 something that even existed uh like six 206 00:08:55,880 --> 00:09:00,399 six years ago now I remember I first 207 00:08:58,040 --> 00:09:03,800 started working in data science in in 208 00:09:00,399 --> 00:09:06,000 2019 and like end of 2019 I some of us 209 00:09:03,800 --> 00:09:07,600 were saying we need we need to do this 210 00:09:06,000 --> 00:09:08,680 better this is this is a mess like we 211 00:09:07,600 --> 00:09:10,399 got to have something better I've heard 212 00:09:08,680 --> 00:09:13,839 there's this thing out there called 213 00:09:10,399 --> 00:09:16,720 mlops um and yeah like it's I think a 214 00:09:13,839 --> 00:09:19,200 lot of organizations in the the process 215 00:09:16,720 --> 00:09:22,399 of trying to turn create actual working 216 00:09:19,200 --> 00:09:23,839 data science products um that at the 217 00:09:22,399 --> 00:09:27,640 same of time are trying to figure this 218 00:09:23,839 --> 00:09:30,079 out it's an ongoing thing um this is 219 00:09:27,640 --> 00:09:32,399 probably the best and simplest 220 00:09:30,079 --> 00:09:34,760 explanation of it if I talk to like 221 00:09:32,399 --> 00:09:37,320 managers orone want this anyone wants 222 00:09:34,760 --> 00:09:38,839 this for exacts like it's really good so 223 00:09:37,320 --> 00:09:40,920 um especially if we're talking so you'll 224 00:09:38,839 --> 00:09:44,640 have a bit of familiar familiarity with 225 00:09:40,920 --> 00:09:47,320 software so super simplistic um can 226 00:09:44,640 --> 00:09:49,800 shoot it down but yeah traditional like 227 00:09:47,320 --> 00:09:52,800 devops will involve you know we've got a 228 00:09:49,800 --> 00:09:54,600 code base we're making changes to it for 229 00:09:52,800 --> 00:09:56,200 for whatever reasons features fixes 230 00:09:54,600 --> 00:09:57,839 whatever and there's a whole bunch of 231 00:09:56,200 --> 00:10:00,399 tests that will run on that before we 232 00:09:57,839 --> 00:10:01,959 deploy it um and they'll monitor it to 233 00:10:00,399 --> 00:10:03,160 make sure that it keeps on running okay 234 00:10:01,959 --> 00:10:05,320 or if it doesn't we find out what's 235 00:10:03,160 --> 00:10:07,160 going wrong and you know that's a that's 236 00:10:05,320 --> 00:10:09,320 part of a cicd system to make sure we 237 00:10:07,160 --> 00:10:12,600 can make change and iterate and improve 238 00:10:09,320 --> 00:10:13,480 you know in a reliable way and so 239 00:10:12,600 --> 00:10:16,440 machine 240 00:10:13,480 --> 00:10:19,079 learning lost of bit that's all right um 241 00:10:16,440 --> 00:10:21,360 is this plus the added comp like a whole 242 00:10:19,079 --> 00:10:24,720 extra dimension of complexity of 243 00:10:21,360 --> 00:10:26,519 changing data over time um and a model a 244 00:10:24,720 --> 00:10:27,920 machine learning model like there's all 245 00:10:26,519 --> 00:10:31,079 all these things neuron 246 00:10:27,920 --> 00:10:33,800 networks you know um so I could learn AI 247 00:10:31,079 --> 00:10:36,040 all that stuff like it's just a way of 248 00:10:33,800 --> 00:10:38,000 encapsulating information about a data 249 00:10:36,040 --> 00:10:40,160 set um and then try to use that 250 00:10:38,000 --> 00:10:41,800 information to make predictions about 251 00:10:40,160 --> 00:10:43,519 new data but it's all very heavily 252 00:10:41,800 --> 00:10:47,399 dependent on data and end of the day 253 00:10:43,519 --> 00:10:50,600 there's more testing more monitoring um 254 00:10:47,399 --> 00:10:53,720 more uh yeah more more you know like 255 00:10:50,600 --> 00:10:56,320 just extra tests um extra tracking that 256 00:10:53,720 --> 00:10:59,399 needs to be done as part of it 257 00:10:56,320 --> 00:11:01,480 um and so like a team that's going to do 258 00:10:59,399 --> 00:11:03,279 this is going to have to be more complex 259 00:11:01,480 --> 00:11:04,560 and more more skilled like have a WI a 260 00:11:03,279 --> 00:11:06,959 variety of data and other engineering 261 00:11:04,560 --> 00:11:09,079 skills in a regular team um and that's 262 00:11:06,959 --> 00:11:11,639 the main thing and and this is another 263 00:11:09,079 --> 00:11:14,560 famous um uh image that people might 264 00:11:11,639 --> 00:11:15,519 have seen two minutes go um they're like 265 00:11:14,560 --> 00:11:17,040 if you want to get to the point of 266 00:11:15,519 --> 00:11:19,880 having machine learning running 267 00:11:17,040 --> 00:11:21,519 application you know a lot of what gets 268 00:11:19,880 --> 00:11:23,160 taught in say when I did a data science 269 00:11:21,519 --> 00:11:24,399 course is how to make models the model 270 00:11:23,160 --> 00:11:26,639 and the data science the machine 271 00:11:24,399 --> 00:11:28,920 learning part is only a tiny little part 272 00:11:26,639 --> 00:11:30,720 of what's going on we need all the rest 273 00:11:28,920 --> 00:11:33,079 of like the traditional software 274 00:11:30,720 --> 00:11:35,079 application code that goes around that 275 00:11:33,079 --> 00:11:36,519 um and if we're hosting in cloud and 276 00:11:35,079 --> 00:11:38,320 doing everything there everything that 277 00:11:36,519 --> 00:11:40,800 goes on there plus a whole bunch of 278 00:11:38,320 --> 00:11:42,399 extra stuff around like managing the 279 00:11:40,800 --> 00:11:44,639 very complex data processes and 280 00:11:42,399 --> 00:11:46,639 monitoring that's going on there and so 281 00:11:44,639 --> 00:11:48,560 that's kind of the space that we're 282 00:11:46,639 --> 00:11:52,120 working in trying to like figure that 283 00:11:48,560 --> 00:11:53,800 out as we go um there are tools and 284 00:11:52,120 --> 00:11:55,800 platforms out there that are supposed to 285 00:11:53,800 --> 00:11:58,320 be you know supposed to make a lot of 286 00:11:55,800 --> 00:12:00,440 this easier um I'm yet to use them I'm I 287 00:11:58,320 --> 00:12:02,720 was hoping it' be like Has anyone used 288 00:12:00,440 --> 00:12:04,079 any of these ml platforms if you have 289 00:12:02,720 --> 00:12:06,240 please come and talk to me I'd love to 290 00:12:04,079 --> 00:12:07,880 pick the brains of some people who have 291 00:12:06,240 --> 00:12:09,480 um but at the end of the day it still 292 00:12:07,880 --> 00:12:12,959 come it seems it still comes down to a 293 00:12:09,480 --> 00:12:14,360 problem of any machine learning data 294 00:12:12,959 --> 00:12:15,920 science project involves a lot of 295 00:12:14,360 --> 00:12:17,160 veryable spoke stuff we have a problem 296 00:12:15,920 --> 00:12:19,360 we're trying to fix we work at 297 00:12:17,160 --> 00:12:21,199 industrial settings we've got you know 298 00:12:19,360 --> 00:12:23,040 industrial machines and data sources 299 00:12:21,199 --> 00:12:24,639 which are very specific to that we need 300 00:12:23,040 --> 00:12:27,480 to write a whole bunch of very specific 301 00:12:24,639 --> 00:12:29,240 code to you know turn that into 302 00:12:27,480 --> 00:12:31,240 information we put into a model and use 303 00:12:29,240 --> 00:12:33,199 outputs and there's there's like always 304 00:12:31,240 --> 00:12:36,000 going to be an element of what's bespoke 305 00:12:33,199 --> 00:12:37,560 and what can be automated in terms of 306 00:12:36,000 --> 00:12:41,120 like scaling doing this sort of 307 00:12:37,560 --> 00:12:45,519 monitoring and improving over time 308 00:12:41,120 --> 00:12:48,320 um yeah cool I mean that's that's emops 309 00:12:45,519 --> 00:12:51,199 in a nutshell um I would love to talk to 310 00:12:48,320 --> 00:12:53,800 anyone who's you know engaged or doing 311 00:12:51,199 --> 00:12:53,800 anything in that 312 00:12:57,760 --> 00:13:08,440 space thank you so much that was great 313 00:13:00,880 --> 00:13:08,440 um so GTH you're on now y uh and 314 00:13:08,720 --> 00:13:16,560 in up next we 315 00:13:12,720 --> 00:13:21,000 have mysterious person called Anthony 316 00:13:16,560 --> 00:13:25,959 you're up next get ready please cool 317 00:13:21,000 --> 00:13:31,199 HDMI yes do you not have HDMI okay time 318 00:13:25,959 --> 00:13:34,399 for some improv um cool who has done ml 319 00:13:31,199 --> 00:13:37,600 Ops raise of hands can anyone USB see 320 00:13:34,399 --> 00:13:41,040 this uh okay look at that the audience 321 00:13:37,600 --> 00:13:42,279 is coming out to save us wooo thanny 322 00:13:41,040 --> 00:13:44,839 thank 323 00:13:42,279 --> 00:13:47,440 youny okay oh I haven't said what goth 324 00:13:44,839 --> 00:13:51,480 is speaking about uh when will python 325 00:13:47,440 --> 00:13:53,639 3.6 support end hasn't it already ended 326 00:13:51,480 --> 00:13:57,800 maybe goth will tell us about 327 00:13:53,639 --> 00:13:59,639 it uh okay but put put the laptop here 328 00:13:57,800 --> 00:14:03,600 so people can hear you 329 00:13:59,639 --> 00:14:07,199 okay screen ah because microphones yes 330 00:14:03,600 --> 00:14:10,519 look python 3.6 excellent oh there we 331 00:14:07,199 --> 00:14:13,399 go when will it 332 00:14:10,519 --> 00:14:16,959 end sorry that was my tick not me this 333 00:14:13,399 --> 00:14:18,519 is me long story come talk to me later 334 00:14:16,959 --> 00:14:21,800 uh anyway 335 00:14:18,519 --> 00:14:25,680 you that'll help right when will python 336 00:14:21,800 --> 00:14:27,480 3.6 support end I wonder allow 337 00:14:25,680 --> 00:14:29,560 rhetorically isn't that just ancient 338 00:14:27,480 --> 00:14:32,600 history 339 00:14:29,560 --> 00:14:37,040 it's so old that if you go to um endof 340 00:14:32,600 --> 00:14:39,399 life. whatever that it was handy website 341 00:14:37,040 --> 00:14:42,959 um you have to go all the way down and 342 00:14:39,399 --> 00:14:44,880 click show more unmaintained releases to 343 00:14:42,959 --> 00:14:47,240 find out and then we can go 344 00:14:44,880 --> 00:14:50,560 2018 was the last that we had to worry 345 00:14:47,240 --> 00:14:50,560 about python 3.6 346 00:14:50,639 --> 00:14:55,959 right because python that's that's when 347 00:14:53,480 --> 00:14:59,639 they stopped fixing 348 00:14:55,959 --> 00:15:02,040 bugs ah but some of you point out 349 00:14:59,639 --> 00:15:02,040 what about 350 00:15:03,279 --> 00:15:11,560 security real answer is 2021 because 351 00:15:07,440 --> 00:15:11,560 vules but that was still in the past 352 00:15:11,920 --> 00:15:16,600 right this is somewhat Complicated by 353 00:15:16,800 --> 00:15:22,880 the the role of distributions where 354 00:15:20,440 --> 00:15:24,519 they've taken software maintained by 355 00:15:22,880 --> 00:15:26,199 other people and then repackaged it and 356 00:15:24,519 --> 00:15:27,360 then taken over maintenance for for 357 00:15:26,199 --> 00:15:30,160 their 358 00:15:27,360 --> 00:15:33,800 customers and so for the people who 359 00:15:30,160 --> 00:15:37,480 have to Target these platforms they have 360 00:15:33,800 --> 00:15:39,360 to stick to this road map which is not 361 00:15:37,480 --> 00:15:42,759 Python's road 362 00:15:39,360 --> 00:15:44,720 map um now why is Fedora important well 363 00:15:42,759 --> 00:15:47,600 the reason is that in hidden in the user 364 00:15:44,720 --> 00:15:51,440 lib exec directory which many hands up 365 00:15:47,600 --> 00:15:55,319 who knows what user Li exec contains and 366 00:15:51,440 --> 00:15:55,319 why you lucky 367 00:15:55,560 --> 00:16:00,079 bastards some of us have to worry about 368 00:15:57,639 --> 00:16:01,959 this for a living um us a li exec is 369 00:16:00,079 --> 00:16:04,160 where you hide binaries that are used by 370 00:16:01,959 --> 00:16:05,560 other binaries they they are not really 371 00:16:04,160 --> 00:16:08,920 for your 372 00:16:05,560 --> 00:16:10,920 use um anyway so there's a copy of 373 00:16:08,920 --> 00:16:13,440 python in there it's called user Li ex 374 00:16:10,920 --> 00:16:16,160 platform python 375 00:16:13,440 --> 00:16:19,199 why what so dnf can use 376 00:16:16,160 --> 00:16:21,279 it which is the new name of yum their 377 00:16:19,199 --> 00:16:23,880 package manager so literally just to 378 00:16:21,279 --> 00:16:25,639 install packages you need a copy of this 379 00:16:23,880 --> 00:16:27,399 yeah you can see it hidden the upper 380 00:16:25,639 --> 00:16:31,639 where the little thing is use a liic 381 00:16:27,399 --> 00:16:33,800 platform python and that's a python 3.6 382 00:16:31,639 --> 00:16:35,279 which means that anytime that any python 383 00:16:33,800 --> 00:16:36,880 programmer is told hey you you have to 384 00:16:35,279 --> 00:16:42,199 Target this 385 00:16:36,880 --> 00:16:44,360 particular uh ancient Fedora um 386 00:16:42,199 --> 00:16:47,079 hypothetically um but you're not allowed 387 00:16:44,360 --> 00:16:47,079 to install 388 00:16:47,839 --> 00:16:54,800 anything well there is a python on there 389 00:16:51,440 --> 00:16:59,480 and if you don't use it you have to use 390 00:16:54,800 --> 00:16:59,480 bash or Pearl four 391 00:17:01,360 --> 00:17:07,520 so from that perspective you could argue 392 00:17:04,480 --> 00:17:11,600 that the real end of life for python 3.6 393 00:17:07,520 --> 00:17:13,720 was 2018 because 394 00:17:11,600 --> 00:17:15,880 UTA but it's not that 395 00:17:13,720 --> 00:17:20,000 easy red 396 00:17:15,880 --> 00:17:21,480 hat red hat tooker and turned it into 397 00:17:20,000 --> 00:17:25,000 release for 398 00:17:21,480 --> 00:17:28,640 eight right so the real answer is 2029 399 00:17:25,000 --> 00:17:28,640 because red hat 400 00:17:29,919 --> 00:17:34,039 or 2032 because 401 00:17:37,120 --> 00:17:41,080 Enterprise but what will it be because 402 00:17:39,440 --> 00:17:43,280 you and and I'm asking this because 403 00:17:41,080 --> 00:17:46,160 there might be people who maintain stuff 404 00:17:43,280 --> 00:17:49,600 that I would like to rely on as a target 405 00:17:46,160 --> 00:17:51,600 of these platforms um and and so really 406 00:17:49,600 --> 00:17:54,280 it comes down to whether or not you 407 00:17:51,600 --> 00:17:57,159 think I'm an edge 408 00:17:54,280 --> 00:18:00,320 case or as I prefer to put it a real 409 00:17:57,159 --> 00:18:01,640 life actual person yeah I am a fellow 410 00:18:00,320 --> 00:18:04,880 python 411 00:18:01,640 --> 00:18:09,320 programmer so the hero stick I would 412 00:18:04,880 --> 00:18:11,120 like to urge you to consider is um one 413 00:18:09,320 --> 00:18:13,280 minute thank you just to consider where 414 00:18:11,120 --> 00:18:15,960 you are between the 415 00:18:13,280 --> 00:18:17,679 platform and and the user I guess at the 416 00:18:15,960 --> 00:18:20,159 other end the 417 00:18:17,679 --> 00:18:21,880 application and the closer you are to 418 00:18:20,159 --> 00:18:25,640 the 419 00:18:21,880 --> 00:18:26,799 fun definitely use 3113 full of great 420 00:18:25,640 --> 00:18:28,840 stuff right but the closer you are to 421 00:18:26,799 --> 00:18:30,039 the platform if you could support these 422 00:18:28,840 --> 00:18:32,640 the the people closer to the metal 423 00:18:30,039 --> 00:18:34,679 that'd be great so and in particular if 424 00:18:32,640 --> 00:18:38,799 you're supporting build 425 00:18:34,679 --> 00:18:40,840 tooling uh packaging like UV um I've 426 00:18:38,799 --> 00:18:43,159 already fixed 1 3.6 bug in I broke it 427 00:18:40,840 --> 00:18:45,720 again so I have to go back and fix it um 428 00:18:43,159 --> 00:18:47,520 fundamental packages like requests like 429 00:18:45,720 --> 00:18:49,480 if if you're big and bad enough to be 430 00:18:47,520 --> 00:18:51,280 maintaining a package which is used by 431 00:18:49,480 --> 00:18:53,159 literally everybody how about supporting 432 00:18:51,280 --> 00:18:57,240 it for literally 433 00:18:53,159 --> 00:18:58,799 everybody thanks um and uh yeah like 434 00:18:57,240 --> 00:19:03,520 like I said close you out of the app 435 00:18:58,799 --> 00:19:03,520 doesn't matter and please do so until 436 00:19:04,120 --> 00:19:07,559 2032 because the 437 00:19:12,000 --> 00:19:18,120 Enterprise thank you very much who's 438 00:19:14,559 --> 00:19:22,880 next uh good question let's see 439 00:19:18,120 --> 00:19:27,200 Anthony's up on deck and up next Once my 440 00:19:22,880 --> 00:19:30,000 laptop logs in you can do it 441 00:19:27,200 --> 00:19:32,880 laptop no 442 00:19:30,000 --> 00:19:36,159 oh up next we have uh 443 00:19:32,880 --> 00:19:39,480 Warwick cool 444 00:19:36,159 --> 00:19:43,039 uh cool Anthony's going to speak about 445 00:19:39,480 --> 00:19:48,640 also Python and releases but bug F bug 446 00:19:43,039 --> 00:19:51,400 fixes how and why uh almost 447 00:19:48,640 --> 00:19:56,360 there to 448 00:19:51,400 --> 00:19:59,600 come bug fix yay okay great is the 449 00:19:56,360 --> 00:20:04,799 window gone cool take it away Anthony 450 00:19:59,600 --> 00:20:07,679 okay ah so uh sorry I'm my glasses are 451 00:20:04,799 --> 00:20:07,679 fogging up 452 00:20:07,760 --> 00:20:15,640 uh oh good good point um okay python bug 453 00:20:12,799 --> 00:20:18,720 fix releases why do we have them and how 454 00:20:15,640 --> 00:20:21,280 do we do do them so I'm Anthony I used 455 00:20:18,720 --> 00:20:23,440 to be the python release manager uh of 456 00:20:21,280 --> 00:20:25,720 all those versions people want to do 457 00:20:23,440 --> 00:20:26,960 quick math that's 5 and a half years and 458 00:20:25,720 --> 00:20:29,840 three and a half years where I was the 459 00:20:26,960 --> 00:20:32,760 only release manager 460 00:20:29,840 --> 00:20:35,080 um B so the short version of this talk 461 00:20:32,760 --> 00:20:37,360 one slide pep 6 please read it it'll 462 00:20:35,080 --> 00:20:39,520 make you happy will make me happy these 463 00:20:37,360 --> 00:20:41,919 are examples of a bug fix release you 464 00:20:39,520 --> 00:20:44,080 know the third digit uh some people call 465 00:20:41,919 --> 00:20:46,200 them Point fix releases they're wrong 466 00:20:44,080 --> 00:20:49,080 it's pep six says they bug fix releases 467 00:20:46,200 --> 00:20:52,320 and it's right so what's what's in a bug 468 00:20:49,080 --> 00:20:54,320 fix release only bug fixes except 469 00:20:52,320 --> 00:20:58,039 there's a security buug then then we can 470 00:20:54,320 --> 00:21:00,640 change things why because true and false 471 00:20:58,039 --> 00:21:01,640 and 2 3 and 2.2 yes we're talking about 472 00:21:00,640 --> 00:21:04,400 the Dark 473 00:21:01,640 --> 00:21:08,480 Ages true and false were unexpectedly 474 00:21:04,400 --> 00:21:10,840 backported to python 2.2 in a point 475 00:21:08,480 --> 00:21:14,039 release it was originally added in two 476 00:21:10,840 --> 00:21:15,360 three and again unexpected back backport 477 00:21:14,039 --> 00:21:18,600 so why is this 478 00:21:15,360 --> 00:21:21,360 important because of this if you look at 479 00:21:18,600 --> 00:21:24,279 old python 2 code you'll often find this 480 00:21:21,360 --> 00:21:26,559 at the top of every single python 481 00:21:24,279 --> 00:21:28,760 file because you had to you didn't know 482 00:21:26,559 --> 00:21:31,440 you couldn't use Python 22 does it have 483 00:21:28,760 --> 00:21:34,400 true and false I don't 484 00:21:31,440 --> 00:21:36,840 know so I had some words with GTO some 485 00:21:34,400 --> 00:21:38,880 of them were rude and said said let's 486 00:21:36,840 --> 00:21:41,320 not do that again and I sort of took 487 00:21:38,880 --> 00:21:43,440 over doing the maintenance releases then 488 00:21:41,320 --> 00:21:45,960 uh so there was a big problem there the 489 00:21:43,440 --> 00:21:48,080 vendors as GTH was just saying didn't 490 00:21:45,960 --> 00:21:51,159 trust us the distributions didn't trust 491 00:21:48,080 --> 00:21:53,279 us which was a pain in the butt because 492 00:21:51,159 --> 00:21:55,120 if we break functionality they don't 493 00:21:53,279 --> 00:21:58,080 trust us cuz they've got customers they' 494 00:21:55,120 --> 00:22:00,760 got Downstream vendors or Downstream dys 495 00:21:58,080 --> 00:22:03,200 and so won't they won't put in bug 496 00:22:00,760 --> 00:22:05,120 fixers there they'll do delays of 497 00:22:03,200 --> 00:22:08,000 getting the bug fixers out there'll be 498 00:22:05,120 --> 00:22:10,240 vendors back porting bugs fixes which is 499 00:22:08,000 --> 00:22:14,360 also 500 00:22:10,240 --> 00:22:16,200 bad uh I didn't swear um duplicate this 501 00:22:14,360 --> 00:22:19,559 the problem with this was that we ended 502 00:22:16,200 --> 00:22:20,840 up with duplicate bugs in in our tracker 503 00:22:19,559 --> 00:22:22,799 and we go no that's already fixed you 504 00:22:20,840 --> 00:22:24,840 just need to upgrade and they go well I 505 00:22:22,799 --> 00:22:27,640 can't upgrade or whatever um it makes 506 00:22:24,840 --> 00:22:30,520 this look bad when there's fit bugs we 507 00:22:27,640 --> 00:22:32,480 know about and people like see and there 508 00:22:30,520 --> 00:22:35,520 might be unpatched security fixes 509 00:22:32,480 --> 00:22:38,080 security bugs bad again so how do we do 510 00:22:35,520 --> 00:22:40,919 this well you have a python release 511 00:22:38,080 --> 00:22:43,120 manager who watches the uh maintenance 512 00:22:40,919 --> 00:22:44,720 maintenance branch and looks for things 513 00:22:43,120 --> 00:22:47,000 that change functionality and then you 514 00:22:44,720 --> 00:22:49,919 yell at someone and and if necessary you 515 00:22:47,000 --> 00:22:53,440 roll their fix their change back so 516 00:22:49,919 --> 00:22:55,000 again read pep 6 it's not very long it's 517 00:22:53,440 --> 00:22:58,200 you know dates back a little bit but not 518 00:22:55,000 --> 00:22:59,840 too not that okay dates back to 2001 um 519 00:22:58,200 --> 00:23:02,000 so 520 00:22:59,840 --> 00:23:04,080 if you want to do an update please do it 521 00:23:02,000 --> 00:23:08,080 refers to things like CVS and Source 522 00:23:04,080 --> 00:23:09,960 Forge um it really it really needs an 523 00:23:08,080 --> 00:23:11,360 update and you can also do a bit of 524 00:23:09,960 --> 00:23:13,679 archaeology because it also has a list 525 00:23:11,360 --> 00:23:15,840 of who was the maintainer for various 526 00:23:13,679 --> 00:23:19,559 branches so that might be fun and if 527 00:23:15,840 --> 00:23:22,600 you've never never done a push a a patch 528 00:23:19,559 --> 00:23:24,919 this is a good excuse anyway please 529 00:23:22,600 --> 00:23:25,880 please don't break up don't break bug 530 00:23:24,919 --> 00:23:29,880 fix 531 00:23:25,880 --> 00:23:29,880 releases anyway 532 00:23:32,120 --> 00:23:38,400 thank you 533 00:23:33,679 --> 00:23:42,360 Anthony hold on uh okay say lightning 534 00:23:38,400 --> 00:23:43,240 so uh yes wck is up on stage up next we 535 00:23:42,360 --> 00:23:47,520 have 536 00:23:43,240 --> 00:23:50,440 Kara uh sorry oh good walk is going to 537 00:23:47,520 --> 00:23:53,840 speak about I would actually appreciate 538 00:23:50,440 --> 00:23:57,919 a oh no no no I don't have a something 539 00:23:53,840 --> 00:23:59,279 about HDMX yes awesome okay are we 540 00:23:57,919 --> 00:24:02,919 plugged in are you 541 00:23:59,279 --> 00:24:05,240 ready one two three oh 542 00:24:02,919 --> 00:24:09,640 okay one two 543 00:24:05,240 --> 00:24:12,000 three okay uh oh it worked okay that was 544 00:24:09,640 --> 00:24:16,000 some time delay cool okay take it away 545 00:24:12,000 --> 00:24:18,279 thank you okay so um I've just got a 546 00:24:16,000 --> 00:24:20,120 ajango project that I just scaffold 547 00:24:18,279 --> 00:24:24,159 together right now uh it's essentially 548 00:24:20,120 --> 00:24:27,279 got one view uh which returns this work 549 00:24:24,159 --> 00:24:30,000 function which is just uh sleeps for 3 550 00:24:27,279 --> 00:24:31,600 seconds and returns a u ID uh so 551 00:24:30,000 --> 00:24:34,640 anything that's 552 00:24:31,600 --> 00:24:37,559 complicated um on you know your database 553 00:24:34,640 --> 00:24:41,240 or some calculation so the page 554 00:24:37,559 --> 00:24:43,120 therefore takes a while to load uh so I 555 00:24:41,240 --> 00:24:44,640 want to speed that up or at least make 556 00:24:43,120 --> 00:24:48,840 it better for the 557 00:24:44,640 --> 00:24:52,000 user uh so first thing obviously we can 558 00:24:48,840 --> 00:24:59,120 just go and uh in the view we can just 559 00:24:52,000 --> 00:25:01,200 cache it um so cool um so now it'll 560 00:24:59,120 --> 00:25:03,159 take a while to load but when I do 561 00:25:01,200 --> 00:25:04,679 subsequent loads uh the problem is that 562 00:25:03,159 --> 00:25:06,600 you've got the cold start so the first 563 00:25:04,679 --> 00:25:11,080 person to get to your website is always 564 00:25:06,600 --> 00:25:15,679 going to get uh that crap um loading 565 00:25:11,080 --> 00:25:18,480 experience uh so has anyone here used 566 00:25:15,679 --> 00:25:22,360 hmx uh for those who haven't it's it's a 567 00:25:18,480 --> 00:25:24,039 really great way to uh make look also 568 00:25:22,360 --> 00:25:25,559 Twitter's Twitter is a dumpster fire 569 00:25:24,039 --> 00:25:27,120 right now but he's well worth a follow 570 00:25:25,559 --> 00:25:29,600 he's like the one thing that's still 571 00:25:27,120 --> 00:25:32,080 good there um it's a really simple 572 00:25:29,600 --> 00:25:34,520 JavaScript library to return tiny little 573 00:25:32,080 --> 00:25:36,679 page Snippets over the wire but use HTML 574 00:25:34,520 --> 00:25:39,440 instead of Json so you don't need to F 575 00:25:36,679 --> 00:25:41,200 around with view or react or any kind of 576 00:25:39,440 --> 00:25:43,320 client side templating you can literally 577 00:25:41,200 --> 00:25:48,960 return HTML from Jango so I've got a 578 00:25:43,320 --> 00:25:51,799 second view here uh so um 579 00:25:48,960 --> 00:25:53,840 slor uh and my index.html this is all I 580 00:25:51,799 --> 00:25:57,240 need to do I just need to add HTM X and 581 00:25:53,840 --> 00:25:59,279 I just say HX get from the work URL and 582 00:25:57,240 --> 00:26:02,200 Trigger it on load 583 00:25:59,279 --> 00:26:05,399 uh so that then brings up the page 584 00:26:02,200 --> 00:26:10,520 snippet so now I get an instant load uh 585 00:26:05,399 --> 00:26:12,679 but I've still got that time there um so 586 00:26:10,520 --> 00:26:14,279 better cuz you're still you're getting a 587 00:26:12,679 --> 00:26:16,039 immediate load and you're lazy loading 588 00:26:14,279 --> 00:26:17,039 the page component uh in production I 589 00:26:16,039 --> 00:26:20,120 actually use this for far more 590 00:26:17,039 --> 00:26:23,520 sophisticated things um but we can do 591 00:26:20,120 --> 00:26:27,840 better so uh I want to mix and match a 592 00:26:23,520 --> 00:26:32,640 little bit um so on the uh do work I've 593 00:26:27,840 --> 00:26:35,039 now put the caching on again uh so cool 594 00:26:32,640 --> 00:26:38,320 uh the only problem here is I'm still 595 00:26:35,039 --> 00:26:40,480 doing that extra Network request so if I 596 00:26:38,320 --> 00:26:43,640 change this and delay just to simulate 597 00:26:40,480 --> 00:26:47,039 the network uh you'll see um just doing 598 00:26:43,640 --> 00:26:48,440 the full load this time but we'll do um 599 00:26:47,039 --> 00:26:51,799 so it's still doing Network request 600 00:26:48,440 --> 00:26:53,559 every time uh but we've already got this 601 00:26:51,799 --> 00:26:54,840 data and I'm I'm a bit traditional I 602 00:26:53,559 --> 00:26:56,159 feel like if you're loading a page from 603 00:26:54,840 --> 00:27:00,000 the server you just want to load the 604 00:26:56,159 --> 00:27:01,320 whole thing if you can uh so so I have 605 00:27:00,000 --> 00:27:04,840 this hacky 606 00:27:01,320 --> 00:27:06,679 solution um that I [ __ ] 607 00:27:04,840 --> 00:27:09,760 sorry I 608 00:27:06,679 --> 00:27:11,840 know oh um that's my fault I'm using 609 00:27:09,760 --> 00:27:13,600 Source tree specifically because I knew 610 00:27:11,840 --> 00:27:16,919 that trying to do this in the command 611 00:27:13,600 --> 00:27:20,240 line would break my brain uh doing great 612 00:27:16,919 --> 00:27:23,080 then um so what I've done is this uh 613 00:27:20,240 --> 00:27:25,720 essentially taken D jango's existing C 614 00:27:23,080 --> 00:27:27,320 template tag uh copied it and just 615 00:27:25,720 --> 00:27:29,559 modified it so that it will never 616 00:27:27,320 --> 00:27:34,480 actually write to the C 617 00:27:29,559 --> 00:27:38,480 uh so in the work snippet I use the old 618 00:27:34,480 --> 00:27:41,360 C tag uh which does the complicated 619 00:27:38,480 --> 00:27:44,320 thing uh writes it into the case in my 620 00:27:41,360 --> 00:27:46,159 index though I use my tag which will 621 00:27:44,320 --> 00:27:48,919 only get from the cas and won't write to 622 00:27:46,159 --> 00:27:50,039 it uh the fallback is to then use the 623 00:27:48,919 --> 00:27:52,440 HTM X 624 00:27:50,039 --> 00:27:57,360 trigger 625 00:27:52,440 --> 00:28:00,600 so uh we now get slow page instant page 626 00:27:57,360 --> 00:28:03,360 and if I even go and change 627 00:28:00,600 --> 00:28:07,399 this yeah 628 00:28:03,360 --> 00:28:07,399 good uh to use an HTM X 629 00:28:08,960 --> 00:28:15,720 delay 630 00:28:10,799 --> 00:28:18,080 should there we go so yep um so that's 631 00:28:15,720 --> 00:28:19,760 that's basically it um I've been 632 00:28:18,080 --> 00:28:22,519 migrating a very large project as part 633 00:28:19,760 --> 00:28:25,240 of my work uh and um that's just a handy 634 00:28:22,519 --> 00:28:28,320 little tidbit I learned along the way um 635 00:28:25,240 --> 00:28:30,720 so if anyone hasn't tried HDMX uh do go 636 00:28:28,320 --> 00:28:34,279 check it out um it's really great for D 637 00:28:30,720 --> 00:28:35,880 Jango uh just means you you can you can 638 00:28:34,279 --> 00:28:38,240 write websites the good old way with 639 00:28:35,880 --> 00:28:42,360 HTML and no Jason and I really like that 640 00:28:38,240 --> 00:28:42,360 so um thank you uh 641 00:28:43,919 --> 00:28:47,960 yeah cool thank you very 642 00:28:46,200 --> 00:28:52,039 much 643 00:28:47,960 --> 00:28:55,120 um cool we've got casara on 644 00:28:52,039 --> 00:28:58,600 stage and up next 645 00:28:55,120 --> 00:29:02,200 Susanna is Susanna here 646 00:28:58,600 --> 00:29:05,799 okay great uh well not great but 647 00:29:02,200 --> 00:29:08,120 um yes kar's on stage is going to talk 648 00:29:05,799 --> 00:29:10,240 about how Docker best practices can 649 00:29:08,120 --> 00:29:12,279 haunt you are you going to do scary 650 00:29:10,240 --> 00:29:15,480 things are you going to make this slide 651 00:29:12,279 --> 00:29:19,000 thing appear that's kind of scary 652 00:29:15,480 --> 00:29:22,440 cry it's like a jump scare but with 653 00:29:19,000 --> 00:29:22,440 slides okay take 654 00:29:22,480 --> 00:29:29,799 itara hello my name is Kara and um I'm a 655 00:29:27,039 --> 00:29:31,679 Pon near you first 656 00:29:29,799 --> 00:29:35,000 timer thank 657 00:29:31,679 --> 00:29:37,880 you um so I'm a software dual fav 658 00:29:35,000 --> 00:29:41,240 profession and kind of forc into this 659 00:29:37,880 --> 00:29:44,880 whole Dev oops thing because working for 660 00:29:41,240 --> 00:29:48,200 a small organization with in a small 661 00:29:44,880 --> 00:29:52,159 team you have to do 662 00:29:48,200 --> 00:29:56,880 everything so we had this bunch of uh 663 00:29:52,159 --> 00:29:59,679 all services running on U bareal 664 00:29:56,880 --> 00:30:03,919 servers and and we tried 665 00:29:59,679 --> 00:30:05,600 to get them into the cloud and so first 666 00:30:03,919 --> 00:30:07,760 step was to 667 00:30:05,600 --> 00:30:11,320 create put them in a 668 00:30:07,760 --> 00:30:13,360 Docker images and create Docker images 669 00:30:11,320 --> 00:30:15,480 so I was following the best practices 670 00:30:13,360 --> 00:30:18,799 I'm trying to choose the 671 00:30:15,480 --> 00:30:22,120 proper Docker image from a verified 672 00:30:18,799 --> 00:30:24,000 publisher and Docker best practices say 673 00:30:22,120 --> 00:30:28,679 don't install anything that you don't 674 00:30:24,000 --> 00:30:32,399 want so using the slim package 675 00:30:28,679 --> 00:30:35,159 and yeah everything's good up until the 676 00:30:32,399 --> 00:30:37,240 time that you think you don't have to 677 00:30:35,159 --> 00:30:41,080 connect to the production 678 00:30:37,240 --> 00:30:42,720 server but sometimes you do when you do 679 00:30:41,080 --> 00:30:46,760 when you're using slim packages you 680 00:30:42,720 --> 00:30:50,799 might not have tools like PS or 681 00:30:46,760 --> 00:30:50,799 top and now in 682 00:30:51,080 --> 00:30:57,639 production you don't have the tools that 683 00:30:53,279 --> 00:31:02,120 you need the second do one of the other 684 00:30:57,639 --> 00:31:05,000 do best practice is to run Services as a 685 00:31:02,120 --> 00:31:08,000 unprivileged user how many of you run 686 00:31:05,000 --> 00:31:10,760 things as root on 687 00:31:08,000 --> 00:31:16,480 Docker yes 688 00:31:10,760 --> 00:31:18,399 SP so this hor to when because all right 689 00:31:16,480 --> 00:31:21,760 I'm running my services as a 690 00:31:18,399 --> 00:31:24,080 unprivileged user now I can't be the 691 00:31:21,760 --> 00:31:28,039 root on the production 692 00:31:24,080 --> 00:31:31,559 server so I can't install anything 693 00:31:28,039 --> 00:31:35,399 and pretty much done so the only Escape 694 00:31:31,559 --> 00:31:37,880 is to create another release using a 695 00:31:35,399 --> 00:31:42,080 different package and 696 00:31:37,880 --> 00:31:44,159 um have all the tools that you 697 00:31:42,080 --> 00:31:47,760 need 698 00:31:44,159 --> 00:31:50,600 um another thing that might haunt you 699 00:31:47,760 --> 00:31:54,720 with do best practices is 700 00:31:50,600 --> 00:31:58,240 uh so you kind of pin to a version uh on 701 00:31:54,720 --> 00:32:01,720 your docka image but over the years 702 00:31:58,240 --> 00:32:04,480 years pass by and you forget about which 703 00:32:01,720 --> 00:32:09,320 which Linux version that you're using it 704 00:32:04,480 --> 00:32:12,440 could be uh End of Line like all the 705 00:32:09,320 --> 00:32:14,760 security updates are gone and you might 706 00:32:12,440 --> 00:32:17,559 be using something really really 707 00:32:14,760 --> 00:32:20,639 stale and nothing tells you about that 708 00:32:17,559 --> 00:32:24,039 because it's hidden inside you you don't 709 00:32:20,639 --> 00:32:27,240 really look at your Docker files 710 00:32:24,039 --> 00:32:31,200 minutes so the takeaways from my 711 00:32:27,240 --> 00:32:33,720 experience with do do best practices is 712 00:32:31,200 --> 00:32:37,039 sometimes slim package is not the best 713 00:32:33,720 --> 00:32:39,799 you need you might need something tools 714 00:32:37,039 --> 00:32:42,480 like top P top 715 00:32:39,799 --> 00:32:45,639 PS 716 00:32:42,480 --> 00:32:48,120 um when you're starting a project always 717 00:32:45,639 --> 00:32:51,240 start doing uh start running it as an 718 00:32:48,120 --> 00:32:55,000 unprivileged user because trying to get 719 00:32:51,240 --> 00:32:58,360 that run get something that's that you 720 00:32:55,000 --> 00:33:00,840 have already developed to run as an 721 00:32:58,360 --> 00:33:04,200 unprivileged user is 722 00:33:00,840 --> 00:33:07,480 hard um unprivileged users don't have 723 00:33:04,200 --> 00:33:10,799 access to log directory um there are 724 00:33:07,480 --> 00:33:12,840 files that service can't read so it's 725 00:33:10,799 --> 00:33:18,080 better to 726 00:33:12,840 --> 00:33:19,720 um sort those out in the start of your 727 00:33:18,080 --> 00:33:21,080 building pipeline so you don't have to 728 00:33:19,720 --> 00:33:25,679 worry about those 729 00:33:21,080 --> 00:33:28,440 anymore one minute and yeah keep an eye 730 00:33:25,679 --> 00:33:30,480 on the uh Linux version and all the 731 00:33:28,440 --> 00:33:33,639 packages that you use on do Docker 732 00:33:30,480 --> 00:33:36,440 images because they can go get stale so 733 00:33:33,639 --> 00:33:38,480 maybe have some kind of a ci5 plan that 734 00:33:36,440 --> 00:33:41,679 tells you about any of the outdate 735 00:33:38,480 --> 00:33:41,679 packages thank 736 00:33:44,399 --> 00:33:54,639 you wow thank you so much okay uh up 737 00:33:48,600 --> 00:33:55,960 next we have the uh closing for devops 738 00:33:54,639 --> 00:33:57,799 cuz that's all we have time for for 739 00:33:55,960 --> 00:34:00,080 lightning talks I want to say thank 740 00:33:57,799 --> 00:34:02,000 thank you so much to everyone who uh 741 00:34:00,080 --> 00:34:04,200 applied and everyone else has come 742 00:34:02,000 --> 00:34:07,679 because we let everyone know very last 743 00:34:04,200 --> 00:34:09,119 minute they would be presenting and um 744 00:34:07,679 --> 00:34:12,079 they scrambling right at the last 745 00:34:09,119 --> 00:34:14,280 section second to get the slides going 746 00:34:12,079 --> 00:34:17,200 um okay we got 747 00:34:14,280 --> 00:34:20,839 it okay I'm going to do some more improv 748 00:34:17,200 --> 00:34:22,520 until Justin sets up the laptop which is 749 00:34:20,839 --> 00:34:25,359 going to involve me 750 00:34:22,520 --> 00:34:27,839 dancing uh you don't want to see me 751 00:34:25,359 --> 00:34:30,679 dance I have three left feet it's not 752 00:34:27,839 --> 00:34:30,679 good 753 00:34:31,240 --> 00:34:35,240 um cool how how did everyone find 754 00:34:33,960 --> 00:34:39,440 lightning 755 00:34:35,240 --> 00:34:40,720 talks yeah who's ready for uh tomorrow's 756 00:34:39,440 --> 00:34:43,280 lightning 757 00:34:40,720 --> 00:34:45,560 talks yeah nice okay they're not going 758 00:34:43,280 --> 00:34:50,000 to be like this they're going to be more 759 00:34:45,560 --> 00:34:51,760 uh open generic and so forth who is very 760 00:34:50,000 --> 00:34:55,000 keen to apply for tomorrow's lightning 761 00:34:51,760 --> 00:34:58,680 talks and submit a talk have we got one 762 00:34:55,000 --> 00:35:00,079 no one else really two three four five 763 00:34:58,680 --> 00:35:03,200 wow so many okay great I want to see 764 00:35:00,079 --> 00:35:05,480 more hands up uh as you saw it's very 765 00:35:03,200 --> 00:35:07,320 easy uh you just get up on stage and you 766 00:35:05,480 --> 00:35:08,960 talk you don't have to have slides you 767 00:35:07,320 --> 00:35:10,960 can just talk you don't have to make 768 00:35:08,960 --> 00:35:12,400 fancy slides because you won't enough 769 00:35:10,960 --> 00:35:14,839 you won't have enough 770 00:35:12,400 --> 00:35:18,440 time and now I'm getting kicked off 771 00:35:14,839 --> 00:35:18,440 that's my end of time thank you very 772 00:35:18,680 --> 00:35:22,800 much yes please Round of Applause for 773 00:35:20,920 --> 00:35:24,440 Evan for organizing the lightning talks 774 00:35:22,800 --> 00:35:26,640 uh he did that at the last minute and it 775 00:35:24,440 --> 00:35:32,200 is most 776 00:35:26,640 --> 00:35:32,200 excellent thank you so uh now