[Music]
it's loud this
time okay it's lightning talks time hi
everyone um this is my favorite part of
Pyon Au and hopefully it will be yours
as well um today we have 14 people who
are giving talks of 5 minutes or less on
uh whatever subject they've decided they
wanted to speak about but we're going to
keep this really strict as usual uh Nick
here in the front row death trap seats
is keeping time for us and when we get
towards the end of five minutes Nick
will be uh doing the light Applause
which you can practice
now and then when we get to 5 minutes we
will applaud loudly so that the person
gets the hell off
stage
St he please welcome Toby
uh hello uh I'm Toby I work at Cipher
stash I've got to talk faster I learned
too much about the postgress protocol
and you can too so this is how the thing
works under the covers when you're
talking the first thing we do is send a
startup message uh it's got a length and
it's one of these values uh clearly they
all make lots of sense protocol version
fun fact it's a 32 bit uh number there's
only one protocol version that only has
been one so they've got lots of room to
spare they could have who knows used
something else uh all of this is really
great uh you send a cancel the first
thing that does is disconnect anyway
once you you've sent all of this now
you're ready to send an actual message
the thing you will do is you actually
the simplest thing you can do is send a
query uh it starts with a Q which is
good um uh what is actually happening
under the covers here is what they call
the simple protocol so you send the
query and you get back a row description
some data rows which is another type of
message and anyway that gets boring
pretty fast but what you actually want
to do of course is send a parameterized
query so that gets uh much simpler uh so
this is what they call the extended
protocol uh
it's incredibly chatty so literally
every time you send a query some of
these steps are happening everyone is is
a different uh Network message so you
first you send a PA which is just
basically the query uh then uh you can
skip describe but that's hard to find in
the docs uh coming to bind that's where
you will send them send the actual
parameters that go with your paramed
query uh and then eventually you will
execute and that's where you get some a
row descriptions and data rows so every
one of those steps happens uh this is
for both parameterized queries and
actual prepared statements the steps are
basically the same
internally it starts off pretty pretty
pretty fine and easy uh a PA message has
a
a string basically that is the name of
the message if case it's the prepared
parameter a prepared statement that's
how you refer to it again uh then you've
got a number of types uh that you send
these are the how do you what what what
are they they are the you can override
the types that are the actual column
types of the database at this point you
can say yeah I know it's an you know an
8 length int but I'm only going to send
you
two um so that's cool but also leads to
some unpredictable Behavior because none
of this is very very clear sometimes
binding ah binding oh my God so binding
is a great great time that you can have
uh if you gave it a name you can give it
the name here cuz now you're saying this
is my prepared statement uh you've
got well then there's another name which
is any it's a slightly different type of
name but don't it's for a different
almost the same thing but different
you've
got uh formats that come out uh your
parameter account this format this is
not the type of the database what
they've done is there's two different
ways you can send the parameters you can
send the default format which is text
you can have a format that applies to
all which would be one because the
defaults already uh text there's only
two one text and binary uh and then a
number of parameters that will say I'm
going to specify a different encoding
for each one of the things in my
prepared statement binary or text now
the fun thing about text when you send
it as binary it's the same so that's
important to remember your text is
binary but you can send a number as
text uh in which case you sending the
asky number not the binary
representation so you can mix all of
this together as well you can have mixed
parameters where the system has to
decode and work out what is going on uh
eventually probably we need some results
so Road description now will give you
the type which is either the database
type or the type that you overrode and
I've Got 5 seconds left the whole
thing's terrible never look at it
thank
everyone well I guess the lesson to this
is that we just shouldn't be using
databases at all because you can't
understand the protocol Elena has told
me that I need to tell all of you that
if you have no plans for dinner and you
want to have plans for dinner you should
see the food and drink channel in the
conference Discord so you can make
dinner
plans uh on Deck uh is Andrew Dennison
and if you can walk I think around
the stands as a post in front of the
stage that would be great but first uh
Rene Noble hi there's my hi I'm Rene
Noble I do a bunch of things one of the
things I do is I'm the CEO of the girls
Programming Network and the structure
it's under called Tech inclusion I'm
going to tell you some things you don't
know about gpn today possibly maybe you
know lots of things about gpn today but
firstly who who gpn uh and there's
probably possibly a lot of people who
are gpn I'm going to tell you exactly
who but first I kind of want to know who
in the room has ever been to gpn as a
student or as a give me a
woo yes there's a secret secret societ
soety that lives amongst us you maybe
didn't even realize it's actually
everywhere you're already going uh
especially amongst Pon cuz Pon is really
cool and gpn's really cool too uh but
gpn is for women and gender diverse
people to come and volunteer and teach
girls and gender diverse kids would you
have just girls in the name which is
like not including women and the broad
gender diversity that we do include as
well the names are not great but we do
have Tech inclusion which is our
umbrella program which kind of hopefully
addresses the name issue uh if you do
have an issue to a solution to our name
problem please let me know we've been
working on for like 6 years uh come and
tell us um so thing two y gpn uh
obviously this question kind of
sometimes answer itself teach girls to
code equals good probably but it's
actually not the real reason that gpn
exists adults actually need help too A
lot of the time if you end up at
University and you're a woman in Tech
you'll be like hello no other women in
my tutorial so and you also probably
feeling not very confident so gpn was
invented as a way to create an
opportunity for women to build
confidence and skills in leadership and
connections with other women and that
happened nearly more than 16 years ago
with our lovely Nikki ringland up there
with the tiny child next to her who is
one of our Founders which is fantastic
and we're still going strong and going
better than ever so it helps adults as
well creates those spaces where you
don't have to be the only person of a
minority gender in the room and you can
try new things in a low pressure super
friendly highly supportive environment
it's got Good Vibes it's got silly hats
it's got pizza it's got friendship um so
yeah doing and we're doing more
volunteer events whenever we can to
support our adults throughout the
pipeline as well we're also going down
the uh down the age groups as well we
now have Jan junor which we just tried
in Sydney where we're teaching the tiny
children in year 3 to six to do coding
which is super cute and it also means
that our high school kids who come to
our high school workshops get to come
and volunteer as well so you got to get
them into that pipel L everyone stays in
the pipeline has Good Vibes has a good
time and they look so cute with the
young people teaching the even younger
people it's a great time so we're making
the pipeline longer and more sturdy all
the time and yeah so that's good but
what is gpn so we're doing these free
workshops by women and gender diverse
people for kids and gender girls and
gender diverse kids that's awesome what
do we do obviously gpn girls Programming
Network we're doing some programming
we're doing python cuz it's awesome we
have a great way to include people who
have all diversity of experience you
could be your first time programming or
you could be coming to gpn for 10 years
like Izzy who's been sitting here and
helping out through the event she's so
awesome and we love her yes you appuse
for
Izzy and now she's helping us make gpn
bigger and better around Australia so
you can be part of the pipeline for that
long doing really cool stuff and we've
got this cool progy that helps kids
learn wherever they are we have like
three versions of every workbook so no
matter what you're coming in as be like
you're going to make Tic Tac Toe today
and you will make it whether you use
nine variables to store it or you use
like recursion to make it Sol for it
you're going to do something in there
and you're going to have a cool
accessible Challenge and a fun time it's
going to be fun because culture I like
at Pon is really important in gpn so we
have our values here uh to make sure
everyone's having a fun time I honestly
don't care if people learn to code like
Linda was saying in the keynote today I
don't care if you learn to code I care
that you learn that you can learn to
code and then you go and solve cool
problems later but hopefully come back
to gpn and stay in our Cool Front
network of supportive
people uh so at the workshops we did the
coding we also do unplug activi so we
can see how these things work in the
real life context CU as we know that's
super important and makes it feel really
relevant we also have these mentoring
opportunities so like our senior
students can be like how do I do stuff
in the real world but also those
informal opportunities to learn and
connect with other people and go hey
Sally's really cool she's only a couple
years older than me maybe I can be like
Sally or Tina or Kai or anybody and you
see all those people at those different
stages of their learning Journeys and
Tech careers whether they're in year 10
or they their 10 years into their career
so where gpn it's no good if it's just
like Justin Sydney or something but
actually it's in lots of places so we've
got it all around the country these
orange ones are coming next year please
help us out at those to get those
started up uh also we've got our purple
ones which have been established but we
always need more help there as well and
we want to go to new places so if you
can connect us to any new places please
let us know we love to get things
happening but how do we do that we do
that with volunteers who come and do the
things at the workshops our sponsors
help us get those and our University
Partners so you can help no matter what
your gender thank you very much come
along thanks
Rene how I I don't understand how a
thing starts in Bernie before anyone
else anywhere else in tazzy but uh I'm
glad they're doing
it um Izzy you are up on Deck but first
Andrew is going to be talking about
Hardware
maybe it looks like it we'll see how we
go um I
thought probably about two years ago I
wouldn't have even been considering
being at a python conference because I
didn't even use Python so and my journey
to python after being involved in
electronic design and software for a
long time was completely accidental I'd
avoided it to be blunt but we were
looking for a way to put
together um softwar defined Hardware so
using a device called an fpga which is a
simple way of saying it is it's a piece
of electronics that you can program to
do something like BS CPU or be something
like a peripheral to control something
and I wanted to a nice way of putting
things like that together I started
looking at Classic fpga Frameworks which
are a bit like writing in a simp
language and I didn't want to do that
then I tripped over a reference to a
little open source project about I think
it was nv2 which was talking about how
they transitioned from a classic
framework to using something called
litex to put their design together and
that intrigued me I read about it and it
was using python to
represent um to effectively generate the
hardware design and I thought that can't
possibly make any sense that can't work
and I didn't want I had no intention of
using python anyway but I started
looking at litex from there I found that
it actually solved the problem better
than I thought it could have so I
begrudgingly started using
python from there I then started to
realize that I actually quite liked
python despite my best interests and
avoiding it previously so it's been a a
very interesting Journey from
Hardware through to trying to solve a
hardware problem which led into another
sort of software solution which made me
Learn Python which has then resulted in
Python being integrated in more of the
things that we do at work so it's
interesting the angles that you can take
to get into tools like python or into
technology in general so it's um it s of
be interesting to talk about that as an
angle um it certainly is a nice way of
expressing both the Deep technical
details of an electronic design but also
the much broader Integrations that
actually give you
a a far better introspection so from the
actual electronic design you can
represent the interface to the
electronics and generate Library layers
and other bindings and tests and things
like that so those sort of Integrations
and automation have been where we start
to see the real strengths of python and
its Integrations so
that's a very Meandering introduction
but it's led me into being quite
interested in Python now made me to
start to tr sort of take micropython
more seriously which i' also hadn't done
much with but that's now going to be
come something that becomes another
piece of what we do so it's um yeah
python all the way down so anyway I
shall uh at that point I might uh leave
it to the next person thank
[Applause]
you thanks for that uh there'll be a
moment of interpretive dance from Beno
at this point while we wait for
the while we wait for the laptop to get
sorted out over this side uh casara
you're on deck over this side thanks
[Applause]
[Music]
[Applause]
Beno see I just don't have the uh I
don't have the will within me to Vamp
for the 30 seconds it takes to do a last
minute laptop change but
hopefully hopefully this is going oh
we've got a screen here this is very
exciting we've got a
screen oh it went
away a great thing that our av team have
done this year is provide a fully
self-contained AV testing station which
uh future presenters can find uh towards
the uh the loom
building and if you use that you don't
end up having to do AV testing on
stage
great hey start the
clock okay I'm just going to start by
apologizing for all of that cuz that was
entirely my fault anyway um so thoughts
on teaching Lego robotics in schools by
me Isabella Hogan the best
honestly my qualifications so let's be
clear I don't have very many
qualifications I am in first year uni I
don't have a teaching degree I don't
have any of that but I have spent the
past year teaching year five and six
Lego robotics in a classroom once a week
yeah here's pretty much what I've
learned okay how I taught it so I taught
it by challenge-based learning mostly
because I don't have any real power over
them like I can't yell at them I can't
do any of that so if I give them
challenges and points I can take away
the points
and that's basically what I can do um
and I found that this was actually
really really helpful cuz they get super
excited when you give them points super
excited when you give them challenges
and it's a really good way of making
sure that they are actually learning the
things you're teaching so what I would
do the way I would set up my lesson is I
would sit out the front I would teach
them something and then I would say okay
here is one challenge here's an
extension challenge if you finish it too
fast go
do the things that I just taught you how
to do um and I to be fair because I'm
not a teacher I used a lesson plan that
I found on the internet for half of the
year the first semester to do
programming that was things like
movement variables functions all of that
starting from the basics going to the
heart of things
um but I made up all of my own
challenges because their challenges
honestly
sucked um but the best bit I think was
that I spent half the year teaching them
engineering Concepts because they're
year five and six they don't know very
much they know what a gear is they don't
know why they don't know what they do
with it they don't know how to use it so
what I did is I did the same thing I sat
up the front I told them what a gear was
I told them what a gear ratio was I
showed them some examples of why you
would use a gear then I gave them an
engineering challenge using the gears
and the code that they running you just
to keep putting it all together i t
taught them for engineering I taught
them gears pulley uh levers I think and
rack and pinions because those are the
main things you can actually do in
Lego this is my favorite success this
was one of the challenges I gave them to
show them how to use gears how to use
gear trains and how to use pulley so I
told them that you had to make a crane
um I didn't give them very much
instruction but this was one of our
teams I am actually really proud of it
it's so cool honestly they they went
from nothing to this and it was really
awesome um but the way that they got
this to work the best was they started
with a drawing which is what I made them
do do a drawing what do you need what
shapes do you need where do you need the
gears how are you going to put them so
that the thing actually does the thing
that you need it to do um and that was
super useful that's one of the best
things that I think that I worked out
that they needed to do they need to draw
the thing
so what are my main takeaways from
spending a year teaching kids finding
them very annoying
um and eventually getting them to a
point where I feel like they know a lot
more than when they came in so the first
thing is that they need to draw what
they are going to make because they
can't imagine it in their head if I tell
them you need to make a thing that can
solve this Challenge and they know they
need an arm they know they need to push
down they don't know how to make a thing
that does that um so if you get them to
draw it they can know what the shape is
they know where the G gears need to be
and then they can start trying to put it
together they don't have to keep using
their imagination of where the Lego bits
are they just have to know what shape it
is next is you give them one goal they
can't do multiple goals I've tried you
got to go one goal at a time then they
know what to focus on otherwise and it
has to be a specific specific goal if
it's too broad it's too broad they're
not going to do it um next you need to
teach them how to make things strong
because my main problem in my classroom
is that they have their gears
slip um they disconnect they don't move
and then they get frustrated and angry
and they're like but I've put the gears
next to each other um teach them how to
make strong
Lego lastly line following is really
hard if you're going to do anything you
have to spend a long time online
following but
anyway that's what I've learned maybe
it'll help you thank you for
listening thank you for that story of
how you taught primary school kids about
how to build a crane it was really
uplifting uh on Deck is Javier but first
kashara who's going to answer the
question WTF
ietf
ITF hello my name is kissar my talk is
about how to create your own RFC first
um RFC is stands for request for
commands um but not all rfcs are
internet
standards for example RFC 9,000 the
quick protocol that's an internet
standard you can recognize this by the
category it says standard there standard
stack and this faster than light speed
protocol obviously not in standard it an
informational RFC also it's special
because it's released on first of April
so it's a April first
joke and this is another informational
RFC but it's not a joke it's a serious
RFC um so informational can be jokes and
uh serious ones and there are
experimental Ares like this one the DNS
over
https the rfcs are published by uh RF
some by RFC editor and right now RFC
editor publishes four formats first the
HTML and the text format the PDF and the
XML file XML is the source of the RFC
the RFC starts its life as a internet
graft internet graft doesn't have RFC
number but gets into different revisions
over the time until it gets published by
RFC editor um and allocates RFC number
this program called XML to RFC uh Python
program free open source program which
generates all these formats when you
submit the XML file but this is
2024 and nobody really likes to work
with XML files especially
humans um
so so you can use markdown um this
install this RM called cramon RFC which
will generate you the XML file that you
want to feed into to the XML
Toc or you could use an online service
called other tools um another free open
source project and upload your uh
markdown file there and generate the
RFC um
so I have a internet draft here it's
standard for lightning talks I just WR
yesterday and um yeah so it's got a
bunch of metadata like title document
name category as in info for
informational and the author name some
references and then abstract and middle
and content like introduction and
structure for lightning talks like
there's no
structure so all with other the tools I
just have to select my markdown
file and if I want the HTML I click on
HTML
and wait until it generates
it and I have my RFC or the internet
[Applause]
draft so with other tools you could
gener like click on these other buttons
and get the different
formats and if you want to learn more
about uh internet uh standard process or
the rfcs you can go to i.org or talk to
me um I can help you with some and if
you want to get into that uh draft that
I just wrote uh and play with that uh
scan that QR
code that's all I got thank
you thank
you that was great you should have learn
learned something um Julia you're on
deck on this side but first uh Javier
Candera thank you Chris thank you
everyone I'm happy to be here on wunan
today talking to you about how to find
self enumerating pangrams with python so
what is the oh it's a pangram a pangram
has all the letters of the alphabet in
your language if your language uses an
alphabet and uh this is the one used by
typographers but you can also make a
pangram a self
inating uh you can make any sentence
self enumerating by having it say how
many letters of each it has so in um I
think it was in January 82 Douglas
hofstad in Scientific American published
this amazing sentence of Lee salow so
the fact that it starts with only the
fool would take trouble and last but not
least I'm going to tell you now it's
actually a Dodge because it allows you
to fill the numbers by using letters
that are not in the words 20 or five or
one it is much more difficult to do this
this autogram
contains and only use and and not and
but not least and the amazing single Zed
which Lee alos did
using uh Hardware well actually he did
this with code but he was very
frustrated that in his vax whatever he
was in a university in in Holland he
could only do 10 combinations per second
and he did the numbers and um he checked
that even with his constraints he wasn't
using the whole Space of letters he was
doing a smart search that didn't search
on letters that are not part of the
numbers it would take 31 million years
for the record um my code that I started
writing this Wednesday does 3,000
combination not through my Merit Mo law
did that so
for my code it would only take 10,000
years to numeral combinations that's too
many so sorry we need to we I mean yes
but it's on the shoulders of giant so he
built this thing and that was what um
amazed me in when I read in scientific
americ he wrote actual Hardware he built
actual Hardware to find these
combinations so I'm now at the part
which is the actual risky part of their
thing because um
I I used for my code uh for my where's
my uh pointer my pointer is here so for
my code I'm using Le salo's actual
examples in my test right it makes sense
you write a test so it you find examples
that already exist and what I find is if
I run it three times I find two things
with the one that starts with this
epilog contains find things one of them
is that it takes me an average of 30
seconds to find three so on average is 3
seconds but that search is not uniform
because you need to find randomly I'll
tell you how it works in a minute
sometimes they find it fast and
sometimes they find it slow but the
interesting thing is I find a solution
that is different from these shallows
let's find instead of um this epilog
let's find what happens when you try to
find this
autogram okay what am I
doing nice so finally enough this you
can find super fast and it has zero
Loops the last number is the number of
Loops because the way this works
is essentially it says if the count
produces a sentence and the sentence
produces the same count then we found
the solution but if we don't we put the
vector of counts in a in um in a set and
then if we meet a count that we've
already seen that means that will Loop
and we need to uh exit the loop so we
randomize the interesting thing is that
the sentence this autogram blah blah
contains blah blah blah and always does
zero Loops it's like English is
evolutionary evolved you know it's
perfect fit for
autogram that's quite interesting
because I'm going to do something that
is this epilog do this interesting thing
and this this is my finish today and am
I doing I modified the code so I don't
have a signal Loops so so this will very
likely not finish which is quite
interesting right it's if I try to find
uh one of Le salow examples I find a
different one because I can't get my
vectors initialized to the local area of
the of the search space where this Sal
found his if I try to find this autogram
and I always land without a single Loop
and this one magic this is the magic
it's the first time that you I expected
a code to fail and it actually succeeded
thank you thank
you Javier's quick lightning talk was
wonderful his program's prize of
pangrams was beyond delightfully
fascinating
xylophone uh on Deck we have catrix but
first uh Julia who's going to tell us
about another programming
language hello I'm Julia I'm a soft
engineer and I'm a mom of two primary
school age daughters the older one asked
me a couple of years ago to please teach
a programming so big moment my big love
to teach to my kid and I did what um a
lot of people in my position would do we
started with block based coding scratch
junor and scratch and Microsoft make
code I was cool but you know once you
reach a certain size it becomes a bit
unyielding you don't find your way
around and in the words of my older
daughter uh Mom I don't want to do the
babyish puzzle pieces anymore I want to
do the real
code so what she told me is something
that it seems um research uh found
evidence for as well kids kind of don't
really think it's the real deal and
therefore it doesn't stick as
much we went to KH Academy we tried
JavaScript um dra a lips six parameters
and Mom what's that squiggly line yeah
we call it curly brace and I'm also not
sure where it is on your iPad actually I
was just kind of really heartbreaking to
see my Kito was so motivated and wanted
to learn and me so motivated to teach
and just like this syntactic and special
characters get in the way and kind of
create fear and you know so I did what
any software engineer would do at this
stage I got an domain
name and
um started programming so I felt like
there's a piece missing a a beginnner
programming language that is absolutely
minimal in terms of um special
characters but you know gets the essence
across Eevee was born uh with a landing
page with an Easter egg of course and a
playground um this is please be my uh
com compilers here
hello world in Eevee it's really hard to
talk and program at the same time but it
works
um uh Eevee wants to learn from what was
great about blocks and what is needed
for minimal text based language so we
make um Graphics first class citizens um
addressed like a cartisian number plane
with um the origin in the bottom left up
to 100 by 100 so a little bit turtle
Graphics here to place something in the
center um we move use the move command
circle with radius creates a circle um
you can uh set the colors with um
Australian spelling
y or
American you know that's the thing if
you do your own thing you can do what
you
want and but also like the moving bits
and user interaction was really
important to have in there so if you
want to um maybe make this circle
disappear there is an Onan animate event
handler that hooks into request
animation frame and
JavaScript um and so sorry I forgot to
show you how to declare a variable first
statically typed language
um we in the on animate um event handler
we first cleared the canvas uh we
reduced the radius by a tiny
fraction and draw the circle
again and or maybe we start a little bit
bigger here and oops okay bit the radius
this is what error messages look like H
why does it not work who sees it why
does it not work
sorry
huh no it's not declared twice only
declared up here not to it sorry come or
no yeah so so yeah I'm not sure why this
didn't work before man what could
possibly go wrong in a lifetime I I have
no idea right how much time oh yeah one
minute okay shall I show you new anyway
you know I went into schools and I did
Labs with the kids there um there's a
lot Happening Here oops not lab.com
um this is what we did in the first lab
and a double period lesson we got them
to do that um yeah if you if you feel
like it take it for a spin give me some
feedback that's the thing I did the last
two
years now I think any programming
language that spells color correctly is
worth trying out so uh thank you for
that Julia um right now we've got catrix
our vide Tech who has refused to take
his intercom off um so sorry to all the
people who are listening in on that
um on Deck we have uh uh but first uh
Chris all right uh Crystal audio I've
got uh audio through my laptop for this
one camera I'll try to stay in front of
the stage and switch probably on the
laptop for most of it cheers all right
hey how is everyone good to see you um
my name is uh Chris I've done all sorts
of silly things to the conference like
that little intro you saw I animated
that you've been listening to 5 hours of
my music on loop as well but I also in
my day job um I buil these interactive
screen systems such as this one here and
this interactive system here was for a
client that was particularly interested
in supporting low vision and blindness
uh users who can navigate the system
without uh you know being able to
necessarily see could also use feel
that's fine we could put tactile markers
on the screen we can run the titles
underneath so that it all matches up we
can do audio descriptions on everything
that wasn't the problem the screen
system worked fine we had low vision use
where you could grab elements and you
could throw it full screen and do all
sorts of things but the problem was when
we came to control a system because if
you look at control and automation like
the little panels are sitting here they
are all these little touch panels and
that is fine until you have low vision
or blindness in which case even with a
little bit of low sidedness these things
become very confusing so um we decided
that we weren't going to use a
commercial solution cuz the fonts were
really small you may have seen these
little panels and instead we would build
our own we would use big Goofy TCT tail
buttons we wanted a system that would
torque
we wanted a system that wasn't
proprietary um and we wanted to make it
with a rapid development language and I
can see a little friend up here is
coming to the
rescue oh you know so this was a little
panel spot we had uh we went straight
into CAD uh starting to do some 3D
printing for every 3D printing nerd out
there you can print on transparency with
it printed in reverse and it will
actually pick up the ink off the toner
and allow you to do controls that look
like this uh so this was built in a
weekend of course we got to program it
somehow so of course we're going to put
a Raspberry Pi in the back of it a
little multiplexer board that just takes
all the buttons and puts it down three
wires to make it a bit cleaner uh and
then we wanted to program it and we
decided we would make it torque you hit
the button it tells you what it's going
to do you hold the button it does the
thing that sort of makes sense right um
so all of these buttons had a little bit
of a complicated stack though cuz some
of them were uh going through down
firing audio cuz it was a public kind of
setup where you just want it in the
background and you want it to go to
sleep after 5 minutes if no one's using
it uh and we also wanted then modes like
an immersive audio mode uh for teaching
people how to cross roads with traffic
and things cuz we have an eight channel
surround sound system in it as well so
that wanted to be with loud audio with a
subwoofer we wanted to dim the lights we
wanted to have PA mics available so it's
controlling a whole load of stuff in the
room including the six TVs and
everything the problem is oh that didn't
work um the problem is they all use
different protocols some are using rs232
uh there's rest apis there's pcds being
called so we thought the easiest way to
deal with all of this stuff was to
actually have a service running that was
dealing with running all of these
different parts all the different bits
of the system so we used uh mqtt a
mosquito uh style service and we also
had a button Handler service so one part
of python was just constantly just
looking at the buttons and having a
little buttons my Handler and there was
another uh service that was taking when
the button was pushed and running
something now these can all just be run
is mostly command line things you know
you've got curl SMPT set all the things
you used to have seeing um and so we
built little driver files for all of
them uh had everything sitting in a
folder so um we could have mqt calls uh
and that way it was nice and neat and in
fact we decided no we're not use a
script system we'll just do it all in
nice neat python so we had all of the
buttons all of the sequencing English on
the left right hand side there is you
know the text sort of side of it very
fun to debugs we have this giant screen
with uh these big panels so that was
kind of fun and I will now show you a
video that has audio with it uh which
shows it in action this is the panel
that we built let's hope it works
standard mode hold to activate
collaboration mode hold to activate
audio experiences hold to activate we're
going to hold this
one resetting to standard interactive
mode ooh
that should load there we go say we can
go for instance to say audio experience
mode switching to audio experiences so
what's happening in the background there
is it's actually switching all the amps
on and off it's switching different mics
on off it's switching modes on the
computer it's switching uh Power as well
it's switching it from going to sleep to
staying awake for longer periods of time
and we also had things like wake on land
and stuff like that so it was all a lot
of fun kids are using it and can just
walk up to it hit the buttons and yeah
that's been me Duncan M pyic help me
thank you thanks to P the community oh
uh bleep
bloop uh on Deck we have uh Billy Tang
but first it's uh amber brown
with a yellow box full of
things hello um so I'm hi yes hi um so
I'm here to talk about the modern how
the maker Revolution is actually kind of
mundane these days but in a super good
way it's told in two
projects so you all you all have been
here obviously um but there's something
important
here it's
him could I make a curly boy but with
LEDs could I make a curly boy of RGB
LEDs yeah
yeah hi
Kevin it's been to be a bit brighter but
you
know introducing the RGB
boy it's based on sk6812 Mini e LEDs
surface mounted so you get that nice
flush thing there pcbs designed in key
CAD open source software and you can
order them in batches of five or so um
so I've got a couple of those at home
the frame I designed in open scad more
open source software and 3D printed it
uh and it's controlled by an rp240 which
is the same uh CPU as in the Raspberry
Pi Pico it is also chainable because all
of these are individual discrete units
which means that you can technically
have a boy of infinite length if we
melted down the entire Earth into curly
boy the actual diagram of the the how it
looks in the circuit design is actually
just that um and you know you have uh
that turns into pcbs and then you know
that ends up being how it looks
um and uh yeah so that's that's one
thing so I was manag managed to order
that get that all built with parts from
you know AliExpress from uh pcbs ordered
and so build this at home using pretty
much entirely open source tools and
these tools are all now available and
you can get them yourself I highly
recommend key Cad and open
scad select trains
right you know these things they're cool
I I like them I want
one I want
several can I make
[Music]
one stop apping hang on I'm going to
make sure that oh yeah it probably said
the right thing
um yay so um so this here is the split
flab zone welcome to it it's nearly
entirely 3D printed uh I us to say I
forgot to past the thing U so three
print flame frame and flaps the flaps
are printed with multiple filament
colors so they are one solid flap just
switching in the 3D printer um based off
David Kingston's work uh originally and
then uh uh another GitHub user made a
open scad of um
flaps but there is a problem with this
original design they
used this is the back of the original uh
original ones and that's a lot of
Arduino Nanos so can I do
better well so I got back to designing
some custom circuitry and doing some
circuit design and I I screwed up once
or twice but uh I did end up with uh
with something the core of it rather
than using an Arduino Nano is using this
ch22 V 3 it is a 48 MHz risk 5
microprocessor it has 2K of SRAM and 16k
of flash which is surely enough for
anyone it it's in a s 16 format you can
have 14 pins B gpio it requires One
external component which is the
capacitor so no clock or anything like
that and you think oh how much was
something like that like I dreo Nano is
$10 or something it could do do that is
$10 right maybe a dollar n it's 10 cents
each
and because it's fully uh 3D printed you
have you know the flaps here we using uh
Expressway a very nice font but it but
it is customizable so you could have uh
you know symbols and if you don't feel
like having a very nice refined font you
could pick something a bit different I
guess I will have all the code and pcbs
and all of that up here soon TM thank
you very
much thanks
I'm uh I'm looking forward to having my
own uh sort of emoji mood display made
with a clicky board very excited for
that um a reminder for the people coming
on over on this side the easiest way to
get from there to there is to go around
rather than going in front of the camera
and tripping over the seats that are all
here um with that in mind Alysa you are
on Deck but first uh
Billy hello um so I'm I'm talking about
a problem that I uh that some of you
might come across in just over a month
so I think um like the 31st of December
that's when everyone starts to make
their own New Year's
resolutions so I had a couple drinks and
some friends were like yeah let's go run
a half marathon so I begrudgingly said
yes now I needed to work up to uh
running up running that um distance so
what I did was like any good data
scientist I opened up my
laptop now the obvious uh solution to do
to get better at uh running is to go
outside and start running but hey um
that's not the solution I wanted to do
so now the problem statement is I want
to run a 5,000 uh sorry 5,000 m route
that starts and finishes from my current
location that's a very easy problem to
solve you run 2 and a half th000 that's
2 and a half th000 Metter that way turn
around and you come back you can run
around um in a 1 M uh circumference um
Circle to a half 5,000 times and you
you're good but that's not why we're
here um so I decided to make a website
uh that will uh generate a route for you
um what so there's a couple of Pros um
that I'm quite proud of it's website
only so you don't need to download any
apps it uses open data
uh so open Street Mouse for spatial data
it's private all R like when not sending
your location to anywhere else apart
from open street maps it's free there's
no external servers so I don't like if
you decide to use this outside of your
house I don't know where you live so you
won't see me um in the future Dynamic
the routes are randomly generated so
hopefully you have a better experience
now there's a one caveat around the
routes may change with each run
sometimes you might may be living in an
area where it's really hard to find
routes so you might just end up running
2 and 1 half th000 M down one way and
coming back but um we're going to go and
do a live
demo what could possibly go
wrong hopefully this will work
so what I'll so you can for uh those who
aren't from Melbourne uh we're at this
is our current location I'm going to
turn this all the way up to 5,000 meters
because that's problem statement and now
I'm going to pray that it's going to
give me a nice
route so you can imagine you're you're
getting ready to go for a run
hey not too
bad and we're one M off that Target
[Music]
there's um there's a Google Maps uh link
as well so if you do want to uh I guess
use Google Maps to tell you where to run
you can do
that
now going back so the solution that I've
just shown you isn't um done in in
Python but instead I'm going to talk
about uh the process to get there so I
use Python a lot in the prototyping
stages so I'm going to highlight some of
the open source libraries that I've used
so networkx and open street maps
networkx are fantastic libraries for
downloading and manipulating spatial
data pyit learn I use K means clustering
to reduce the problem size o tools it's
fantastic um constraint programming um
Library produced by Google volume uh to
generate the maps and share them in an
easy way and lastly um at one point I
decided to try and Host this as a a rest
API so use flasking uh G
unicorn now there's a couple things that
I've learned along the way um I found
this process fairly enjoyable but um so
I was eating quote eating my own dog
food I'll go somewhere I'll generate a r
see if it makes sense if not I'll go
back and try and iterate and improve
it next latency matters um so no one
wants to wait around for website when
um when you're really eager to go and
start
running uh backtracking isn't fun so who
wants to go down the road turn around
and come back out and continue your road
so that was one of the optimization
problems I had to I guess deal with and
lastly um sometimes the route that you
go down is will send you through traffic
so if you do want to use this don't run
through
traffic and uh we we are in Melbourne so
uh for those of you not from here also
look out for
trams uh ala you are on Deck uh but
first we have Alysa Cogan
hey hey so I'm here to talk about a
project that uh published last month uh
and we'll be working on it Sprints uh
so anyone's distributed python machine
learning
uh AI applications python libraries for
machine learning and AI tend to be a
little bit big um but lots of python
packaging tools are aimed at producing
single file executables put everything
in a zip app and it's like do you really
want to install 10 copies of cter and
PIR torch on everybody's laptop it's
like not so much okay well Linux
containers are great right then all
layer sharing you don't have to have
multiple copies of everything nobody
ever wants to want native windows or
python apps or Mac OS apps to run on
their desktop uh laptops do they um but
that's right we've got cond we've got
wagon we've got UV we can just like make
virtual environments directly on
destination machines and then use
hardlinks to fix everything right so it
looks like there's 10 copies of CER and
pytorch but there's really only one well
that's actually a pretty good answer a
lot of the time but not
always so
what if we could do virtual
environments and but we could actually
reliably share dependencies across the
virtual environments without having to
resemble everything on the target system
and without having to dump everything
into one runtime layer that absolutely
everything shares and has pie torch in
it has tensor flow in it and everything
you could possibly imagine so what does
VM STX do VM STX lets instead of just
having runtime and virtual environment
you can actually have more layers than
that and so you can have the runtime
layer with portable runtime environments
from a project called python build
Standalone then you put your framework
layers and then you put in that
framework layer you put your big pieces
so you put things like qu torch you have
a framework for tensor flow you have a
framework for
fmx uh and then in your application
layers all you have to do is put the
little layer on top which is the code
and the dependencies for your specific
application uh and so so you get to
nicely share your big framework bits
while still cleanly separating the
individual applications from each
other so how does it work um python has
this feature called site customize. py
which basically lets you play games on
interpreter startup uh and so VM stack
uses that now normally one of the
problems with doing this kind of thing
is virtual environments aren't actually
portable machine between machines
they've got absolute paths in them uh
and so what you have to do is you have
one small post installation script that
sorts out what what the proval
environment should look like on the
destination machine and what site
customization should look like and then
you wrap all this up in a system that
gives you reliable layer locking uh and
archive creation that gives you
consistent builds across different
things now anybody who's played
seriously with this kind of splitting up
of python environments might be going
hang on but Dynamic linking doesn't work
and it's like yeah can you have pie
torch in a framework layer pulling in
Cuda from a runtime layer and on Windows
you actually can add D directory just
deals with this everywhere else well
there's a reason everybody statically
links all their Linux binaries uh making
everything even bigger um I actually do
theoretically have a solution for this I
haven't actually implemented yet um but
uh I'm pretty sure it will work uh and
that's going to be one of the things
I'll probably be looking at at this
point but if if anyone has problems
along this kind of line um you can find
the documentation at those URLs uh
source code as well and yeah I'll be
sprinting on this on the Sprints Monday
and Tuesday if anyone has problems along
this kind of
line that's it thank
you it's uh it's so good to see a uh a
toour where more virtual environments is
actually the right answer to the problem
uh Adam Harvey you're on Deck uh but
first uh Al the price
hello hello my name's Alia and when I
was five my grandma gave me a book
called one small island using it as a
clipboard here inside it was the story
of MCC Island which is being saved from
overrun but which was saved from being
overrun by introduced species this led
to my lifelong interest in its story MCC
Island lies
2,136 km away from us about halfway
between Hobart and
Antarctica in fact if you attempt to get
direct directions from the Jeff shed to
mccor Island Google Maps will entirely
give up on
you at least Google Maps knows what it
is though its reviews are interesting to
say the
least so why is this important let's
take it back the discovery of MCC island
is credited to Captain friederick Hassel
who spotted the island from his ship on
July 11th 1810 10 will on a ceiling
Voyage out of Sydney 2 years after
discovery the um ceiling started on MC
Island and lasted for over a century
during this time period about 200,000
ferals and 2 million Penguins were were
killed for their
oil in 1875 the eagle Shipwrecked on
mccor island during a storm and the
survivors nine men and one woman were
forced to spend over two years on the
island living in a cave from what we
know this could be the first woman to
ever set foot on mccor island the crew
were rescued but tragically the
unknowned woman the unnamed woman died
the day before they were saved on the
11th of December 1911 Sir Douglas morson
established the first radio
communications link between Australia
and Antarctica building a radio relay
station on MCC Island stealing was
banned on the island in 1919 this marked
a end to the period of horrific
Slaughter in 1933 MCC Island was
proclaimed a wildlife sanctuary by the
Tasmanian state government and in 1948
the m Island research station was built
and operations started in March of that
year in 1997 MCC Island was granted
world heritage status by UNESCO giving
it the highest level of protection on
Earth MCC Island cealing history had
left the island a number of very
destructive introduced species goats
dogs horses and wers were eradicated and
finally the last feral cat was shot in
the year 2000 with their main Predator
gone the r rabbit population skyrocketed
causing massive massive environmental
Devastation in 2010 a major program was
launched to eradicate rabbits and
rodents fumigation of burrows poison
baits introduced viruses and sniffer
dogs were all used in April of 2014 the
mcari island pest eradication program
was declared successful after four years
of incredible effort and careful
monitoring this eradication has allowed
mccor Island to return to its natural
state as a sanctuary for many plants and
animals many animals call this wellplace
home including Penguins seals whales and
many other species of birds elephant
seals dominate the beaches especially
around the research
station elephant seals live in harms
where the leader and largest male is
called the beach Master there are four
main types of penguins the breed on
mccor island rock copper Royal adeli and
King Penguins the largest penguin
breeding col in mcor Islands at herd
point with over 320,000 Penguins nesting
during summer if you're wondering what
that sounds like
[Applause]
MCC island is also home to a number of
endemic species that are found almost
nowhere else in the world including the
MCC Island comant the critically
endangered cushion plant the Royal
penguin and two helmet orchids it's also
known for its incredible Mega herbs
including the mcari island cabbage which
is not a
cabbage Moran enjoys a tropical climate
with an average daily temperature of 4.9
de C Additionally you can enjoy
beautiful weather with an annual average
just 862 hours of sunshine and 3177 days
of precipitation per year with less hely
Sunshine than Forks Washington mcam is
obviously the better place for
vampires
Beno the Aurora stles is an icebreaker
ship that for many decades was a central
Lifeline for Australia's Antarctic and
sub Antarctic research stations
including resupplying the mccor island
station annually it retired after more
than 30 years of service and has been
replaced by the NOA which means Southern
Lights in Palani the the language of
traditional of Aboriginal tasmanians the
mcor island research station is resupply
only once per year and is a major
Logistics operation requiring the
movement of 484 tons of cargo from the
ship to Island by amphibious boats
helicopters and hoses I've only
scratched the surface of why mccor
andone po special and important if you
want to know more have a look at these
[Applause]
resources it's the first time I've been
pleased to hear about gentu at an open
source
conference uh on Deck we have uh Vicky
but first uh Adam Harvey who's going to
do our obligatory rust talk by the looks
of
it yep um so several years ago I
promised myself I'd never do another
live coding talk anyway hi I'm Adam I'm
a liar um I work for the rust Foundation
people have different opinions of us but
I'm sure nobody here has any experience
of being involved with a software
Foundation that gets undeserved bad
press Christopher um so anyway why am I
talking about this so I found myself
having to call into uh python from rust
a few months ago and I was amazed how
easy the interrup is so I'm actually
going to see if we can do this in
slightly less than 5 minutes can we
interrupt and call from part into a rust
module uh and the reason we're going
that way is cu the other way is harder
basically so we're going to do that so
why would we do why would we want to
write a python module in Rust well
native code almost painless
multi-threading easy C interrupt Etc
Python and rust are not friends their
family that was the Fast and Furious
reference I promised um so how are we
going to demonstrate this we are going
to implement this actually we're not cuz
I already implemented and I don't have
time but uh I'm going to show you how to
call into it this is how you find uh
arbitrary digits of pi uh it was
invented in Vancouver which is where I
live now so I'm very pleased about that
uh it was of course then improved by
everybody's favorite French polymath
overachiever uh fa Bel uh a few years
later um he has a c implementation that
is too big for this slide i port it into
rust very line for line because I am a
film major and I have no idea how the if
it works um okay so anyway so what if we
want to do it gives you nine digits
basically at a time because that's
essentially how many digits you can get
a 32-bit integer what if we want more
than nine digits at a time well we can
multi-thread this right like this is
embarrassingly parallelizable there's no
shared State it's really easy he says
optimistically so um I have implemented
the basic thing as I said in Russ this
is what the function signature looks
like uh for those of you who don't know
Russ it's just integer in integer out uh
but if we're going to do more than nine
digits we're going to need to put a
string out so here's what we're going to
do we are going to use a tool called
Maturin and we're going to use a uh a
library or a crate called crate is just
rust for Library um called P3 which I've
heard people say Pi oxide and it really
confuses chemists anyway uh let's let's
go so let's create a new project we use
P3 uh this has given us some scaffolding
it has given us a cargo. toml which is a
cargo manifest you all know what pi
project. toml is hopefully um we're
going to need a couple of other rust
libraries I'm going to use cargo it
feels a lot like UV weirdly enough okay
so let's go pull in the calculation
Library let's also I can't quite see the
bottom of my screen which is a little
unfortunate so we're just going to do
this we're going to use a thing called
rayon to do the
multi-threading okay so that should be
all we need oh and we also need a
virtual environment for reasons that
will become clear in about 2 minutes
hopefully so we're going to create a
virtual environment I'm aware that you
can do that more easily now with tools
but I am old so I'm going to do it this
way okay so let's actually write some
Rust so it's already scaffolded in uh
some basic stuff there's function
annotations for stuff we are going to
write a function called uh digits cu the
module is called Pi uh we're just going
to get rid of that we're just going to
calculate digits of pi very good okay so
we're going to call it digits we need
the start position and we need to know
how many we want we are going to return
a string okay
so basically we need to calculate the
start positions uh start plus count we
need to step by nine so this is a range
which we will turn into an iterator
actually we're going to turn into a
vector which is an array uh oh yes we
also need H okay we also need I forgot
this data
tools no we don't actually really need
it I'm just being lazy and also I'm
trying to minimize the amount of typing
I actually have to do here okay so we're
going to grab
that we are going to hope that LSP
starts responding quickly okay let
chunks yeah yeah I got it thanks X
string starts into
par jeez this is why I to I never do
this
againa map we need to format these into
two
strings we need to call into this
thing is I think the right number
of no okay here's what we're going to do
here's one I prepared
earlier okay
so there we
go
okay we are going to build it
hey thanks
Adam I once there was 20 seconds left I
just didn't think you'd be able to
compile it that quickly so uh yeah yeah
hey uh on Deck we have Peter Hall but
first uh Vicky who's going to uh give
you some ideas for this
evening right homeart this talk is
called three RPGs that won't fix you
disclaimer
but first of all for those who are not
familiar what is an
RPG really good productive
networking not quite storytelling an RPG
is storytelling it's also kind of
therapy
almost one of the things that I love the
most about role playing games is their
ability to connect you with other people
this has been particularly relevant in
the context of this conference which
brings us all together so that we can
talk to things talk to things talk to
people talk about things that make us
human beond the screen of our
programming languages so here are three
of the most uh therapy not programming
game uh uh role playing games that I
really enjoy we'll start with W home W
home is a beautiful rules light diceless
and even DM system that you can run
anywhere with your friends you can all
play as fuzzy animals like red W but
with a bit more gibli and as in like the
gibli movie part where you start crying
also um the story will take you from
jungles to cities and show you selfish
rulers and mischievous Spirits it's
really a simple system to pick up and
take
anywhere um the the pitch is trauma 100%
optional as an example of the sort of
things you can do with this evocative
system it gives you examples of places
that you can visit uh from this list you
can choose two things that a place can
do you can choose the way to the way it
looks uh and you can choose the
qualities that you like about it so for
instance we have a Grieving Soul
responsible to keep for keeping
everything in working order or folklore
about the place and this will inform the
way that you
play second Pitch
fesco what is Fiasco cinematic tragedy
guaranteed if you like Fargo if you like
anything uh about characters with
powerful ambition and poor impost
control you will love Fiasco uh it
requires twice as many dice as you have
players uh d6s and the playing goes
thusly set up you set up your characters
how they interact with each other how
they the places and things that are
important to them the objects that are
important to them this can be a tattered
birth certificate it can be uh the old
McCreary house that burned down last
year it's a very evocative system for
quickly getting into a narrative game
Act One how it starts your characters
are set up they have a plan they have
powerful ambition and put in pulse
control Second Step the Tilt what goes
wrong something will beond fire
something precious will be on fire act
two how it goes badly you use your dice
to choose various things uh that will go
wrong that will go right for your
character and work amongst you as a
table to figure out who has it worst by
the end of the game step four is the
aftermath you add up all of your dice
totals Whoever has the most and a
certain number of dice does the best uh
the
options range from you get off scotf
free to the worst thing possible death
is not the worst thing
possible pitch three eat
God yeah nice eat God is also a D6
system it is the most rules heavy of the
options here it is wonderful it is if
you've played Honey Heist it's kind of
like the same chaos Vibe um it's
beautiful if you like chaos but you
can't give up the dice that's my pitch
for you
so why should you play role playing
games why should you play these role
playing games
narrative um this particular talk is
inspired by uh the keynote and bringing
up ter pratchet because one of the
things that I like the best is everyone
knows the quote about an atom of Mercy a
molecule of Justice this is the bit
immediately preceding it humans need
fantasy to be human to be the place
where the falling angel meets the rising
ape and I think Terry prer H exactly on
the nose there so we are always telling
stories that's what fixes us make them
good why do you need these rules in
particular rules are a cage this is from
J Dragon they do incredible role playing
uh narrative discussions and stories
they're the uh game designer one of the
game designers behind wome I don't need
anyone's permission to do anything in my
make believe even then having a cage
sitting on the floor even if we're
ignoring it shapes how we play so and as
a final pitch number four this is not a
narrative game but you should come to
the blood on the clock tower s lunch
tomorrow Under the Stairs
thank you everyone for listening let's
chat about systems or Jango or
something thanks
Vicki that that was the last of our
lightning talks for today um if you uh
had a sudden strike of inspiration or if
you want to correct somebody or if you
just have something that you really
really want to tell people you can sign
up to give a lightning talk tomorrow
submissions will be open from whenever I
show up in the expo hall in the morning
I don't know probably before the keynote
I get yes um let's give a round of
applause to our wonderful AV volunteers
who made sure that most of the things
work
today and a huge round of applause to
our 14
speakers and uh here's Peter to wrap us
up for today thank you all it's been
great hosting as usual thank you very
much Chris that was incredible and we
loved it can we have a huge round of
applause for Chris our Lightnings are
all
right thank you everyone for wearing a
mask keeps everyone safe there are
people who couldn't be here without them
we do it for
them uh thank you to our sponsors we
could not do this without our sponsors
Platinum sponsor [ __ ] DB come on let's
get some clapping python software
Foundation gold sponsors Kraken and
Cipher stash sponsors Google elastic
Acorn startups at p multitudes and iy
and of course Linux Australia without
who we could not do
this running one of these is hard we
need to give a clap to our speakers
yes
volunteers and the AV
team they do a
lot and now self-organized dinner
there's no conference dinner it's an
unconference dinner so walk out of the
hallway hold your stomach to show how
hungry you are look around for people if
you see anyone who looks like this go up
to them and say hey do you want to go
out for dinner let's do it use the food
and drink channel in Discord uh there is
a pinned message there with instructions
on how to use it and some suggestions of
places you might want to go for dinner
uh also do it in person in the
hallway go out for dinner with in like
small groups we don't want to all turn
up at the same place no no way can
handle it
nosing indeed do not d Restaurant
please all right have a delightful
evening and we will see you at 9:00
tomorrow morning thank you very much
everybody
[Applause]
[Music]