►
From YouTube: NGS weekly meeting #15 - 2022-01-23
Description
Project website - https://ngs-lang.org/
Milestone 0.2.15 - UI infrastructure - I/O -- https://github.com/ngs-lang/ngs/milestone/10
IO Design wiki page - https://github.com/ngs-lang/ngs/wiki/IO-Design
A
Hello,
welcome
to
weekly
ngs
meeting
ngs
stands
for
next
generation.
Shell,
it's
a
modern
programming
language
for
devops.
Weekly
meetings
are
about
progress
and
future
plans
and
we
have
ricardo.
Today,
ricardo
is
a
contributor,
I'm
ilya
the
author
of
the
project.
Let's
go
ricardo,
do
you
want
to
start
or
you
want
me
to
start.
B
Yeah,
I
can
start
so
today
before
the
meeting.
I
remember
that
we
forgot
arch
linux
in
our
github
actions.
Improvements
for.
A
B
A
B
It
after
so
so
yeah,
that's
that's
one
thing,
and
the
other
thing
is
that
we
have
been
looking
at
the
pull
request
from
the
website
and
I
guess
it's
almost
almost
there
or
yes.
A
B
A
A
B
B
A
Yeah,
I
have
no
idea
why
it's
opened
in
chrome,
specifically,
I
typ
typically
use
firefox,
but
it
is
already
open.
I
think
I
checked
like
in
both
browsers.
Oh.
A
One
yes,
so,
let's
let
everybody
see
how
the
current
one
looks
like.
B
A
A
Yeah,
because
because
the
other
window
is
on
top
okay,
okay,
so
the
sharing
is
done
correctly.
So
I'll
switch,
the
branch
website,
refactor
checkout
and
it's
supposed
to
reload
automatically.
No,
maybe
no,
it
didn't.
Okay,
so
I'll
hit
refresh
bam.
Okay,
so
that's
the
new
site.
A
Okay,
we
have
what
is
the
the
most
prominent
thing
we
have
here,
links
with
documentation,
reference
stuff
shortened,
the
the
header.
We
have
examples
here
by
the
way
I
seen
on
the
other
side,
there's
just
a
snippet
of
code
in
the
language.
I
think
we
should
do
it
also,
but
maybe
next
iteration
yeah.
A
So
what
ricardo
did
here?
The
installation
part
you
can
easily
install
you?
Have
this
copy
icon?
I
think
that
it
is
good
functionality
wise.
I
don't
like
completely
agree
with
the
design.
A
Good
enough
to
to
merge
it,
which
I
would
actually
like
to
do
right
now.
Let's
do
this
merge
online
online.
A
A
B
B
A
A
A
Yeah
by
the
way,
so
I
don't
remember
where
it
happened,
but
there
was
a
time
that
I
merged
and
I
was
waiting
for
the
github
action
to
complete
the
action
like
to
see
that
the
build
was
successful.
And
while
I
was
waiting,
you
deleted
the
branch.
A
B
A
B
A
Okay,
so,
let's
okay,
so
while
we
are
at
it
and
waiting
for
stuff,
let's
go
to
the
issues.
A
So
what
I
was
doing,
I
was
actually
working
on
the
next
milestone.
We
will
get
in
the
moment
there.
Okay
scan
other
website
for
ideas,
so
ricardo
feel
free,
okay,
okay,
by
the
way,
it's
not
only
this
you
can
find
other
sites
and
add
here
feel
free
to
do
like
I
think
in
neem
I
have
seen
that
they
have
some
snippet
of
the
code
yeah.
They
just
have
a
snippet
of
your
code
yeah.
I
think
it's
good.
A
B
B
B
A
A
Okay,
so
let's
go
to
the
issues.
I
wanted
to
visit
the
milestones
so,
as
we
previously
mentioned,
aws
and
lambda-
that's
complete
it's
just
waiting
for
release.
A
I
think
we'll
feel
more
more
good
with
this
release
after
the
merge
of
the
website-
and
maybe
we
shouldn't
wait
anymore
so
on.
A
It
is
fine
because
I
am
on
the
zero
215,
I'm
in
ui
infrastructure,
io
and
design,
so
io
design
it
actually
pretty
much
ended
with
the
thought
that
neti
pretty
much
did
it
right
and
I
will
be
modeling
very
closely
after
nettie.
B
A
That's
a
good
architecture
and
I
actually
want
to
show
some
code.
It's
it's
like
completely
experimental,
it's
not
working,
but
it's
already
like
starting
to
look
a
bit
like
nettie
and
that
I
think
that's
interesting,
I'll,
stop,
sharing
this
window
and
I'll
share
in
a
moment,
yeah
sure
yeah.
A
I
know
I'm
looking
for
the
window,
yeah,
okay,
it's
on
the
index.
It
shouldn't
be
on
the
index.
It
should
be
on
channel
yeah.
So
this
thing
starts
implementing
io
modeled
after
90.,
so
main
concept
you
have
channel,
which
is
typically
a
socket
tcp
circuit,
tdp
circuit
or
whatever
you
have
okay.
Let's
say
the
channel
is
here
at
the
start
of
the
channel.
Then
you
have
pipeline
and
there
are
handlers
on
the
pipeline.
A
Each
filter
can
actually
stop
the
processing
and
reply
something.
For
example,
if
you
have
like
authentication,
middleware
and
you're
not
authenticated,
you
can
get
redirect
right
from
the
from
the
handler
of
the
authentication
and
not
being
forwarded
into
the
application
itself.
A
So
this
pattern
of
intercepting
filters,
it's
very
common
and
I
think
the
most
known
implementation
is
express.js.
Actually
works
works
very
much
alike,
and
this
is
the
layout
of
the
code
is
a
bit
different.
You
have
like
a
bit
more
complicated
than
netty,
but
it's
also
more
flexible.
A
Actually,
I'm
sure
it's
more
flexible.
It's
roughly
the
same
flexibility.
You
can
dynamically
add
the
handlers
in
the
middle.
You
can
remove
them.
A
handler
can
can
handle
one
channel
or
multiple
channels,
and
it
has
handler
context
which
is
specific
to
handler
and
channel.
So
if
you
have,
if
you
are
handling
multiple
channels,
but
you
need
per
channel
information,
you
have
a
place
to
store
it.
A
Yeah
and
it's
all
event
based
it's
non-blocking
and
by
the
way
which
you'll
need
to
solve
in
ngs,
because
I
don't
have
anything
which
is
like
nio
in
java,
which
is
not
blocking
io,
it's
just
event
based
thingy,
but
we'll
get
there.
A
So
I
wanted
to
show
some
of
the
code
so
there's
channel
handler,
which
is
one
of
the
things
on
the
pipe
and
that's
the
default
implementation.
So
when
it's
activated
it
forwards
activate
that
means,
like
that
says,
there's
an
incoming
connection.
It
default
implementation
just
calls
fire
firewood.
Does
it
does
find
the
next
handler
and
calls
on
active
on
that
handler?
A
So
actually
it
calls
it
on
the
channel
handler
context
and
the
channel
handler
context
calls
the
handler
and
tells
it's
it's
active
now
and
then
your
handler
can
respond
to
active.
So
if
you
have
incoming
connection,
you
can
do
things
already
when
the
connection
is
just
being
established.
So
if
you
have
like,
I
don't
know
time
server
which
just
responds
with
time,
that
would
be
the
place
to
to
write
back
the
the
answer.
A
Okay,
so
I'm
pretty
much
on
that
thing
and
yeah.
So
you
want
to
to
merge
the.
A
B
A
Yeah
so
so
I
was
thinking,
maybe
do
abstraction
layer
and
then
gs
on
the
package
managers.
I
I'm
not
sure
how
much.
Actually
it
feels
it's
visible,
because
packages
are
usually
named
differently
and
stuff
like
that
and
the
problem
with
that.
It
will
not
help
us
when
we
install
the
js
so
because
we
don't
have
it.
A
Maybe
we
actually
need
to
start
refactoring
this
script
because
we
can
maybe
have
functions
which
are
called
like
install
on
the
yam
system
install
on.
I
don't
know
deb
system,
more
appropriate
names,
of
course,
but
something
like
that
yeah
yeah.
Actually
it
can
come
in
in
the
layout
where
you
have
like.
B
B
B
Is
no
more
centos?
Oh,
what
is
the
figure
now?
No
now
they
they
have
some
others,
but
I
think
the
official
one
is
kind
of
dead.
Now
they
are
passing.
A
B
To
to
on
you
know,
always
ongoing
kind
of
distribution.
You
know
continuous
continuous
distribution.