[Music]
hello oh the mic works okay great hello
everyone welcome to the lightning talk
session for uh the dev oops track um
this is our first
um time running lightning talks for Dev
oops so there's going to be a lot of
oopsies um but it's going to be fun
who's
ready yeah let's go Okay cool so
um we are all good okay so um how is
this going to work so uh we're going to
introduce who's up on deck which in this
case is James uh and then who is the
next upcoming speaker which will will
be in one of these
tabs I found the tab oh so next up will
be Pat so when I say next up I want you
to be ready to come on and um connect to
the podium Podium has a HDMI cable um
please connect as quickly as possible we
only have one um
Podium uh and so the quicker you do it
the less awkward silence there will be
and the less improv I'll have to do cuz
I'm not that good at
improv uh but maybe I'll get better in
this hour uh
okay that's the spirit yeah let's go
okay um yes it's very important to keep
to time because we only have an hour and
we have eight amazing speakers uh and if
it takes too long and you go over five
minutes we're going to throw you off the
stage um I will I won't be able to um
okay uh so there'll be a timer for
speakers which um Justin will be um
showing you uh and in the last 10
seconds there'll be um we want everyone
to be doing finger claps like this CA
show me yeah cool okay so that's last 10
seconds and then the last 3 seconds
we're going to do like a little hand
Applause a little bit louder yeah yeah
cool and then the last second we're
going have really loud claps and and
telling you we get off stage yeah nice
nice nice okay and then
okay awesome cool so bring it up for
James who is going to be speaking
about
something which is Pixie plus UV modern
python packaging take your away
James thanks everyone uh pleasure to be
here my name is James today we're
talking about the modern state of python
packaging so talking about two tools
today uh one is Pixie and one is UV uh
so could I get a raise of hand who's
heard of UV before probably most or a
good chunk of people it looks like if
you if you've been on hacking news I
guess at any point in the last 6 months
you've probably seen it on there seems
to be popping up quite frequently but
for those who haven't this one's for you
so usually these days when you do like
some python packaging you're probably
using well if you're old school you're
using pip you're creating your virtual
environments you have like a
requirements txt uh maybe you use pip
compile you have like a requirements.in
thing and then you compile the
requirements txt well UV is like here to
sort of change all of this and it's
essentially an improvement on a lot of
where python packaging has gone from a
pip install through to poetry there's
like hatch
PDM you know there's probably like 10
other tools that exist currently so
hopefully this is the tool that we can
sort of get behind um so I'm just going
to like quickly just rock in and do a
little live demo so um well I'm going to
make a thing called UV and just show
around how it works so if I do UV in it
now I have a project that is now my
python project I can do um if I actually
do a it's going to have I've got a
python version here which people might
have seen before so it's going to
basically tell my IDE and whatever which
python version I'm using um I don't have
to actually activate into the
environment so it's if I install a
package like um let's just add EV ad py
test so that was pretty pretty quick um
don't think I've done that before so
that's probably not either um anyway so
now par so I don't have to like activate
into this environment uh if I do like UV
run I think it's hello.py is the default
one yep there it is so UV run is like an
UV ad all this kind of stuff kind of
abstracts away the virtual environment
so you don't have to worry about that
anymore it's very fast uh it installs
python for you so you don't have to have
like Pi en or any of these other tools
um this is of the direction where a lot
of modern pip Python package development
and all this kind of stuff is going so
if you haven't tried it or done anything
with it uh recently then I'd highly
recommend um but the second tool which
I'm not sure I'm tracking for time so
we'll keep going but
um okay great halfway that's that's good
uh Pixie so raise your hand if you're
like a condo
person there's a couple of people yeah
so it's probably much less but you know
cond does have a place especially if
you're in a certain I mean ourwork
corporate environment you can't in
sometimes install everything you want
directly from from GitHub or wherever so
cond is a good way to install some of
these things um so condo is kind of the
thing that was used um a while ago to
install like things like numai and
pandas because you have all these like C
dependencies that are were hard to get
nowadays you can use Wheels to do that
but that didn't really exist for a while
um and condo was really slow so people
kind of were sick of it and then they
they moved to this thing called Mamba
which was like kind of like condo but it
was a bit faster and it pretty much did
all the same stuff nowadays uh probably
in the last two years I think the the
same guys who created Mamba have created
this store called pixie um and it's kind
of a similar thing to UV it's built with
rust it's very fast it has a lot of
different benefits so you can pretty
much install whatever you want so if I
do like pixie in it it's going to like
create my my thing and then I can add uh
Python 3 out2 and it's going to be
pretty quick hopefully yep there you go
okay great um you can do other stuff in
here so you can have like a different
environments within the same project
well actually that's one of the main
differences is like cond and Mambo are
like you create this global environment
you can sort of take it with you
wherever you go but pixie is Project
based which is similar to how a lot of
other python tools work which is sort of
more ergonomic from a developer
perspective um you can yeah install
whatever you want you have different
environments so you can have like a test
environment you want to run your tests
with like optional packages that should
only exist in the test environment
things like that anyway very good if
you're on cond and you haven't tried
pixie already would highly recommend
anyway I'm going to sort of wrap it up
there I think we're nearly at time but
there you go thanks
[Applause]
folks next up is oh look it works okay
great um awesome so up next we have uh
GTH could you get ready please um but uh
right now we have Pat who's going to be
speaking about um ml Ops what how that's
a very good
question um all right let's see how
quickly this works
um cool take it away
Pat
um who here has heard of the term
mlops yeah that's good that's maybe a
third is a lot of people haven't all
right who here has worked on some worked
on a project being a data scientist done
something which you'd say you'd have
some sort of
Ops okay like 10ish maybe okay that's
cool I mean I was I wasn't really sure I
was going to say I just like it's
something I talk about a lot um this is
a slide deck I put together like a year
ago I just thought like I'll Chuck it up
and see what it is so um emots machine
learning operations uh it's yeah devops
for machine learning um it's not
something that even existed uh like six
six years ago now I remember I first
started working in data science in in
2019 and like end of 2019 I some of us
were saying we need we need to do this
better this is this is a mess like we
got to have something better I've heard
there's this thing out there called
mlops um and yeah like it's I think a
lot of organizations in the the process
of trying to turn create actual working
data science products um that at the
same of time are trying to figure this
out it's an ongoing thing um this is
probably the best and simplest
explanation of it if I talk to like
managers orone want this anyone wants
this for exacts like it's really good so
um especially if we're talking so you'll
have a bit of familiar familiarity with
software so super simplistic um can
shoot it down but yeah traditional like
devops will involve you know we've got a
code base we're making changes to it for
for whatever reasons features fixes
whatever and there's a whole bunch of
tests that will run on that before we
deploy it um and they'll monitor it to
make sure that it keeps on running okay
or if it doesn't we find out what's
going wrong and you know that's a that's
part of a cicd system to make sure we
can make change and iterate and improve
you know in a reliable way and so
machine
learning lost of bit that's all right um
is this plus the added comp like a whole
extra dimension of complexity of
changing data over time um and a model a
machine learning model like there's all
all these things neuron
networks you know um so I could learn AI
all that stuff like it's just a way of
encapsulating information about a data
set um and then try to use that
information to make predictions about
new data but it's all very heavily
dependent on data and end of the day
there's more testing more monitoring um
more uh yeah more more you know like
just extra tests um extra tracking that
needs to be done as part of it
um and so like a team that's going to do
this is going to have to be more complex
and more more skilled like have a WI a
variety of data and other engineering
skills in a regular team um and that's
the main thing and and this is another
famous um uh image that people might
have seen two minutes go um they're like
if you want to get to the point of
having machine learning running
application you know a lot of what gets
taught in say when I did a data science
course is how to make models the model
and the data science the machine
learning part is only a tiny little part
of what's going on we need all the rest
of like the traditional software
application code that goes around that
um and if we're hosting in cloud and
doing everything there everything that
goes on there plus a whole bunch of
extra stuff around like managing the
very complex data processes and
monitoring that's going on there and so
that's kind of the space that we're
working in trying to like figure that
out as we go um there are tools and
platforms out there that are supposed to
be you know supposed to make a lot of
this easier um I'm yet to use them I'm I
was hoping it' be like Has anyone used
any of these ml platforms if you have
please come and talk to me I'd love to
pick the brains of some people who have
um but at the end of the day it still
come it seems it still comes down to a
problem of any machine learning data
science project involves a lot of
veryable spoke stuff we have a problem
we're trying to fix we work at
industrial settings we've got you know
industrial machines and data sources
which are very specific to that we need
to write a whole bunch of very specific
code to you know turn that into
information we put into a model and use
outputs and there's there's like always
going to be an element of what's bespoke
and what can be automated in terms of
like scaling doing this sort of
monitoring and improving over time
um yeah cool I mean that's that's emops
in a nutshell um I would love to talk to
anyone who's you know engaged or doing
anything in that
space thank you so much that was great
um so GTH you're on now y uh and
in up next we
have mysterious person called Anthony
you're up next get ready please cool
HDMI yes do you not have HDMI okay time
for some improv um cool who has done ml
Ops raise of hands can anyone USB see
this uh okay look at that the audience
is coming out to save us wooo thanny
thank
youny okay oh I haven't said what goth
is speaking about uh when will python
3.6 support end hasn't it already ended
maybe goth will tell us about
it uh okay but put put the laptop here
so people can hear you
okay screen ah because microphones yes
look python 3.6 excellent oh there we
go when will it
end sorry that was my tick not me this
is me long story come talk to me later
uh anyway
you that'll help right when will python
3.6 support end I wonder allow
rhetorically isn't that just ancient
history
it's so old that if you go to um endof
life. whatever that it was handy website
um you have to go all the way down and
click show more unmaintained releases to
find out and then we can go
2018 was the last that we had to worry
about python 3.6
right because python that's that's when
they stopped fixing
bugs ah but some of you point out
what about
security real answer is 2021 because
vules but that was still in the past
right this is somewhat Complicated by
the the role of distributions where
they've taken software maintained by
other people and then repackaged it and
then taken over maintenance for for
their
customers and so for the people who
have to Target these platforms they have
to stick to this road map which is not
Python's road
map um now why is Fedora important well
the reason is that in hidden in the user
lib exec directory which many hands up
who knows what user Li exec contains and
why you lucky
bastards some of us have to worry about
this for a living um us a li exec is
where you hide binaries that are used by
other binaries they they are not really
for your
use um anyway so there's a copy of
python in there it's called user Li ex
platform python
why what so dnf can use
it which is the new name of yum their
package manager so literally just to
install packages you need a copy of this
yeah you can see it hidden the upper
where the little thing is use a liic
platform python and that's a python 3.6
which means that anytime that any python
programmer is told hey you you have to
Target this
particular uh ancient Fedora um
hypothetically um but you're not allowed
to install
anything well there is a python on there
and if you don't use it you have to use
bash or Pearl four
so from that perspective you could argue
that the real end of life for python 3.6
was 2018 because
UTA but it's not that
easy red
hat red hat tooker and turned it into
release for
eight right so the real answer is 2029
because red hat
or 2032 because
Enterprise but what will it be because
you and and I'm asking this because
there might be people who maintain stuff
that I would like to rely on as a target
of these platforms um and and so really
it comes down to whether or not you
think I'm an edge
case or as I prefer to put it a real
life actual person yeah I am a fellow
python
programmer so the hero stick I would
like to urge you to consider is um one
minute thank you just to consider where
you are between the
platform and and the user I guess at the
other end the
application and the closer you are to
the
fun definitely use 3113 full of great
stuff right but the closer you are to
the platform if you could support these
the the people closer to the metal
that'd be great so and in particular if
you're supporting build
tooling uh packaging like UV um I've
already fixed 1 3.6 bug in I broke it
again so I have to go back and fix it um
fundamental packages like requests like
if if you're big and bad enough to be
maintaining a package which is used by
literally everybody how about supporting
it for literally
everybody thanks um and uh yeah like
like I said close you out of the app
doesn't matter and please do so until
2032 because the
Enterprise thank you very much who's
next uh good question let's see
Anthony's up on deck and up next Once my
laptop logs in you can do it
laptop no
oh up next we have uh
Warwick cool
uh cool Anthony's going to speak about
also Python and releases but bug F bug
fixes how and why uh almost
there to
come bug fix yay okay great is the
window gone cool take it away Anthony
okay ah so uh sorry I'm my glasses are
fogging up
uh oh good good point um okay python bug
fix releases why do we have them and how
do we do do them so I'm Anthony I used
to be the python release manager uh of
all those versions people want to do
quick math that's 5 and a half years and
three and a half years where I was the
only release manager
um B so the short version of this talk
one slide pep 6 please read it it'll
make you happy will make me happy these
are examples of a bug fix release you
know the third digit uh some people call
them Point fix releases they're wrong
it's pep six says they bug fix releases
and it's right so what's what's in a bug
fix release only bug fixes except
there's a security buug then then we can
change things why because true and false
and 2 3 and 2.2 yes we're talking about
the Dark
Ages true and false were unexpectedly
backported to python 2.2 in a point
release it was originally added in two
three and again unexpected back backport
so why is this
important because of this if you look at
old python 2 code you'll often find this
at the top of every single python
file because you had to you didn't know
you couldn't use Python 22 does it have
true and false I don't
know so I had some words with GTO some
of them were rude and said said let's
not do that again and I sort of took
over doing the maintenance releases then
uh so there was a big problem there the
vendors as GTH was just saying didn't
trust us the distributions didn't trust
us which was a pain in the butt because
if we break functionality they don't
trust us cuz they've got customers they'
got Downstream vendors or Downstream dys
and so won't they won't put in bug
fixers there they'll do delays of
getting the bug fixers out there'll be
vendors back porting bugs fixes which is
also
bad uh I didn't swear um duplicate this
the problem with this was that we ended
up with duplicate bugs in in our tracker
and we go no that's already fixed you
just need to upgrade and they go well I
can't upgrade or whatever um it makes
this look bad when there's fit bugs we
know about and people like see and there
might be unpatched security fixes
security bugs bad again so how do we do
this well you have a python release
manager who watches the uh maintenance
maintenance branch and looks for things
that change functionality and then you
yell at someone and and if necessary you
roll their fix their change back so
again read pep 6 it's not very long it's
you know dates back a little bit but not
too not that okay dates back to 2001 um
so
if you want to do an update please do it
refers to things like CVS and Source
Forge um it really it really needs an
update and you can also do a bit of
archaeology because it also has a list
of who was the maintainer for various
branches so that might be fun and if
you've never never done a push a a patch
this is a good excuse anyway please
please don't break up don't break bug
fix
releases anyway
thank you
Anthony hold on uh okay say lightning
so uh yes wck is up on stage up next we
have
Kara uh sorry oh good walk is going to
speak about I would actually appreciate
a oh no no no I don't have a something
about HDMX yes awesome okay are we
plugged in are you
ready one two three oh
okay one two
three okay uh oh it worked okay that was
some time delay cool okay take it away
thank you okay so um I've just got a
ajango project that I just scaffold
together right now uh it's essentially
got one view uh which returns this work
function which is just uh sleeps for 3
seconds and returns a u ID uh so
anything that's
complicated um on you know your database
or some calculation so the page
therefore takes a while to load uh so I
want to speed that up or at least make
it better for the
user uh so first thing obviously we can
just go and uh in the view we can just
cache it um so cool um so now it'll
take a while to load but when I do
subsequent loads uh the problem is that
you've got the cold start so the first
person to get to your website is always
going to get uh that crap um loading
experience uh so has anyone here used
hmx uh for those who haven't it's it's a
really great way to uh make look also
Twitter's Twitter is a dumpster fire
right now but he's well worth a follow
he's like the one thing that's still
good there um it's a really simple
JavaScript library to return tiny little
page Snippets over the wire but use HTML
instead of Json so you don't need to F
around with view or react or any kind of
client side templating you can literally
return HTML from Jango so I've got a
second view here uh so um
slor uh and my index.html this is all I
need to do I just need to add HTM X and
I just say HX get from the work URL and
Trigger it on load
uh so that then brings up the page
snippet so now I get an instant load uh
but I've still got that time there um so
better cuz you're still you're getting a
immediate load and you're lazy loading
the page component uh in production I
actually use this for far more
sophisticated things um but we can do
better so uh I want to mix and match a
little bit um so on the uh do work I've
now put the caching on again uh so cool
uh the only problem here is I'm still
doing that extra Network request so if I
change this and delay just to simulate
the network uh you'll see um just doing
the full load this time but we'll do um
so it's still doing Network request
every time uh but we've already got this
data and I'm I'm a bit traditional I
feel like if you're loading a page from
the server you just want to load the
whole thing if you can uh so so I have
this hacky
solution um that I [ __ ]
sorry I
know oh um that's my fault I'm using
Source tree specifically because I knew
that trying to do this in the command
line would break my brain uh doing great
then um so what I've done is this uh
essentially taken D jango's existing C
template tag uh copied it and just
modified it so that it will never
actually write to the C
uh so in the work snippet I use the old
C tag uh which does the complicated
thing uh writes it into the case in my
index though I use my tag which will
only get from the cas and won't write to
it uh the fallback is to then use the
HTM X
trigger
so uh we now get slow page instant page
and if I even go and change
this yeah
good uh to use an HTM X
delay
should there we go so yep um so that's
that's basically it um I've been
migrating a very large project as part
of my work uh and um that's just a handy
little tidbit I learned along the way um
so if anyone hasn't tried HDMX uh do go
check it out um it's really great for D
Jango uh just means you you can you can
write websites the good old way with
HTML and no Jason and I really like that
so um thank you uh
yeah cool thank you very
much
um cool we've got casara on
stage and up next
Susanna is Susanna here
okay great uh well not great but
um yes kar's on stage is going to talk
about how Docker best practices can
haunt you are you going to do scary
things are you going to make this slide
thing appear that's kind of scary
cry it's like a jump scare but with
slides okay take
itara hello my name is Kara and um I'm a
Pon near you first
timer thank
you um so I'm a software dual fav
profession and kind of forc into this
whole Dev oops thing because working for
a small organization with in a small
team you have to do
everything so we had this bunch of uh
all services running on U bareal
servers and and we tried
to get them into the cloud and so first
step was to
create put them in a
Docker images and create Docker images
so I was following the best practices
I'm trying to choose the
proper Docker image from a verified
publisher and Docker best practices say
don't install anything that you don't
want so using the slim package
and yeah everything's good up until the
time that you think you don't have to
connect to the production
server but sometimes you do when you do
when you're using slim packages you
might not have tools like PS or
top and now in
production you don't have the tools that
you need the second do one of the other
do best practice is to run Services as a
unprivileged user how many of you run
things as root on
Docker yes
SP so this hor to when because all right
I'm running my services as a
unprivileged user now I can't be the
root on the production
server so I can't install anything
and pretty much done so the only Escape
is to create another release using a
different package and
um have all the tools that you
need
um another thing that might haunt you
with do best practices is
uh so you kind of pin to a version uh on
your docka image but over the years
years pass by and you forget about which
which Linux version that you're using it
could be uh End of Line like all the
security updates are gone and you might
be using something really really
stale and nothing tells you about that
because it's hidden inside you you don't
really look at your Docker files
minutes so the takeaways from my
experience with do do best practices is
sometimes slim package is not the best
you need you might need something tools
like top P top
PS
um when you're starting a project always
start doing uh start running it as an
unprivileged user because trying to get
that run get something that's that you
have already developed to run as an
unprivileged user is
hard um unprivileged users don't have
access to log directory um there are
files that service can't read so it's
better to
um sort those out in the start of your
building pipeline so you don't have to
worry about those
anymore one minute and yeah keep an eye
on the uh Linux version and all the
packages that you use on do Docker
images because they can go get stale so
maybe have some kind of a ci5 plan that
tells you about any of the outdate
packages thank
you wow thank you so much okay uh up
next we have the uh closing for devops
cuz that's all we have time for for
lightning talks I want to say thank
thank you so much to everyone who uh
applied and everyone else has come
because we let everyone know very last
minute they would be presenting and um
they scrambling right at the last
section second to get the slides going
um okay we got
it okay I'm going to do some more improv
until Justin sets up the laptop which is
going to involve me
dancing uh you don't want to see me
dance I have three left feet it's not
good
um cool how how did everyone find
lightning
talks yeah who's ready for uh tomorrow's
lightning
talks yeah nice okay they're not going
to be like this they're going to be more
uh open generic and so forth who is very
keen to apply for tomorrow's lightning
talks and submit a talk have we got one
no one else really two three four five
wow so many okay great I want to see
more hands up uh as you saw it's very
easy uh you just get up on stage and you
talk you don't have to have slides you
can just talk you don't have to make
fancy slides because you won't enough
you won't have enough
time and now I'm getting kicked off
that's my end of time thank you very
much yes please Round of Applause for
Evan for organizing the lightning talks
uh he did that at the last minute and it
is most
excellent thank you so uh now