WEBVTT

00:00.000 --> 00:20.000
So, I'm going to quickly introduce myself, so I've been a deviant developer for more than 20 years, which gives you an idea of what my age.

00:20.000 --> 00:31.000
And my work, while I'm getting paid to do, is to, I'm a director at Muzia for, sorry, Muzia.

00:31.000 --> 00:35.000
Do you use the Ecoso? No, it's good, better. Cool, thanks.

00:35.000 --> 00:42.000
So, my page job is to work at Muzia, and this work is completely related. It's not a Muzia project, it's not supported by Muzia in any way.

00:42.000 --> 00:48.000
It is one of my side projects that I'm doing in the evening and doing the weekend.

00:48.000 --> 00:57.000
I have been involved in the rest community for a long time. I uploaded the first version in Debian while back, and it's now in the Buntu.

00:57.000 --> 01:03.000
And I've been a maintainer of some key packages in Debian and the Buntu based on the rest for a while.

01:03.000 --> 01:07.000
So, here is what I'm going to talk about. First, I will ask you some questions.

01:07.000 --> 01:13.000
Then I will present what we have been doing with the implementation of the core deals in rest.

01:13.000 --> 01:19.000
I will do a demo, and then I will make a proposition to the open source community.

01:19.000 --> 01:22.000
So, first, I'm going to ask you some questions.

01:22.000 --> 01:30.000
So, who are here in the room as pung opinion about the CPL, and especially the BSD and MIT?

01:30.000 --> 01:36.000
So, for the recording, it's about like one third of the room, one quarter.

01:36.000 --> 01:42.000
Myself, I don't care, as long as it is open source in the OSI and FSF definition, I'm completely fine.

01:42.000 --> 01:47.000
The project is not about license, even if I'm going to talk a few times about licenses.

01:47.000 --> 01:52.000
Who asked for the opinion about the new project? Not that I'm saying the new project, not the FSF.

01:52.000 --> 02:01.000
So, I see only a few hands. Same. I still contribute to a few new projects like career deals or GCC, also kind of things.

02:01.000 --> 02:07.000
So, Miguel did a talk right before about the Linux kernel and we're writing some part of that in C.

02:07.000 --> 02:12.000
So, now the question is, who asked for the opinion about C? Yeah, a lot more people.

02:12.000 --> 02:22.000
Yeah, yeah. I really don't like C. I think it's going to die, and at some point I think our kids are going to put C in the same category as Fortran and Cobalt.

02:22.000 --> 02:27.000
I think it's time to move on, and this is why we need to start that work now.

02:27.000 --> 02:30.000
And who asked for the opinion about first, positive?

02:30.000 --> 02:33.000
Yeah, many people call. So, you're in the right room.

02:34.000 --> 02:36.000
So, now what I'm going to tell you is this quick story.

02:36.000 --> 02:41.000
So, it has been five years that we all had to go in lockdown. So, it was 60 for everyone.

02:41.000 --> 02:48.000
And some of us, we made some bread, some people, the guy on the right, he was in the LL Ventura.

02:48.000 --> 02:52.000
He did some woodworking, some crazy stuff in with wood.

02:52.000 --> 02:56.000
Myself, I, with my son, we started building also, they go in the boxes.

02:56.000 --> 03:00.000
So, you can see Wally and some Star Wars and some Batman stuff.

03:01.000 --> 03:05.000
But I needed a project in the evening. So, I was like, I want to learn the rest.

03:05.000 --> 03:10.000
West is a material project. I have been surrounded by upstream rest developer,

03:10.000 --> 03:14.000
inside the Paris office of Maria, some several developers.

03:14.000 --> 03:19.000
So, I want to learn it myself, but I'm not a student anymore, and I don't want to do a site project

03:19.000 --> 03:24.000
that it is going to be just sitting on my otherwise. So, I want to do something impactful.

03:25.000 --> 03:31.000
So, I was thinking, what about implementing the corridors in the rest?

03:31.000 --> 03:36.000
Especially, I was curious to know how it was working. I saw it was full of assembly.

03:36.000 --> 03:40.000
But actually, it's a very simple scene most of the time.

03:40.000 --> 03:44.000
And I was very inspired, I've been contributing to LL Ventura, LL Ventura,

03:44.000 --> 03:49.000
for like 15 years, and I was very interested in inspired by the works at Chris Latner.

03:49.000 --> 03:57.000
That Apple, one of the core fundamental of Clang, is if you have different behaviors and CC, it is a bug.

03:57.000 --> 04:01.000
And I was also involved in that project with my debut an hour, a long time ago.

04:01.000 --> 04:06.000
I started with building the debut an archive with Clang, and I reported plenty of bugs upstream,

04:06.000 --> 04:09.000
and I fixed some of those. One of my favorite is this one.

04:09.000 --> 04:14.000
So, some people saw that if you put a dash or six in CC or Clang,

04:14.000 --> 04:17.000
it's going to optimize more than all three or all four.

04:17.000 --> 04:20.000
We even held in the debut and could base a dash on 99.

04:20.000 --> 04:24.000
Someone saw that it would be way more optimized than three.

04:24.000 --> 04:27.000
Of course, it doesn't change anything.

04:27.000 --> 04:33.000
Now, one more question, who knows, in that list of corridors program, who knows one of them?

04:33.000 --> 04:37.000
Well, almost everybody, who knows five of them?

04:37.000 --> 04:42.000
I have a few. Who knows everything here, in that list?

04:42.000 --> 04:47.000
I'm pretty sure nobody, except if there is a new upstream developer, one of my favorite is PR.

04:47.000 --> 04:52.000
Who in the room knows what PR is about? You always have that on your system.

04:52.000 --> 04:55.000
If you are running Linux, I see one guy over there.

04:55.000 --> 05:01.000
It's basically to format the text for printing, actual printing on the printer, like paper and so on.

05:01.000 --> 05:05.000
Some of the comments here are not very useful or used anymore.

05:05.000 --> 05:09.000
They are legacy, but for compatibility reasons, they are still over there.

05:10.000 --> 05:16.000
You're all familiar with those. Like, I selected those offensive ones, or CH-mode, CH-roll, install, and so on.

05:16.000 --> 05:17.000
L-S, M-Cardier.

05:17.000 --> 05:25.000
This is a comment that you folks, if you are running a Mac or Linux, you use those almost every day for your work.

05:25.000 --> 05:29.000
So, it is a full list, 105 comments.

05:29.000 --> 05:35.000
So, now it's, we are five years later, after COVID, five years later of working on that project.

05:35.000 --> 05:39.000
As you can see, I have way more gray hairs than I had five years ago.

05:39.000 --> 05:44.000
We have in the project, this is a screenshot from last week. We have 530 contributors.

05:44.000 --> 05:48.000
How many projects has that number of contributors? Not that many.

05:48.000 --> 05:51.000
We have more than thousands, we have right folks.

05:51.000 --> 05:59.000
And we have almost 18,000 star on GitHub. I know that it is meaningless, but still it's one of the metrics that we have.

06:00.000 --> 06:07.000
And I'm very proud to show that this is a graph of when we run our implementation in Rust.

06:07.000 --> 06:11.000
Again, the C test suite, the C-based state suite with new.

06:11.000 --> 06:19.000
And as you can see, we started, we had 139 only test passes when we started the project in 2020.

06:19.000 --> 06:26.000
And now, we are almost 500. I should have worked as weekend to be at 500, but I didn't have the time.

06:26.000 --> 06:30.000
We are very close to a full completion of the project.

06:30.000 --> 06:35.000
And most of the tests that are failing right now, some of them are in PR and some comments that nobody cares about.

06:35.000 --> 06:40.000
Or sometime we have some weird, I will put ordering.

06:40.000 --> 06:44.000
So, if you delete, if you use RM on the directly and you don't have permission,

06:44.000 --> 06:52.000
new is going to show something first and we show it at the end, so it's going to make a small difference.

06:53.000 --> 06:57.000
So, what we are also doing is we run the test independently.

06:57.000 --> 07:02.000
So, we have that fancy dashboard, which is telling us that, for example, with Scott,

07:02.000 --> 07:09.000
we have one test that is failing currently from the new test suite, but C-H group and the C-H zone and C-H roots,

07:09.000 --> 07:12.000
there are fully compliant with the new test suite.

07:12.000 --> 07:17.000
That doesn't mean that it is fully compliant because it is the new test suite as a limitation.

07:17.000 --> 07:23.000
So, we are contributing upstream to the new project when we see some stuff that are not tested.

07:23.000 --> 07:28.000
But that shows that you can use it in, you have, you can trust the code.

07:28.000 --> 07:30.000
You can trust that it is working well.

07:30.000 --> 07:36.000
And it's, you can also verify that you are not progressing when you are making some changes.

07:36.000 --> 07:40.000
So, the current status, I'm very proud to say that we are production ready.

07:40.000 --> 07:44.000
We support Linux, Mac, Windows, Android, open base day, freebie, SD in at BSD.

07:44.000 --> 07:47.000
If you use Fushia Redox, then Wazam.

07:47.000 --> 07:53.000
So, it's most of those target are in the CI, not all of them because GitHub doesn't provide everything here,

07:53.000 --> 07:56.000
but we have a lot of good coverage.

07:56.000 --> 07:58.000
It is also now used in production.

07:58.000 --> 08:03.000
Most important thing on my laptop, this laptop is running that implementation.

08:03.000 --> 08:07.000
So, it is a kind of production, but we have also,

08:08.000 --> 08:11.000
a collaborator who worked on that project to ship it on an apartment.

08:11.000 --> 08:16.000
So, if you have an apartment's version, it's going to have our implementation.

08:16.000 --> 08:22.000
If you are in, if you are young, you might know about Snapchat and spectacles, the glasses,

08:22.000 --> 08:24.000
they are running our implementation.

08:24.000 --> 08:28.000
I must admit that those two are mostly for licensed reason, but it's working well.

08:28.000 --> 08:30.000
There are certain production.

08:30.000 --> 08:33.000
Microsoft is also using it for VS code web.

08:33.000 --> 08:37.000
It's a lot of article about it because it is written in the rest,

08:37.000 --> 08:40.000
compiling the rest to web assembly, it's pretty easy.

08:40.000 --> 08:43.000
And it is one of the beauty of open source.

08:43.000 --> 08:47.000
It's probably elsewhere, and if you use that in your company,

08:47.000 --> 08:49.000
and you didn't tell me before, please let me know.

08:49.000 --> 08:53.000
I'm always excited to know when people are using our code.

08:53.000 --> 08:57.000
And it's almost all Linux distro.

08:57.000 --> 09:00.000
Some of them, at least one, that I know,

09:00.000 --> 09:05.000
the third point to us is now shipping by default with that implementation.

09:05.000 --> 09:09.000
So, before that took me well already covered some part,

09:09.000 --> 09:12.000
but here is my point of view of why it works.

09:12.000 --> 09:15.000
Why it works for this?

09:15.000 --> 09:22.000
We have, we are seeing that rest is replacing C and C++, almost everywhere.

09:22.000 --> 09:25.000
So, I'm completely biased. I work on Firefox.

09:25.000 --> 09:28.000
It has been my work for 11 years and 10 days.

09:28.000 --> 09:32.000
So, I was part of the release management team,

09:32.000 --> 09:35.000
when we started shipping rest in two Firefox.

09:35.000 --> 09:37.000
I'm completely biased on the browser part.

09:37.000 --> 09:40.000
We know that Chrome is also following our leading database,

09:40.000 --> 09:42.000
a Linux kernel and menu operating system.

09:42.000 --> 09:46.000
We know that Microsoft is using it for Windows.

09:46.000 --> 09:50.000
Going to study reviews, but rest is very good for security,

09:50.000 --> 09:52.000
for parallelism, for performances.

09:52.000 --> 09:55.000
And I'm going to show you that in the demo.

09:56.000 --> 10:00.000
But I like also to say that we are not replacing the simple implementation,

10:00.000 --> 10:02.000
because they did a poor job in terms of security.

10:02.000 --> 10:04.000
They did an amazing job.

10:04.000 --> 10:08.000
They almost don't have any security issues in their codebase,

10:08.000 --> 10:11.000
they are doing amazing work, and it's super safe.

10:11.000 --> 10:14.000
So, they're not about being better in terms of security.

10:14.000 --> 10:18.000
As I'm playing several times before, it's not about license.

10:18.000 --> 10:21.000
I'm not interested, I know that some people care a lot,

10:21.000 --> 10:24.000
but it's not why I'm doing it.

10:26.000 --> 10:28.000
Second part. It's very portable.

10:28.000 --> 10:30.000
Some people are surprised when I say that.

10:30.000 --> 10:32.000
Unlike Java, it's really really portable.

10:32.000 --> 10:34.000
So, I mean that if I write a code,

10:34.000 --> 10:38.000
usually I'm almost certain that it is going to work well on Windows and Mac,

10:38.000 --> 10:40.000
and Android, which is very surprising to me,

10:40.000 --> 10:42.000
given the complexity of everything that we do,

10:42.000 --> 10:44.000
and everything is platform-specific,

10:44.000 --> 10:47.000
but things to the ecosystem and things to the quality of rest.

10:47.000 --> 10:53.000
The cost of parting a change to an operating system is very, very small.

10:54.000 --> 10:57.000
And I know that one is up to debate.

10:57.000 --> 11:00.000
Myself, I'm on the side of AMAZE,

11:00.000 --> 11:03.000
so if there is a great doing library doing that work,

11:03.000 --> 11:05.000
I'm going to use it, I'm not going to implement it.

11:05.000 --> 11:09.000
We have like 200 dependencies in the rest of our materials,

11:09.000 --> 11:11.000
because we don't want to be implementing.

11:11.000 --> 11:15.000
I do understand that there is always a supply chain attack risk,

11:15.000 --> 11:17.000
but it's a risk that we are willing to take,

11:17.000 --> 11:20.000
and they are more and more tooling around that to protect ourselves.

11:20.000 --> 11:24.000
And if you did some Windows Mac and Linux development,

11:24.000 --> 11:28.000
in your career, you know that parting new dependency on a different,

11:28.000 --> 11:30.000
another operating system is a nightmare.

11:30.000 --> 11:33.000
And the rest is usually as easy as typing,

11:33.000 --> 11:35.000
cargo, add, and the name of the crate.

11:35.000 --> 11:39.000
Usually everything is managed by for you by the build system.

11:39.000 --> 11:42.000
I'm a developer and I'm a geek,

11:42.000 --> 11:45.000
it's also super interesting to learn a language.

11:45.000 --> 11:49.000
Like it's part of what makes our job super exciting,

11:49.000 --> 11:52.000
is learning new things every day.

11:52.000 --> 11:54.000
And as I'm getting older,

11:54.000 --> 11:55.000
I'm my son is ten years old.

11:55.000 --> 11:59.000
I also think about what we are going to live to the new generation.

11:59.000 --> 12:00.000
There's a new generation.

12:00.000 --> 12:03.000
They don't want to do cobalt, see, or for twins.

12:03.000 --> 12:04.000
They want to do fancy stuff.

12:04.000 --> 12:07.000
Like rest, we have to go or cut in.

12:07.000 --> 12:10.000
And I think it's a good investment for the future

12:10.000 --> 12:14.000
to start now investing in the new technology and the new languages.

12:14.000 --> 12:17.000
And the new approach for the future of the Linux ecosystem.

12:17.000 --> 12:22.000
And the computer science system ecosystem in general.

12:22.000 --> 12:24.000
Now I'm going to do a demo.

12:24.000 --> 12:27.000
I'm going to do some product placement for some of the cool stuff

12:27.000 --> 12:29.000
that we do at Medziab because everything is intertwined.

12:29.000 --> 12:32.000
And if I know about those tools also because I work at Medziab

12:32.000 --> 12:34.000
with the folks who develop those things.

12:34.000 --> 12:35.000
So please bear with me.

12:35.000 --> 12:36.000
It's a demo.

12:36.000 --> 12:37.000
It's never perfect.

12:37.000 --> 12:40.000
And I need my notes.

12:40.000 --> 12:41.000
Here we are.

12:41.000 --> 12:48.000
So yeah, we can see cool.

12:48.000 --> 12:51.000
So I'm using Alacrity Terminal Invest.

12:51.000 --> 12:53.000
And so point is Starship also Invest.

12:53.000 --> 12:56.000
So most of the tools that I'm using on Medziab.

12:56.000 --> 12:59.000
I'm packaging the Medziab and they are almost all I have to do

12:59.000 --> 13:02.000
the box with some customization to make them nicer.

13:02.000 --> 13:05.000
So you all recognize the pattern.

13:05.000 --> 13:07.000
So I've got a cargo.tml.

13:07.000 --> 13:09.000
So what I want to do is to show you, for example,

13:09.000 --> 13:13.000
that I'm using the best implementation of that.

13:13.000 --> 13:17.000
And if you are from Australia, you will appreciate

13:17.000 --> 13:19.000
an opportunity that we are telling news

13:19.000 --> 13:21.000
that you are spelling color wrong.

13:21.000 --> 13:23.000
Color should be spelled this way.

13:23.000 --> 13:27.000
But we are helping you to fix your English to write way.

13:27.000 --> 13:32.000
So what I want to do now is to show you one of the,

13:32.000 --> 13:36.000
so we take the liberty at times to, to different

13:36.000 --> 13:39.000
I was self on the new implementation.

13:39.000 --> 13:45.000
So what I'm going to do is we added a command, an argument called dash dash progress,

13:45.000 --> 13:47.000
where you have the progress bars.

13:47.000 --> 13:51.000
And if you have been using CP, you don't have that.

13:51.000 --> 13:56.000
And it can be very frustrating because you never know how much time it takes.

13:56.000 --> 14:01.000
I have not done the implementation.

14:01.000 --> 14:05.000
It's one of the other maintenance, third, third of the clubs.

14:06.000 --> 14:08.000
And it's pretty easy to add that.

14:08.000 --> 14:13.000
And if you see other places where we could add it, don't hesitate to let us know.

14:13.000 --> 14:17.000
We have also some algorithms that we are shipping.

14:17.000 --> 14:19.000
No, it's sorry.

14:19.000 --> 14:22.000
The demo effect that I said.

14:22.000 --> 14:31.000
So we are also, for example, we have that as algorithms that we are shipping.

14:31.000 --> 14:34.000
Of course, it's totally because it's waiting for something

14:34.000 --> 14:35.000
on the city in.

14:35.000 --> 14:38.000
But we are also taking the liberty to add more stuff.

14:38.000 --> 14:44.000
So what I want to show you also now is how easy it is to run test.

14:44.000 --> 14:46.000
So the command, cargo test.

14:46.000 --> 14:49.000
Sorry, I'm going to clear the screen, capabilities, cargo test.

14:49.000 --> 14:50.000
We all know how it works.

14:50.000 --> 14:51.000
We have dash dash feature.

14:51.000 --> 14:53.000
We say I'm running a unix.

14:53.000 --> 14:56.000
Because we have also unix dash SE Linux.

14:56.000 --> 14:57.000
I'm a debyan user.

14:57.000 --> 15:00.000
So I don't have any CD news and I don't care.

15:00.000 --> 15:01.000
But some people care.

15:01.000 --> 15:04.000
So we have also instead of unix.

15:04.000 --> 15:07.000
We have Linux, underscore SE Linux or something.

15:07.000 --> 15:11.000
And here I want to run only the test on sort.

15:11.000 --> 15:15.000
So I'm building the dependency.

15:15.000 --> 15:17.000
It's going to take a bit of time.

15:17.000 --> 15:18.000
It's not in with this.

15:18.000 --> 15:19.000
So here it is.

15:19.000 --> 15:20.000
I launch all the tests.

15:20.000 --> 15:22.000
And as you saw, it only took one second.

15:22.000 --> 15:24.000
And, sorry, one second.

15:24.000 --> 15:27.000
And one point two seven second.

15:27.000 --> 15:30.000
To run the test suite for all sorts come in.

15:30.000 --> 15:34.000
If I were doing that with a new, it would take 20 seconds.

15:34.000 --> 15:35.000
Something like that.

15:35.000 --> 15:36.000
And it's much harder.

15:36.000 --> 15:39.000
So it's very easy when you want to test your changes.

15:39.000 --> 15:40.000
Because you can quickly on the events,

15:40.000 --> 15:43.000
or test on the commands that you're attaching.

15:43.000 --> 15:44.000
So this is easy as this stuff.

15:44.000 --> 15:48.000
So what I want to show you now, it's my laptop falls.

15:48.000 --> 15:51.000
Of course, it's a demo.

15:51.000 --> 15:53.000
Let's move to a different terminal.

16:00.000 --> 16:07.000
You can see, yeah, perfect.

16:07.000 --> 16:11.000
So, ah, it's probably because I have something mounted.

16:11.000 --> 16:13.000
So it's why it's long.

16:13.000 --> 16:17.000
So on my system, I'm basically to run my implementation.

16:17.000 --> 16:19.000
I'm just avoiding the pass.

16:19.000 --> 16:22.000
So if I'm typing the full pass to the implement,

16:22.000 --> 16:24.000
I have a full increment.

16:24.000 --> 16:27.000
So you can see here that I'm running not the latest version.

16:27.000 --> 16:29.000
I'm using the package one in Debian.

16:29.000 --> 16:32.000
In Debian, we still have the 9.5, which is not the latest,

16:32.000 --> 16:34.000
which is important because they improve some performances.

16:34.000 --> 16:38.000
Anyway, ah, I have on my system,

16:38.000 --> 16:41.000
ah, all the books that Maria wrote.

16:41.000 --> 16:43.000
But because I speak in English,

16:43.000 --> 16:45.000
I'm going to use six years, an example.

16:45.000 --> 16:51.000
So I'm using a W-L and we can see that we have all six

16:51.000 --> 16:56.000
year books about 127,000 lines.

16:56.000 --> 16:59.000
So now what I want to do is to do some benchmarking.

16:59.000 --> 17:01.000
So I'm using hyperfine, which is a worse program.

17:01.000 --> 17:07.000
One more to do some easy benchmarking between a command line program.

17:07.000 --> 17:11.000
So let me type it from start.

17:11.000 --> 17:16.000
Debug, corality, sort, Shakespeare.

17:16.000 --> 17:18.000
Of course, I need quotes.

17:18.000 --> 17:21.000
And now I'm going to give the signal.

17:21.000 --> 17:24.000
So if you know about stress, you are telling to yourself,

17:24.000 --> 17:26.000
that guy on stage is stupid.

17:26.000 --> 17:27.000
He doesn't know what he's doing.

17:27.000 --> 17:32.000
He's using the Debug build of stress, which is often very slow.

17:32.000 --> 17:34.000
But it's part of the demo effect, right?

17:34.000 --> 17:35.000
So I'm running.

17:35.000 --> 17:39.000
So what if you're fine is doing is running 10 times the program.

17:39.000 --> 17:43.000
And as you can see here, that part, you have the result.

17:43.000 --> 17:47.000
And we can see that even have our Debug build of sort.

17:47.000 --> 17:54.000
So sorting all the line in Shakespeare books is 1.45 times faster

17:54.000 --> 17:57.000
than the new implementation.

17:57.000 --> 18:02.000
It's because we are using some rest week and work makes that super easy.

18:02.000 --> 18:07.000
So now because it takes forever, I already build with this bug.

18:07.000 --> 18:13.000
A village build of that.

18:13.000 --> 18:23.000
So instead of doing Debug, I'm just going to use a village build.

18:23.000 --> 18:26.000
It takes a few seconds.

18:26.000 --> 18:31.000
And we can see that we are six time faster than the new implementation.

18:31.000 --> 18:41.000
So now it is when I start doing project placements from the staff.

18:41.000 --> 18:44.000
So I'm going to use a tool that one of our colleagues developed,

18:44.000 --> 18:47.000
called simply, if you are into profiling performances, you should know

18:47.000 --> 18:50.000
but simply, if you don't, you are making a mistake.

18:50.000 --> 18:57.000
So what I'm going to do is I'm going to ask simply to do a profiling of the sort itself.

18:57.000 --> 19:01.000
So activities, it's analyzing.

19:01.000 --> 19:06.000
Now I'm going to go in Firefox and I'm going to open the Firefox profiler.

19:06.000 --> 19:09.000
It's one of the things that we developed to improve the performances of Firefox.

19:09.000 --> 19:13.000
So we can, I'm not going to go into many details about the few,

19:13.000 --> 19:16.000
but we can see the performances, we can see the values thread.

19:16.000 --> 19:22.000
And what I like is graphic or flam, flam, whatever in English.

19:22.000 --> 19:27.000
And so I'm going to do, I'm going to look at the profile.

19:27.000 --> 19:29.000
Of course, I prepared everything before.

19:29.000 --> 19:30.000
So I know what I want.

19:30.000 --> 19:36.000
But we can see that here, I'm spending 30, 29% of the time,

19:36.000 --> 19:39.000
just to do a resize of the vector.

19:39.000 --> 19:42.000
And if you went to university and studied that,

19:42.000 --> 19:45.000
it's one of the basics exercise.

19:45.000 --> 19:48.000
So why are we spending that long on that stuff?

19:48.000 --> 19:51.000
So I can double-click because of the res magic.

19:51.000 --> 19:54.000
I have access immediately to the source code.

19:54.000 --> 19:56.000
I'm not here to do a demo of the profiler.

19:56.000 --> 19:58.000
I'm going to do one more product placement.

19:58.000 --> 20:00.000
Some of my colleagues are going to present certain the web

20:00.000 --> 20:02.000
perform later today.

20:02.000 --> 20:06.000
But I can see that here, I'm spending most of the time in buffery size.

20:06.000 --> 20:12.000
And I'm like, oh, yeah, it's probably not the right thing to do.

20:12.000 --> 20:15.000
So I'm going to go back to the terminal.

20:16.000 --> 20:18.000
Just to show you Shakespeare.

20:18.000 --> 20:20.000
Here it is.

20:20.000 --> 20:22.000
The end of the bottom.

20:22.000 --> 20:23.000
The end of the last book.

20:23.000 --> 20:29.000
So what I want to do is I'm going to do a backup first of,

20:29.000 --> 20:32.000
so that we don't have to be compile.

20:32.000 --> 20:37.000
Of the debug bills, target the bug, corretiles,

20:37.000 --> 20:41.000
previews for first-dem demo.

20:41.000 --> 20:44.000
So it's super clear.

20:44.000 --> 20:47.000
And now I'm going to show you one of the patch.

20:47.000 --> 20:49.000
It's certainly, I don't want to put it in the tree,

20:49.000 --> 20:52.000
because I don't like and say it, but it's one of the tricks

20:52.000 --> 20:54.000
that you use to do an initialized memory.

20:54.000 --> 20:56.000
There isn't any safe at the bottom.

20:56.000 --> 20:58.000
So it's not some things that we are going to influence

20:58.000 --> 21:00.000
our better ways to do that in the rest.

21:00.000 --> 21:02.000
But it's just for the demo.

21:02.000 --> 21:05.000
So what I'm going to do now is to apply the patch.

21:05.000 --> 21:07.000
I'm going to do a rebuild again.

21:07.000 --> 21:11.000
Well, I will show you how quickly this to run the test.

21:11.000 --> 21:16.000
So I'm running the test to make sure that I don't request.

21:16.000 --> 21:18.000
I didn't request the test.

21:18.000 --> 21:19.000
Cool.

21:19.000 --> 21:28.000
And now what I want to do is to run sample again with a new cut.

21:28.000 --> 21:30.000
So I'm opening the profile again.

21:30.000 --> 21:33.000
Graphic of Flammer Core.

21:33.000 --> 21:34.000
And here it is.

21:34.000 --> 21:37.000
We see that the sort, the weak to buffer now,

21:37.000 --> 21:40.000
is we present only 5% of the time.

21:41.000 --> 21:46.000
Now what I want to do is to do some profiling of that.

21:46.000 --> 21:48.000
So my laptop is not plugged.

21:48.000 --> 21:52.000
So on the power, so it takes about 2 minutes to do a rebuild

21:52.000 --> 21:53.000
of an in-release.

21:53.000 --> 21:55.000
It takes 1 minute when it is plugged.

21:55.000 --> 21:58.000
So I will not, we are not going to wake

21:58.000 --> 22:01.000
together for 2 minutes for the compiler to finish the job.

22:01.000 --> 22:03.000
So I already prepared the build.

22:04.000 --> 22:09.000
So I'm going to run hyperfine.

22:09.000 --> 22:12.000
And now what I want to know is,

22:12.000 --> 22:18.000
I don't have completion in that case.

22:18.000 --> 22:24.000
Let's do the debug build instead.

22:24.000 --> 22:27.000
So I have the debug build that I prepared.

22:27.000 --> 22:32.000
I have the new one.

22:32.000 --> 22:36.000
We are still faster than the regular implementation.

22:36.000 --> 22:40.000
So the good target, debug, call it kills.

22:40.000 --> 22:47.000
Previews for them demo, Shakespeare.

22:47.000 --> 22:50.000
So now if your fine is going to run it on the free binary.

22:50.000 --> 22:52.000
So the one without my files, the one with a batch,

22:52.000 --> 22:55.000
and the new implementation.

22:55.000 --> 22:57.000
Ah.

22:57.000 --> 22:58.000
Cool.

22:58.000 --> 23:00.000
So which one it failed?

23:00.000 --> 23:03.000
I probably made a typo in what is the command.

23:03.000 --> 23:05.000
What?

23:05.000 --> 23:06.000
Sort?

23:06.000 --> 23:07.000
Oh yeah.

23:07.000 --> 23:09.000
Merci.

23:09.000 --> 23:10.000
Wow.

23:10.000 --> 23:12.000
Merci.

23:12.000 --> 23:13.000
So demo, that's fine.

23:13.000 --> 23:15.000
Also why can we record it next time?

23:15.000 --> 23:16.000
Yeah.

23:20.000 --> 23:21.000
So here it is.

23:21.000 --> 23:23.000
We can see that the new, so the first one,

23:23.000 --> 23:26.000
that one is the one that I just patch and we compile.

23:26.000 --> 23:30.000
It's faster than the ones that we have in three currently.

23:30.000 --> 23:34.000
And it's twice faster than the new implementation.

23:34.000 --> 23:36.000
So what I'm showing is not to show off.

23:36.000 --> 23:38.000
It took me like 30 minutes.

23:38.000 --> 23:39.000
It's not very hard to do.

23:39.000 --> 23:41.000
And the profiler and also new tools.

23:41.000 --> 23:45.000
The rest tool helps a lot to debug and identify

23:45.000 --> 23:47.000
those kind of issues.

23:47.000 --> 23:50.000
And as I was saying, it's tools that we develop for five or four years.

23:50.000 --> 23:53.000
And it is why five or four is now as fast as Chrome.

23:53.000 --> 23:55.000
It's thanks to all those tools.

23:55.000 --> 24:00.000
But I'm also about five or four and go back to the presentation.

24:00.000 --> 24:03.000
So I did the demo.

24:03.000 --> 24:08.000
So we have been held by the Southern Tech Fund in 2023,

24:08.000 --> 24:12.000
with the other maintainer and Google helped us as part of the Google

24:12.000 --> 24:14.000
summer of code 2024.

24:14.000 --> 24:18.000
And as I was saying earlier, we have proposed CI on most of the

24:18.000 --> 24:21.000
supported platform that everything, but most of them

24:21.000 --> 24:26.000
get up is doing a great job to provide the banner in GitHub

24:26.000 --> 24:27.000
action.

24:27.000 --> 24:29.000
Our code coverage is amazing.

24:29.000 --> 24:30.000
Almost 80%.

24:30.000 --> 24:33.000
And if you have played with code coverage, if you are both

24:33.000 --> 24:35.000
A.T., you are usually very happy.

24:35.000 --> 24:36.000
Here we are.

24:36.000 --> 24:39.000
Even happier with almost 90.

24:39.000 --> 24:43.000
We have a lot of jobs in the CI to make sure that if you

24:43.000 --> 24:46.000
enable the adoption ends at one, it's going to work.

24:46.000 --> 24:49.000
If you disable that one, and the other one is going to work.

24:49.000 --> 24:51.000
And we also contribute to have three.

24:51.000 --> 24:52.000
So we report bugs.

24:52.000 --> 24:55.000
We send patches when they are doing something wrong.

24:55.000 --> 24:57.000
We collaborate with them.

24:57.000 --> 24:59.000
It's a very friendly collaboration.

24:59.000 --> 25:03.000
So it's not we are not fighting.

25:03.000 --> 25:05.000
And one of the cool stuff that I play with,

25:05.000 --> 25:07.000
so Atmosier used to manage the fuzzing teams.

25:07.000 --> 25:09.000
So I know one was two things about fuzzing,

25:09.000 --> 25:11.000
and they told me when I discussed with them,

25:11.000 --> 25:14.000
they told me you should fight differential fuzzing.

25:14.000 --> 25:18.000
So what we are doing is we have a fuzzing that is going

25:18.000 --> 25:21.000
the fuzzing, the grammar of the command.

25:21.000 --> 25:25.000
So for example, it's XPR for expression.

25:25.000 --> 25:27.000
So you can do some stupid math.

25:27.000 --> 25:30.000
And it's going to generate something that it is valid,

25:30.000 --> 25:31.000
and sometimes invalid.

25:31.000 --> 25:34.000
And what we are doing is that we are asking the fuzzing to generate

25:34.000 --> 25:37.000
a lot of things that are relevant and irrelevant.

25:37.000 --> 25:40.000
And then we run the command into both implementation.

25:40.000 --> 25:42.000
Howard and the Gnu.

25:42.000 --> 25:44.000
And we verify if S.A.D. out.

25:44.000 --> 25:46.000
So the standard output, S.A.D.R.

25:46.000 --> 25:49.000
and the exit code are similar.

25:49.000 --> 25:53.000
In that case, we can see that the Gnu error message

25:53.000 --> 25:55.000
was not integral argument.

25:55.000 --> 25:59.000
And our world was expected an integral occuren.

25:59.000 --> 26:00.000
So it says the same thing.

26:00.000 --> 26:02.000
But we consider that as a bug,

26:02.000 --> 26:05.000
we want to be really drafting with placement

26:05.000 --> 26:08.000
to the later in terms of error message.

26:08.000 --> 26:11.000
And differential fuzzing for that is amazing.

26:11.000 --> 26:14.000
If you have an implementation and you have a target

26:14.000 --> 26:19.000
that you want to reach, differential fuzzing is really one of the

26:19.000 --> 26:22.000
silver bullets that you can use in security,

26:22.000 --> 26:24.000
but in compliance also.

26:24.000 --> 26:27.000
But they know about the quantity because I'm talking about the past

26:27.000 --> 26:30.000
and because you are all occurs and you all know about

26:30.000 --> 26:32.000
free software and you are all most of you probably are

26:32.000 --> 26:34.000
contributing to open source.

26:34.000 --> 26:36.000
I'd like to tell you about what we have been working on.

26:36.000 --> 26:39.000
So there is an old Chinese proverb that I love.

26:39.000 --> 26:42.000
Let's say that the best time to plan to three was 20 years ago.

26:42.000 --> 26:44.000
And the second time it's now.

26:44.000 --> 26:48.000
And you can apply that in your life with many different ways.

26:48.000 --> 26:52.000
And the corridors have been here for 55 years,

26:52.000 --> 26:54.000
if you think about it.

26:54.000 --> 26:56.000
I have friends who worked as software

26:56.000 --> 26:58.000
and we have that.

26:58.000 --> 27:01.000
And if you can look at the first commit of the corridors

27:01.000 --> 27:03.000
that was done for Unix.

27:03.000 --> 27:08.000
It was June all in four months, five months,

27:08.000 --> 27:10.000
it would be 55 years.

27:11.000 --> 27:13.000
And yesterday when I worked on the slide,

27:13.000 --> 27:15.000
it was like, oh, it's actually a book.

27:15.000 --> 27:17.000
The timestamp a book was six months before.

27:17.000 --> 27:18.000
So it's not a coincidence.

27:18.000 --> 27:22.000
And those things are really back from the beginning of our

27:22.000 --> 27:23.000
industry.

27:23.000 --> 27:25.000
And I was thinking about it.

27:25.000 --> 27:27.000
It's like how the corridors can disappear.

27:27.000 --> 27:30.000
Like in which world are we going to get rid of L.S.

27:30.000 --> 27:34.000
M.C.R.C.H.Mertiation on Artist on Mac and on Linux.

27:34.000 --> 27:35.000
Probably not.

27:35.000 --> 27:38.000
I think we are all going to be retired when those tools are going

27:38.000 --> 27:41.000
to disappear if they disappear one day.

27:41.000 --> 27:43.000
And those tools still continue to evolve.

27:43.000 --> 27:45.000
Like if you look at the new projects,

27:45.000 --> 27:47.000
the new implementations are taking your options,

27:47.000 --> 27:49.000
they introduce new algorithms, and we are doing the same.

27:49.000 --> 27:52.000
And there is no reason why those tools should not evolve.

27:52.000 --> 27:54.000
At some point we should have the discussion.

27:54.000 --> 27:56.000
Does PR still make sense to have that in three,

27:56.000 --> 27:58.000
probably not, but it's a different discussion.

27:58.000 --> 28:00.000
And by the way, it's not a Chinese proverb.

28:00.000 --> 28:02.000
I looked at that to people in my presentation,

28:02.000 --> 28:03.000
but it looks cool.

28:03.000 --> 28:05.000
So that's why I use it.

28:06.000 --> 28:09.000
There is a page explaining that it is not a Chinese proverb.

28:09.000 --> 28:12.000
It forms the U.S. in the 50s or something like that.

28:12.000 --> 28:14.000
But I like it.

28:14.000 --> 28:17.000
In parallel, we have been working on fine materials and different tools.

28:17.000 --> 28:20.000
So those projects have been less of a focus of us.

28:20.000 --> 28:22.000
But we have people who did a lot of great work.

28:22.000 --> 28:26.000
Here, we are running the B.F.B.F.S.

28:26.000 --> 28:30.000
Test suite against our implementation of the fine materials.

28:30.000 --> 28:32.000
The comments that everybody knows.

28:32.000 --> 28:39.000
And you can see that we are not fully compliant, but good in us.

28:39.000 --> 28:44.000
And now what I like to do is to do the same with most of the essential packages on the

28:44.000 --> 28:47.000
Debian and Ubuntu, because it's the distros that I know best.

28:47.000 --> 28:50.000
We can ask the similar conversation with other distros.

28:50.000 --> 28:53.000
Let's hope you love distros and Debian, but seriously.

28:53.000 --> 28:57.000
And there is no better time than now to start that work.

28:57.000 --> 29:00.000
So the essential packages, you use them every day.

29:00.000 --> 29:02.000
You know about them, not all of them, obviously.

29:02.000 --> 29:04.000
But they are still very important.

29:04.000 --> 29:08.000
So this is a comment on Debian or Ubuntu to get the list of essential packages.

29:08.000 --> 29:11.000
The essential packages, if you want to create a meeting.

29:16.000 --> 29:18.000
I don't do Debian anymore.

29:18.000 --> 29:19.000
Oh, yes.

29:19.000 --> 29:21.000
It's more than one that's going to be there.

29:21.000 --> 29:25.000
When you create a CH route and Debian or you boot a very tiny Debian,

29:25.000 --> 29:29.000
it is a package that Debian needs to run.

29:29.000 --> 29:31.000
So you all know about those ones.

29:31.000 --> 29:34.000
They are easy, free, key, LPS.watch.

29:34.000 --> 29:38.000
In this package, prompt PS, we have also some weird stuff.

29:38.000 --> 29:39.000
Like PWX.

29:39.000 --> 29:42.000
Who knows about PWDX is doing?

29:42.000 --> 29:45.000
I implemented it in a few months ago.

29:45.000 --> 29:50.000
It's going to tell you the current working directory of a PIG.

29:50.000 --> 29:53.000
You want something at least today at first time.

29:54.000 --> 29:57.000
T-load, slapped up, and so on.

29:57.000 --> 29:58.000
Util Linux.

29:58.000 --> 30:01.000
So you know about DMSLs, get up, our link, and so on.

30:01.000 --> 30:02.000
There are some stuff.

30:02.000 --> 30:03.000
Those ones don't ask me.

30:03.000 --> 30:04.000
I don't know what they are.

30:04.000 --> 30:05.000
I didn't pre-per for those ones.

30:05.000 --> 30:08.000
I'm cookie and CH-woo.

30:08.000 --> 30:10.000
I guess CH-woo, I guess CH-woo, yes.

30:10.000 --> 30:11.000
CH-woo, I don't remember.

30:11.000 --> 30:15.000
It could change the behavior of the kernel when you are out of memory.

30:15.000 --> 30:20.000
Then we have some comments that we don't use in Linux in real life.

30:20.000 --> 30:24.000
For some reason, I should discuss with people in Debion Y.

30:24.000 --> 30:27.000
It is installed by default ACR.

30:27.000 --> 30:31.000
It's one of the cool stuff that we don't use at the end.

30:31.000 --> 30:33.000
We have also BSD utils.

30:33.000 --> 30:36.000
So there are some most famous green ice to change the priority.

30:36.000 --> 30:39.000
We have also Austin.

30:39.000 --> 30:41.000
Login.

30:41.000 --> 30:45.000
And you didn't see system D because I'm afraid of lernart.

30:45.000 --> 30:46.000
I don't know if it's in the room.

30:46.000 --> 30:49.000
I don't want to see them before.

30:49.000 --> 30:52.000
More seriously, system D would be a beast to be right in rust.

30:52.000 --> 30:55.000
And it would be way too complex.

30:55.000 --> 30:58.000
We already started all those projects.

30:58.000 --> 31:00.000
They are already live on our project.

31:00.000 --> 31:01.000
It's called U-tills.

31:01.000 --> 31:03.000
I think it's universal utils.

31:03.000 --> 31:04.000
It doesn't matter what it means.

31:04.000 --> 31:06.000
It is a name of the project.

31:06.000 --> 31:10.000
We have already a lot of people who started contributing to those projects.

31:10.000 --> 31:14.000
We also leveraging what we have done for the core materials.

31:14.000 --> 31:18.000
So there are many, many functions that we have in the core materials.

31:18.000 --> 31:23.000
That can be used for the programs as part of that world.

31:23.000 --> 31:28.000
So when you need to monitor the system or when you need to look at the permission,

31:28.000 --> 31:31.000
we have already also function.

31:31.000 --> 31:34.000
We started some of some of the scum end.

31:34.000 --> 31:36.000
I've been fully implemented.

31:36.000 --> 31:38.000
Some of them are just one line.

31:38.000 --> 31:40.000
It really depends.

31:40.000 --> 31:43.000
And it's very easy to plug new tools into that ecosystem.

31:43.000 --> 31:45.000
And we have a lot of good feedback.

31:45.000 --> 31:47.000
So if you want to learn the rest, it's very easy.

31:47.000 --> 31:48.000
It seems hard.

31:48.000 --> 31:50.000
Those comments are usually self-contained.

31:50.000 --> 31:51.000
You know the target.

31:51.000 --> 31:53.000
We have a lot of thinking fruit.

31:53.000 --> 31:56.000
So don't hesitate if you want to learn the rest for real.

31:56.000 --> 31:58.000
To start those projects is where I learn.

31:58.000 --> 32:01.000
And that's why we have so many contributors.

32:01.000 --> 32:05.000
I think those projects, like we're writing,

32:05.000 --> 32:07.000
we inventing the will, might some crazy.

32:07.000 --> 32:10.000
But I think it will work because there is an appetite from the community.

32:10.000 --> 32:13.000
We saw that the room here is the tool.

32:13.000 --> 32:15.000
But there is a lot of people.

32:15.000 --> 32:18.000
The talk from Miguel before was the same.

32:18.000 --> 32:19.000
A lot of people.

32:19.000 --> 32:22.000
So we see that people are excited by such projects.

32:22.000 --> 32:24.000
But I was seeing earlier.

32:24.000 --> 32:25.000
I'm beginning older.

32:25.000 --> 32:26.000
We all do.

32:26.000 --> 32:29.000
But the new generation is not going to want to do see.

32:29.000 --> 32:36.000
And paving the way to do rest is also a good opportunity for them to be involved in the open source ecosystem.

32:36.000 --> 32:38.000
We have reference implementation.

32:38.000 --> 32:39.000
So it's very easy to test.

32:39.000 --> 32:42.000
You can do different short-fazing as a silver bullet to help you.

32:42.000 --> 32:45.000
And as part of that, you learn how to do fazing.

32:45.000 --> 32:49.000
And in the rest is very easy to do.

32:49.000 --> 32:51.000
And we are also.

32:51.000 --> 32:54.000
I didn't know if I wanted to say that during that presentation.

32:54.000 --> 32:58.000
But I'm going to say it is a lot of those tools that I mentioned earlier.

32:58.000 --> 33:01.000
They are using very old pipeline system.

33:01.000 --> 33:02.000
Some of them.

33:02.000 --> 33:03.000
They don't have CI.

33:03.000 --> 33:06.000
They are still using maintenance to send patches.

33:06.000 --> 33:08.000
I apologize for the news developer here.

33:08.000 --> 33:13.000
I still think that using maintenance to do patch review sucks.

33:13.000 --> 33:19.000
And now with GitHub, we have an amazing opportunity to have a proper pipeline where you

33:19.000 --> 33:20.000
can run CI.

33:20.000 --> 33:22.000
You can run quality tools and so on.

33:22.000 --> 33:27.000
And it is one of the advantage that we have over some of those old projects that I mentioned.

33:27.000 --> 33:30.000
But to be clear, that works for them so I'm happy.

33:30.000 --> 33:34.000
But I think we can do better as a community.

33:34.000 --> 33:37.000
And I'd like to mention that it's not a much easier project.

33:37.000 --> 33:38.000
There is no company behind it.

33:38.000 --> 33:42.000
There is no interest from the architect in that project.

33:42.000 --> 33:45.000
It's really I'm doing that as a passion because I can't do it.

33:45.000 --> 33:47.000
They are in the new extension of all.

33:47.000 --> 33:49.000
So it's really a community effort.

33:49.000 --> 33:51.000
There is no structure behind it.

33:51.000 --> 33:56.000
Now what I'd like to do is to finish that demo.

33:56.000 --> 33:57.000
Sorry.

33:57.000 --> 34:00.000
By making.

34:00.000 --> 34:03.000
So it's a blog post that I wrote to announce that stuff.

34:03.000 --> 34:04.000
I wrote it a few months ago.

34:04.000 --> 34:07.000
But now I think it's time to make it public.

34:07.000 --> 34:09.000
So make.

34:09.000 --> 34:12.000
Project.

34:12.000 --> 34:13.000
Click.

34:13.000 --> 34:17.000
So here it is.

34:17.000 --> 34:20.000
So it's probably going to be on account news in a few hours.

34:20.000 --> 34:22.000
And last time it was number one.

34:22.000 --> 34:24.000
It's probably going to be number one again.

34:24.000 --> 34:26.000
I know that I'm showing off by saying that.

34:26.000 --> 34:30.000
But it shows the interest of the community when we do it.

34:30.000 --> 34:34.000
It's a blog post.

34:34.000 --> 34:36.000
I don't know how quickly it is going.

34:36.000 --> 34:37.000
Oh, no blog post.

34:37.000 --> 34:39.000
So I guess there are some cases somewhere.

34:39.000 --> 34:42.000
So we have to wait for the cases to be refreshed.

34:42.000 --> 34:43.000
One more time.

34:43.000 --> 34:46.000
It's a risk of the demo effect.

34:46.000 --> 34:47.000
Anyway, thanks for your time.

34:47.000 --> 34:49.000
Don't hesitate if you have any questions.

34:49.000 --> 34:51.000
It's very easy to contribute.

34:51.000 --> 34:54.000
There are many people who are helping.

34:54.000 --> 34:56.000
We are using a simple PR model.

34:56.000 --> 34:57.000
We have plenty of tests.

34:57.000 --> 34:59.000
Don't be afraid to make mistakes.

35:00.000 --> 35:01.000
Thank you.

35:07.000 --> 35:09.000
Many thanks for the inspiring talk.

35:09.000 --> 35:10.000
Perfect.

35:10.000 --> 35:11.000
Great talk.

35:11.000 --> 35:12.000
Thank you.

35:12.000 --> 35:13.000
Great pleasure.

35:13.000 --> 35:15.000
Question to the audience.

35:15.000 --> 35:21.000
If you meet to leave early, please leave to those for doors.

35:21.000 --> 35:28.000
Not these ones because we'd like to have the Q&A to be understandable.

35:28.000 --> 35:31.000
Who's the first who's got any questions?

35:31.000 --> 35:32.000
Okay.

35:32.000 --> 35:33.000
Over there.

35:33.000 --> 35:36.000
I'm coming.

35:49.000 --> 35:55.000
One of the things that Gnucho co-utives has.

35:55.000 --> 36:00.000
Do you hear me, Sylvestre?

36:00.000 --> 36:01.000
Really?

36:01.000 --> 36:02.000
Okay.

36:02.000 --> 36:09.000
One of the things that you have with Gnucho co-utives is extreme

36:09.000 --> 36:10.000
Portability.

36:10.000 --> 36:13.000
It works on many, many platforms.

36:13.000 --> 36:19.000
As far as I understand, you leverage the REST C portability to be able to use

36:19.000 --> 36:21.000
REST co-utives everywhere.

36:21.000 --> 36:24.000
Are you tracking other REST competitors?

36:24.000 --> 36:27.000
As well as to extend your coverage?

36:27.000 --> 36:30.000
We will when they are ready for now.

36:30.000 --> 36:33.000
So Nikola is asking.

36:33.000 --> 36:35.000
Can you hear me?

36:35.000 --> 36:36.000
Yeah.

36:36.000 --> 36:39.000
Nikola is asking the question about keeping track of the other

36:39.000 --> 36:40.000
Compiler for us.

36:40.000 --> 36:43.000
As far as I know, they are not there yet.

36:43.000 --> 36:44.000
But we will.

36:44.000 --> 36:48.000
Like it's just adding a few lines in a thermal file.

36:48.000 --> 36:49.000
So yeah.

36:49.000 --> 36:52.000
We will test everywhere that we can.

37:01.000 --> 37:04.000
Any plans to do a shell like zush?

37:04.000 --> 37:05.000
Sorry?

37:05.000 --> 37:07.000
Any plans to do a shell?

37:07.000 --> 37:08.000
No.

37:08.000 --> 37:11.000
I want to replace the existing in C, not to do a shell.

37:11.000 --> 37:13.000
There are also people doing.

37:13.000 --> 37:17.000
There is no standard with a shell,

37:17.000 --> 37:20.000
except using what has been done and what has been done.

37:20.000 --> 37:23.000
The folks with a liquidity have been doing amazing work.

37:23.000 --> 37:25.000
So there is no need in this place.

37:25.000 --> 37:45.000
Hi.

37:45.000 --> 37:48.000
So first of all, thanks for the talk.

37:48.000 --> 37:57.000
And what is your stance on the other utils that have that are a part of the rewrite

37:57.000 --> 38:02.000
it in rust, kind of trend?

38:02.000 --> 38:10.000
What is your stance on the other utils that have that are a part of the rewrite it in rust,

38:10.000 --> 38:19.000
kind of trend, like ripgrap, dust, bat, and all of that already exist.

38:19.000 --> 38:22.000
And are kind of alternatives to those?

38:22.000 --> 38:23.000
Yeah.

38:23.000 --> 38:25.000
I think they are providing a lot of value.

38:25.000 --> 38:29.000
Like ripgrap or FD fine and so on.

38:29.000 --> 38:33.000
However, the issue is that they are not built in the placement.

38:33.000 --> 38:38.000
So it's not very easy to adjust your practice.

38:38.000 --> 38:40.000
So it's a very good project.

38:40.000 --> 38:45.000
And the advantage that they have over us is that they don't have to maintain the argument,

38:45.000 --> 38:48.000
legacy, and all the issues and the ordering.

38:48.000 --> 38:50.000
Those are the self-imaging project.

38:50.000 --> 38:53.000
I use the readgrap everyday.

38:53.000 --> 38:54.000
Thank you.

38:58.000 --> 38:59.000
Okay.

38:59.000 --> 39:02.000
Other questions?

39:03.000 --> 39:07.000
I can.

39:07.000 --> 39:12.000
Oh, over there.

39:21.000 --> 39:24.000
Yeah, thanks for the interesting talk.

39:24.000 --> 39:28.000
And you also mentioned that you have this already.

39:28.000 --> 39:33.000
The rust core utils in package for most Linux distributions.

39:33.000 --> 39:36.000
And I have myself worked for Debian and there.

39:36.000 --> 39:44.000
It's really, really hard to package rust packages because of these strict dependency

39:44.000 --> 39:45.000
management.

39:45.000 --> 39:52.000
So you have to often patch each and every dependency to have it with a less strict version

39:52.000 --> 39:53.000
specification.

39:53.000 --> 39:58.000
What is your experience there and how do you want to work around that in the future,

39:58.000 --> 40:03.000
given that probably only more and more crates are added to the library?

40:03.000 --> 40:08.000
So if I understood correctly, you are asking about packaging when it is hard to package rust

40:08.000 --> 40:09.000
software.

40:09.000 --> 40:10.000
Yeah, it's a dependency.

40:10.000 --> 40:12.000
Yeah, it's a big deal.

40:12.000 --> 40:15.000
It's because of the ecosystem in the rust.

40:15.000 --> 40:19.000
It's quite hard to package, but I think it's going to stabilize.

40:19.000 --> 40:23.000
And that more and more some crates have been doing a lot for years ago.

40:23.000 --> 40:25.000
And now they are starting to be stable.

40:25.000 --> 40:30.000
And upstream is making is more careful about the API and API changes.

40:30.000 --> 40:35.000
So I think we are going to grind the right direction at the next time.

40:35.000 --> 40:46.000
Yeah, I agree that it is a pain to implement in rust packages at that time.

40:46.000 --> 40:48.000
Thank you.

40:48.000 --> 40:50.000
Apparently no more questions.

40:50.000 --> 40:57.000
So many thanks once more and please a applause.

40:57.000 --> 40:58.000
Thank you.

