►
From YouTube: CamJam 14 Programming in Rust on the Pi Jonathan Pallant
Description
No description was provided for this meeting.
If this is YOUR meeting, an easy way to fix this is to add a description to your video, wherever mtngs.io found it (probably YouTube).
A
Could
I
help?
Yes?
Well,
if
Johnson
I'm
an
engineer
at
came
consultants,
software
programmer
I've
been
doing
this
for
almost
20
years,
I'm
here
to
talk
about
rust.
So
what
is
rust,
apart
from
something
that
causes
me
to
spend
vast
amounts
of
money
on
like
jocular?
It's
a
systems,
programming
language.
So
what
I
mean
by
systems
programming
language
I
mean
it's
a
programming
language.
You
can
write
operating
systems
in
other
systems.
Programming
languages
include
things
like
C
and
C++.
I
generally,
don't
mean
when
I
say
systems
program
about.
So
why
is
rust.
A
Good
rust
is
a
great
bridge
systems,
programming
language
because
it
allows
you
to
write
code
then
is
fast,
safe
and
concurrent.
You
know,
C
is
a
very
popular
language.
I'm,
not
sure
you
describe
it
as
a
safe
language.
We've
seen
too
many
segmentation
pods.
No,
that's
not
true.
Let's
mistake
quite
hard
to
write
multi-threaded
code.
Normally,
when
you
get
a
programming
language,
they
say
you
know
farce
a
concurrent.
You
can
pick
two
of
those
and
they're
generally
a
language.
We
concentrate
one
or
two
of
them.
It
can't
be.
A
The
third
rusts
goal
in
life
is
to
do
all
three
so
where's
it
come
from.
It
comes
to
the
Mozilla
Foundation.
It
was
a
staff.
Member
of
Mozilla
was
working
on
this
in
his
spare
time.
Mozilla
found
out
about
it
I'm
staring
about.
They
were
that's
brilliant,
we're
going
to
rewrite
our
HTML
rendering
engine
in
there.
So,
let's
look
at
some
of
the
other
languages.
A
B
A
What's
wrong
with
budget,
so
cotton
is
an
interpreted
language.
You
write
your
code
and
then
the
Python
interpreter
comes
along
and
converts
your
code
into
instructions.
Your
CPU
can
actually
execute,
but
what
that
means
is
the
there's
no
checking
ahead
of
time.
You
can't
run
something
on
your
Python
and
say:
yes,
your
pricing
is
correct
and
we'll
do
everything
you
expect
and
there's
no
type
safety
I
do
quite
a
bit
of
bison
programming
work
and
a
common
pitfall
is
to
have
an
exception
raised,
in
your
exception
handler.
A
So
there's
some
slightly
odd
thing
that
doesn't
happen
very
often,
you
know
one
in
a
million
Facebook's,
a
one-in-a-million
happens
to
them
about
every
hour
because
they
get
their
website,
because
that
unusual
thing
that's
one
in
a
million
and
it
trips,
the
exception
handler
and
I've
written
the
format
string
wrong.
So
it
goes
well.
That's
not
right,
because
you
asked
me
to
print
three
things
and
given
before,
and
then
it
crashes
and
what
I
get
is
a
crash.
A
This
is
your
format,
strings
wrong,
which
is
not
useful,
because
what
I
actually
want
to
know
is
what
caused
the
original
exception
in
the
first
place.
There's
nothing
I
can
do
in
Python
to
find
these
bugs
ahead
of
time.
The
only
way
to
check
your
exception
patterns
really
good
is
to
trigger
all
the
exceptions
so
see.
What's
wrong
with
see.
Every
security
flaw.
You've
ever
heard.
A
We've
had
a
close
up
overflows
stuff
around
the
flows,
but
for
this
warning
free
we've
got
you
top
the
freeze,
so
you
use
a
piece
of
memory
today,
arm
up
and
free
that
I'm
done
with
it,
and
then
you
use
it
again.
That's
probably
all
right
until
your
boss
to
watch
the
demo
and
it
turns
out.
Another
thread
has
chosen
to
use
that
exact
same
piece
of
memory.
There
now
you've
got
two
things
using
the
same
piece
of
memory.
Bosses
have
this
weird
magnetic
effect:
I,
don't
think
notice.
A
The
code
works
fine
until
someone
comes
to
see
it
or
freeze.
This
has
been
happening
to
developing
congregation.
Okay,
I'm
going
to
return
this
piece
of
memory
to
the
pool
and
they
say
I'm
going
to
return
it
again
and
often
the
memory
allocators
have
relatively
naive.
They
can't
handle
this
kind
of
thing
and
now
you've
got
the
same
piece
of
memory
in
the
free
list
twice,
and
that
means
it
can
hand
it
out
and
then
have
that
the
same
eat
again
for
someone
else
to
disaster
and
your
compiler
can't
help
you
memory
leaks.
A
How
do
you
use
a
piece
of
memory
on
but
it's
stored
in
a
pointer
leave?
The
function
like
to
goes
out
of
scope
nobody's
returned
the
memory
of
the
ball.
It's
gone,
we've
all
seen
computers
where
you
use
them
on
after
a
couple
of
days,
it's
they're,
usually
kind
of
it's
slow,
we'll
be
using
a
lot
of
memory
and
release
kind
of
hard
to
avoid
C
compilers
won't
help
you.
What
else
is
wrong?
We
see
it's
no
package
manager,
pythons
nice.
We
should
go
pip
install
my
library,
it
turns
up.
A
There's
no
pip
install
for
see
that
there
is
a
new
one
actually
called
con
man
I've
seen
people
trying
to
do.
This
ok
sees
from
the
70s.
It
wasn't
built
these
sorts
things
in
mine.
It's
next
out
of
build
system.
You
can
like
make
you
likes
guns
you'd,
like
something
else,
II
make.
Nobody
can
agree
on
these
things.
Documentation,
generators,
oxygens
good,
how
many
people
actually
format
my
comment,
so
doxygen
can
read
them
not
many.
This
is
the
real
gun.
There's
no
penalty
for
writing
bad
code.
A
C
B
A
B
A
A
You
know
the
type
system
is
insane
you
want
to
use
strings,
they
have
a
thing
called
a
string,
stirred
string,
but
actually
stood
string
is
a
stick
basic
string
which
is
typed
on
char
and
it's
time
to
the
malefactor,
which
is
typed
on
char
and
it's
a
double
trace
which
is
typed
on
chop,
so
you're
using
strings,
but
the
compiler
thinks
you're
using
the
thing
on
the
right.
What's
worse,
the
debugger
will
give
you
the
thing
on
right.
A
You
know
what
I
mean
time
app,
it's
awful
painful
to
use
it's
wrong
with
going
jars
in
modern
languages.
Yeah.
You
can't
really
do
systems
programming
can't
really
write
an
operating
system
Java
because
it
needs
this
huge
library
behind
it,
and
you
know,
give
you
sort
of
first-class
access
to
pointers.
I
believe
you
can
do
it
and
go,
but
you
can't
redo
it
in
Java,
but
garbage
collectors
ticket
on
a
rack
embedded
code
that
runs
on
a
microcontroller.
With
those
really
tight
interrupt
timing
constraints.
A
You
can't
have
everything
stopped
for
300
milliseconds,
while
the
processor
goes
through,
it
checks
all
the
memory
and
cleans
it
up
for
you.
So
yes,
it's
good.
It
will
clean
up
the
memory,
but
that
thing
gives
you
performance
issues.
When
you're
trying
to
run
really
fast
code.
We've
got
these
big
run
tires.
Then
the
javis
never
watch
their
to
stuff
in
it,
but
it
can
be
a
barrier
in
some
cases.
So,
what's
right
with
rust,
why
do
I
think
we
should
all
go
away
and
be
excited
about
rest?
A
A
It's
a
built
in
documentation,
generator,
say:
cargo
dock
and
out
pops,
beautiful
HTML.
That's
searchable:
clickable
link
to
source
code,
syntax
highlighted
building
code,
formatter,
no
more
arguments
about
how
you
code
should
be
formatted,
just
type
cargo
for
map,
and
it
just
formats
you
library
and
you
don't-
and
everyone
agrees
and
that's
fine,
your
audience!
Don't
really
the
brackets
go
here
or
there
just
it's
a
nice
standard
for
it.
It's
got.
A
There's
no
source
file
and
header
file
distinction.
Now
you
just
write
code
like
in
Java,
and
you
say
these
are
public
and
these
aren't
public
and
then
other
people
could
just
use
your
module,
but
when
they
get
to
use
all
the
things
you've
marked
public
and
they
can't
use
the
things
you
didn't
publish,
there's
no
really
straightforward,
you
don't
have
to
split
it
between
the
two
files
and
make
sure
they're
kept
in
sync.
A
First
glance:
access
for
pointers!
You
can
grow
pointers
to
any
sort
of
types
you
haven't
see.
You've
been
doing
many
programming,
I've
got
code
running
outside
I'll
show
you
runs
on
a
cortex
m4,
we
gpio
the
timers.
You
asked
that
sort
of
thing
you
get
this
rich
standard
library
that
relies
on
operating
system
features,
so
you
get
threads
and
you
get
sockets
and
you
get
file
system
support.
A
You
can
turn
it
off
if
you're
an
embedded
platform
where
threads
and
sockets
and
file
systems
don't
make
sense,
you
can
move
away
from
the
standard
library
and
use
what
they
call
the
core
library
and
then
you
can
run
directly
on
one
type.
Safe
type.
Safety
has
a
very
specific
meaning;
it
means
it
is
impossible
for
your
program
to
do
anything
that
is
undefined.
If
you
read
the
C
standard,
it
is
full
of
things
that
say
you
do
this.
This
will
happen.
A
B
A
Up
to
and
including
to
set
your
computer
on
fire
no
way
of
knowing
on
your
platform,
the
undefined
behavior
might
be
I'll,
get
a
zero
or
I'll
get
some
time
crash.
I'm
somebody
else's
compiler.
Just
don't
know
it's
not
safe.
So
all
these
bugs
come
from
people,
develop
it
on
my
platform
and
it
works.
And
then
you
take
a
different
platform.
A
Zero-Cost
abstractions
I
love
this
concept.
It
allows
you
to
describe
your
program
in
really
rich
ways
like
the
concept
of
iterators
in
Python,
where
you
can
interact
through
a
list
or
anything
that
implements
this
sort
of
iterated
concept.
I'm,
going
to
start
the
beginning,
going
to
go
through
the
Minturn
until
I
get
to
my
angular.
You
can
do
that.
We
rust
and
the
compiler
understands
what
you're
trying
to
do
and
it
all
dissolves
away
and
optimizes
down
what
you
end
up
with
this
machine
code.
A
A
B
A
Can
put
memory
allocations
in
the
heap,
so
you
can
it's
call
the
box,
you
can
wrapping
the
box
and
you
can
do
backwards
counting
if
you
really
want
to
share
things-
and
you
don't
have
to
beautiful
things
that
you
might
expect
applies
in
functional
programming,
things
like
filters
and
maps
closures,
your
JavaScript
programmer.
We
love
closer
to
being
your
I'm
gonna.
Do
this
thing
when
this
happens
executes
this
small
piece
of
code
that
works
in
rust,
composite
of
the
audience
were
sort
of
a
little
anonymous
function,
really
powerful.
A
So
who's
using
rust
me
I,
like
rust,
I'm
trying
not
to
write
C
I've
decided
C's
bad
for
my
health,
stressful,
so
work
in
progress,
convincing
my
employer,
but
at
home
I
generally
try
and
rust.
Instead
of
C
I,
am
managing
to
write
some
roster
work.
I'm
shipping
and
selling
it
to
customers.
Mozilla
are
writing
a
new
rendering
engine
rust.
It's
a
great
there's,
some
videos
on
YouTube
from
Mozilla
about
rust
and
it's
a
great
hope.
They
say
in
the
museun
office.
A
B
A
Believe
with
rust,
they
can
lower
that
sign
to
about
you
know
normal
human
height,
normal
humans
can
write
hazard-free
rust,
and
so
this
rendering
engine
is
called
server
and
now
our
backporting
bits
of
servo
into
Firefox.
If
you
are
running
Firefox
at
the
moment,
there
is
rust
code
running
in
your
browser
is
relatively
recent,
see
the
thing:
that's
dangerous,
pausing
the
metadata
from
files
given
to
you
by
random
strangers
on
the
Internet,
and
it's
a
hazardous
thing
to
do.
A
I
was
in
the
impeccable
metadata,
who
knows
what
they
put
in
there
and
is
an
excellent
place
to
try
and
craft
special
data
to
crash
passes,
so
they
rewrote
their
in
a
big
full
part
in
rust,
and
they
thought
well
we're
not
sure
about
this.
So
we'll
put
C++
one
and
the
rust
one
in
and
we'll
compare
them,
and
they
have
a
little
reporting
engine
in
Firefox
that
reports
back
whether
this
stuff
works
at
all.
A
After
a
billion
execution
reports
where
the
rust
hadn't
crashed
once
they
went
and
want
this
compiler,
pretty
good,
does
what
it
says
it
to
dropbox
dropbox
have
a
back-end
was
ready
to
go
we're
using
too
much
memory.
They've
started
rewriting
their
back-end
in
rust.
They
are
loving
the
performance
they're
running
loading,
the
memory
benefits.
So
how
do
you
get
started?
B
A
A
little
shell
script
he's
run
the
one-liner
down
on
the
scripture
by
latex
Kancha
platform
of
an
install
rust
for
your
platform.
If
you're
a
Windows
person,
you've
got
a
rough
stash
lambda
or
so.
Where
can
you
learn
more
Oh?
As
I
said,
brush
rust,
Lang
talk
now,
I
will
mention.
There
is
a
computer
game
and
they
are
on
steam
called
rust.
A
The
rust
gamers
tend
to
come
into
the
rust
reading
quite
often,
and
get
very
confused
by
the
answer.
There
is
a
rough
forum
users
stuck
with
rest,
Mangalore
ready.com.
Slash,
are
slash
rust,
as
opposed
to
slash
after
playing
rust
good
again
so
I
I'll
put
the
link
to
these
slides
out
there.
I
did
a
video
that
came
to
Kentucky.
I
gave
a
similar
sort
talk
and
we
recorded
the
voice-over
and
so
the
voice-over.
The
slide
goes
into
a
lot
more
detail.
A
C
A
What
I
can
do
is
I,
can
try
and
do
a
little
bit
of
live
rust
programming.
Now,
how
hard
could
it
be
so
we're
going
to
start
a
new
project
carmine
you
stopped
a
binary
project,
I'm
going
to
call
it
demo.
I
have
a
new
binary
project
called
demo,
we're
going
to
demo
folder
I'm,
going
to
say
cargo
run
and
it's
going
to
compile
my
code.
It's
got
a
semantic
version
by
default,
because
everything
should
have
a
version
number
on
it.
As
you'll
know.
A
If
you
saw
my
last
talk,
so
it's
been
called
demo
version,
zero
point,
one
point:
zero
and
it
says
hello
world.
Let's
open
up
an
editor
one
thing
that
makes
me
really
sad
about
the
rise
of
Pi.
Is
you
can't
it's
sublime
text
for
the
Raspberry
Pi
and
I
love
sublime
text
genie
is
not
a
bad-size
toot.
So
let's
go
to
my
demo
and
it
is
crazy
being
a
main.
A
A
A
A
B
A
B
A
A
A
It's
sort
of
Python
style,
curly
bracket
to
lighting
and
I
can
take
I'm
going
to
prove
my
thing.
Steve
now
and
see
I
would
have
to
say
I'm
going
to
pull
out
the
the
name
of
my
person
and
I'm
going
to
fall
out
with
%
nests
that
I'm
going
to
take
the
age
of
my
person
formula
with
%
you,
but
then
someone
changes
I
each
from
other
know
an
integer
to
a
float
and
then
suddenly
my
print
code
is
broken,
but
the
compiler
can't
really
help
me.
A
Where
is
here
with
rust,
we
can
also
generate
code
so
that
I
won't
derive
a
debug
printer.
So
now
I
have
derived
debug
for
my
person
structure
this
code.
Well,
it
will
also
generate
a
function
suitable
for
printing
persons.
That
does
you
know
pretty
much
what
you
expect
nice
sort
of
JSON
style
attention
to
clean
right
now.
Imagine
if
that
structure
is
really
complicated
and
has
lots
of
have
any
stuff
in
it
as
long
as
they
able
to
write
debug,
20
bucks,
free
and
it's
right,
and
this
compiler
is
gonna.
A
A
It's
a
good
question,
I'm
trying
to
say
yes
and
no
so
I'm
going
to
say
no,
because
I
wouldn't
want
you
to
get
despondent
as
a
programmer
in
rust.
The
compiler
is
going
to
shout
at
you
quite
a
lot
and
if
you're,
ok
with
that
plow
through
it,
because
as
soon
as
it's
finished,
shouting
at
you,
you've
got
a
program,
that's
guaranteed
good.
It
won't
do
anything
undefined.
A
It
makes
your
crash,
but
it'll
crash
in
a
world
of
find
wet,
I'm
going
to
say
yes,
because
I
don't
want
you
to
learn
C,
because
you'll
get
into
all
sorts
of
nasty,
bad
habits
and
you'll
waste.
Your
life
tracking
down,
rose
hazards
in
multi-threaded
code
and
leaking
memory.
Whereas
if
you
learn
to
write
rust
in
the
first
place,
you
will
be
solved
of
all
of
these
terrible
problems.
So.
C
A
A
A
A
very
good
question:
I'm
going
to
go
corner
evident
this
right
now
and
say
there
is
demand
from
my
audience
to
put
rust
in
the
standard,
raspbian
installation.
So
what's
this
relatively
new
and
it
was
only
relatively
recently,
you
were
able
to
compile
each
version
of
the
rasa-lila
with
the
previous
version
now
in
linux,
that's
very
important
that
things
come
from
source
code
and
the
distributions
are
able
to
build
it
themselves.
A
But
if
you
require
a
sort
of
special
version
of
rust
to
build
rust
because
Rusty's
written
in
rust,
then
that
makes
it
difficult
for
people
to
package
in
supply.
So
recently,
fedora
fedora
425
includes
a
brass
compiler
Fedora
compiled
of
rust
themselves
using
the
previous
stable
version
of
rust
as
the
base
product.
So
it's
entering
distributions
now
and
becoming
more
available.
I
think
it's
definitely
conversation.
I
need
to
have
with
live
lives
and
every
tale.
C
A
Absolutely,
but
wouldn't
it
it
would
be
bad
if
you
were
to
write
a
load
of
rust
and
then
it
sort
of
got
left
behind
and
then,
when
our
rust,
that's
so
26
feet
with
a
few
that
you
know,
I'm
convinced
to
has
a
future
and
I'll
explain
why
I'm
convinced
they
run.
This
bottle
called
the
release
trend.
There
is
staple,
there
is
bitter
and
there
is
nightly
there
is
a
new
stable
release.
Every
six
weeks
like
clockwork
the
next
one
is
due
on
December
22nd.
A
At
that
point
the
feature
will
become
stable
and
they
will
take
the
latest
nightly.
The
market
is
beatta.
They
then
have
six
weeks
tube
actual
bugs
if
they
find
any
out
of
the
beach
release
before
they
market
a
state.
They
have
said
since
rust,
1.0
they're,
currently
on
1.13
the
next
one.
We
won't
work
14
any
code
that
compiled
in
rust
1.0
should
continue
to
compile
in
the
newer
versions
of
the
compiler
they're
not
going
to
break
anything.
A
You
can
use
special
features,
they
value
tonight,
Li
the
may
change
in
the
future,
because
they're
sort
of
working
out
where
you
have
to
turn
those
explicitly
when
you
can
only
have
those
in
the
nightly
compiler.
Unfortunately,
compiling
for
baby
platforms
is
one
of
those
things,
but
if
you're
writing
stable
rust
use
the
stable
API,
it's
not
going
to
change
them
under
you
and
they
check
this.
Everything
on
the
rust
package,
library
called
prankster
io
is
recompiled
with
the
stable
compiler
when
they
do
a
new
release
to
when
they
feel
is
necessary.
A
Because
I
guess
the
modern
programming
language
is
in
2016
our
rust
going.
Swift
swift
feels
very
much
like
an
apple
thing.
It
doesn't
use
garbage
literally
uses
reference
counting,
but
I
haven't
seen
anyone
write
Swift
for
a
cortex
m3,
for
example,
it
feels
quite
tied
into
apples
ecosystem.
Maybe
that
will
change
go
because
it
requires
this
go
expection,
that's
not
gonna
target
embedded
platforms.
Even
you
can't
really
write
an
operating
system
in
go.
You
absolutely
can
write
an
operating
system
in
rust.
So
when
it's
done
it,
it's
called
redox.
Their
first
ISO
release
is
available.
A
Now
you
can
boot
the
kernel
with
a
graphical
desktop
everything's
written
in
rust,
interrupt
drivers
the
whole
lot,
so
I
haven't
seen
anything
else.
That's
doing
what
Rossi
doing
you
could
argue.
C++
was
trying
to
do
that.
I
would
argue.
It
still
has
a
lot
of
pitfalls.
Nativity
the
rusty
try
us
off.
A
This
is
being
used
in
mission-critical
law,
for
example,
medical
occupations,
there's
a
really
good
question.
We
do
some
fda-approved
medical
devices
at
work,
and
that
is
definitely
a
conversation.
I
want
to
have
with
people
I've
seen
systems
like
spark
Haider,
where
they
try
and
give
you
this
safe,
subset
evader.
So
they
can
guarantee
you're,
not
gonna.
Have
these
problems
and
as
I've
limited
uptake,
because
aim
is
a
bit
weird
to
be
nice
I
think
it
has
excellent
applications
in
those
areas
and
that's
something
I'm
actively
looking
at
do
all
the
guarantees.
A
A
C
A
A
Doesn't
support
incremental
compilation
so,
if
you're
rebuilding
a
big
crate,
it
may
take,
maybe
in
some
places
they're
working
on
making
a
compiler
faster,
the
compilers
doing
a
lot
for
you.
I'd
rather
spend
a
minute
compiling
that
the
six
weeks
trying
to
find
you
know
an
uninitialized
variable
somewhere,
and
the
other
thing
is
embedded
supports,
currently
unstable,
so
I
have
to
use
the
nightly
version
for
pilot
to
build
for
my
market
patrollers.
They
will
fix
both
of
those
things
and
I'll
be
able
to
come
back
continued.
This
is
nothing
wrong.