WEBVTT

00:00.000 --> 00:21.000
Okay, so thank you very much, some of the give me some gift with floppy's, because we are going to be releasing the low in floppy's this time.

00:22.000 --> 00:37.000
Okay, so first I'm Rodrigo, I will be talking about how I tried to resurrect this web browser and it just happens to be the 25 year anniversary since the beginning.

00:38.000 --> 00:49.000
I read about me and my computer scientists at the Barcelona Supercomputer Center, basically I do HPC.

00:49.000 --> 01:01.000
I was not involved with the release, sorry with the development of Pilo, I was using it in another real computer.

01:02.000 --> 01:09.000
And I mostly program and see, so I tried to avoid C++, but Pilo has some parts in C++.

01:09.000 --> 01:16.000
And I think that simplicity is beautiful and we should try to make things simpler.

01:17.000 --> 01:25.000
So if you never used the load, you don't know what this is a very lightweight graphical web browser.

01:25.000 --> 01:33.000
And it has its own rendering engine, it's not a Chrome or Firefox wrap.

01:33.000 --> 01:40.000
And we only support a subset of HTML and CSS and we don't support JavaScript at all.

01:40.000 --> 01:43.000
And probably we will never build.

01:43.000 --> 01:47.000
And yeah, this is probably this for a since 19th and time.

01:47.000 --> 01:51.000
And a whole presentation will be done in Dilo itself.

01:51.000 --> 01:56.000
And we can talk later about how this happened without JavaScript.

01:56.000 --> 02:02.000
So first, the objective of the project is to lower the access of the barrier to entry of the web.

02:02.000 --> 02:09.000
Because you know, not everyone can have a nice computer to load all JavaScript.

02:09.000 --> 02:17.000
So I think it is nice to make people regardless of your economical budget, be able to access the web.

02:17.000 --> 02:21.000
And we also try to really protect user privacy. So we don't have cookies.

02:21.000 --> 02:24.000
And I will buy the fault. There's JavaScript, there's not telemetry.

02:24.000 --> 02:27.000
And there's no company's funding project either.

02:27.000 --> 02:34.000
And also the code of the Dilo web browser tries to be very efficient.

02:34.000 --> 02:39.000
And try to also be kind of easy to use and see.

02:39.000 --> 02:42.000
Okay, so what happened with the project?

02:42.000 --> 02:45.000
You can see here the number of commits over time.

02:45.000 --> 02:49.000
And we still have some missing data that could not recover.

02:49.000 --> 03:02.000
So in 2016, the Sebastian that was the main rendering engine developer passed away around this line here.

03:02.000 --> 03:09.000
And you can see that after that time, Jorge was which was the lead developer since the beginning of the project.

03:09.000 --> 03:12.000
It stopped being active.

03:12.000 --> 03:15.000
And so the project kind of halted there.

03:15.000 --> 03:18.000
And a bit later, we lost the DNS.

03:18.000 --> 03:21.000
And with that, we lost the email system.

03:21.000 --> 03:25.000
The website, the repo, the mailing list, the book trucker.

03:25.000 --> 03:27.000
So everything went.

03:27.000 --> 03:38.000
And the only thing that was released was the latest released 3.0.5, which since very long time,

03:38.000 --> 03:42.000
the only release available in old repos.

03:42.000 --> 03:53.000
So in 2024, I tried to resurrect the project with a month.

03:53.000 --> 03:59.000
I have a bit of a problem here.

04:00.000 --> 04:04.000
So in 2024, I tried to resurrect it.

04:04.000 --> 04:11.000
And I tried to get all the copies of the source code and everything like whooped.

04:11.000 --> 04:22.000
I set up GitHub repo and a mail list and also some donations and some channel in ELC.

04:22.000 --> 04:34.000
And after a bit of work, I did some tests to pass the automatically, because Dilo was not never really tested properly.

04:34.000 --> 04:37.000
It was everything was done manually.

04:37.000 --> 04:40.000
So I added a CI pipeline in GitHub.

04:40.000 --> 04:43.000
Now we are running the test every time.

04:43.000 --> 04:46.000
And we also added support for open.

04:46.000 --> 04:49.000
So out along with embed TLS.

04:49.000 --> 04:55.000
And I released the 3.1.0 after 9 years, almost.

04:55.000 --> 04:59.000
And hopefully, it was quickly, I love it.

04:59.000 --> 05:02.000
Thank you.

05:02.000 --> 05:09.000
And about two weeks ago, I also did another release 3.0.2, which added some support for

05:10.000 --> 05:14.000
especially math in Wikipedia and WebP.

05:14.000 --> 05:20.000
And also some other niceties we can now open.

05:20.000 --> 05:27.000
Or else with custom commands or make a text bigger or smaller with the soon.

05:27.000 --> 05:30.000
So that let's stop talking.

05:30.000 --> 05:34.000
Let's see real time demo if everything works.

05:34.000 --> 05:38.000
So as I told you, I was using this computer.

05:38.000 --> 05:41.000
I don't know if you can see in the camera.

05:41.000 --> 05:44.000
But it's a 15 year old CPU.

05:44.000 --> 05:47.000
Atom, very basic.

05:47.000 --> 05:50.000
It only has one core and two hardware threads.

05:50.000 --> 05:53.000
The cache is truly terrible.

05:53.000 --> 05:57.000
Ram is like two gigabytes and four gigabytes of swap.

05:57.000 --> 06:00.000
And I bought it second half for 30 years.

06:00.000 --> 06:07.000
So first thing that I wanted to show you is Dilo cannot play a view or a video.

06:07.000 --> 06:11.000
So what we do is we offer a lot to any other tool that you like.

06:11.000 --> 06:14.000
For example, here's a GitHub video.

06:14.000 --> 06:18.000
And if you try to open it, you'll see, this is what you see.

06:18.000 --> 06:20.000
We thought JavaScript.

06:20.000 --> 06:26.000
But that's fine because we can just click on the link and say open.

06:26.000 --> 06:31.000
And I configure this MPB so we can just do this.

06:31.000 --> 06:35.000
And now wait for a very long time.

06:36.000 --> 06:41.000
So in the meanwhile, I will show you to other links.

06:41.000 --> 06:46.000
For example, this is a jail link that you can see here.

06:46.000 --> 06:49.000
And it just opens coordinates or something.

06:49.000 --> 06:51.000
And you can upload another program.

06:51.000 --> 06:55.000
For example, this one shows you immediately the map of first them.

06:55.000 --> 07:00.000
And you don't have to open JavaScript or you will map sort of whatever.

07:00.000 --> 07:03.000
Okay, so this is the video.

07:03.000 --> 07:07.000
And this is Jorge, the lead developer of Dilo.

07:07.000 --> 07:11.000
Back in 2005, doing another presentation. He also can't pause them.

07:11.000 --> 07:12.000
So okay, nice.

07:12.000 --> 07:16.000
As you can see, they can see the video anyway.

07:16.000 --> 07:21.000
Okay, so another thing that I want to talk is Dilo can be extended with Glowins.

07:21.000 --> 07:24.000
And this means that you can do anything that you like basically.

07:24.000 --> 07:28.000
As long as you can program it in any language and expose it like a pipe.

07:28.000 --> 07:31.000
It's similar to CGI.

07:31.000 --> 07:36.000
One of the things that we do is we support all the protocols like Gemini or Gofer.

07:36.000 --> 07:41.000
For example, here's a page, Gemini, and we just open.

07:41.000 --> 07:49.000
And you see that the protocol is Gemini, but it's render because it gets translated into something like HTML.

07:49.000 --> 07:53.000
And it's just like a Gemini page.

07:53.000 --> 07:59.000
And this is another example of very old Gofer servers.

07:59.000 --> 08:04.000
If you know of this, you can read everything in Gofer as well.

08:04.000 --> 08:10.000
And another thing that I wanted to show you is, for example, Dilo can be nice to read the documentation.

08:10.000 --> 08:15.000
For example, the Dilo Manual page.

08:15.000 --> 08:17.000
As in Man.

08:17.000 --> 08:22.000
You can just type Man and the website or the page.

08:22.000 --> 08:26.000
And you can read it like a normal website.

08:26.000 --> 08:30.000
And this is fine if you want to read like a very long.

08:30.000 --> 08:36.000
For example, at the daughter of Git, which is being rendered from the disk.

08:36.000 --> 08:41.000
And I want to also show you the file,

08:41.000 --> 08:47.000
that opens a file in the local file system, which happens to be the whole source code of the Manhold.

08:48.000 --> 08:56.000
Which is just like this 50 lines of shell script, which is very simple, I think.

08:56.000 --> 09:02.000
And I wanted to show you as well this page, because it's a garden article.

09:02.000 --> 09:09.000
And you will see that we can kind of load it, but it has a lot of garbage in top,

09:09.000 --> 09:13.000
but I don't know why they put all of these things.

09:13.000 --> 09:16.000
And here you can get the text finally.

09:16.000 --> 09:24.000
So, instead of reading this terrible page, you can just upload it to this other plugin.

09:24.000 --> 09:31.000
That uses the reader view tool, which is a program that extracts the text.

09:31.000 --> 09:36.000
And you can read everything here.

09:36.000 --> 09:42.000
Okay, so here are other examples of both the websites that you probably know.

09:42.000 --> 09:46.000
Most of them work, especially Google now, besides it, not you know.

09:46.000 --> 09:49.000
It requires JavaScript, okay.

09:49.000 --> 09:54.000
And here's another list of websites that they actually work.

09:54.000 --> 10:01.000
And I will open some of them, so you can see that another web is possible.

10:01.000 --> 10:07.000
And I wanted to show you as well this other search engines that,

10:07.000 --> 10:15.000
you know, render mostly documents that mostly pages that are good to be opened with below.

10:15.000 --> 10:28.000
And you can see that, for example, this is a very nice week-y style page with several types of content that can be rendered perfectly well.

10:28.000 --> 10:39.000
And this is like this kind of search engine, which is only a simple website.

10:39.000 --> 10:45.000
Okay, so let's see if I have a bit of time to talk about performance and complexity.

10:45.000 --> 10:51.000
This is a problem over time that is getting worse at, we have two types of devices.

10:51.000 --> 10:57.000
Expensive devices are getting better performance, but ship devices are not so well.

10:57.000 --> 11:02.000
And there is this gap opening, so we have increasing problem.

11:02.000 --> 11:12.000
And I measure this little browser, opening a page with the browser opening, which is this column here,

11:12.000 --> 11:14.000
and this opening a new tab.

11:14.000 --> 11:18.000
And the time that it takes is CPU time.

11:18.000 --> 11:23.000
So you can see that if this computer here tries to open a tab,

11:23.000 --> 11:27.000
or a page in Firefox, it takes exactly seconds.

11:27.000 --> 11:28.000
It's a stereo.

11:28.000 --> 11:34.000
And you can see that we feel like only one second of a fraction of a second.

11:34.000 --> 11:42.000
And also the complexity of the codebase, the whole debug source code keeps in a single floppy,

11:42.000 --> 11:51.000
which is only 701K lines, compared with 5% from which are millions of lines and the target size is gigantic.

11:52.000 --> 11:55.000
Apart from being easy to use in all computers,

11:55.000 --> 12:01.000
they look and also be edited and hack it in all computers.

12:01.000 --> 12:05.000
So if you have this computer, you can build it in less than a minute,

12:05.000 --> 12:11.000
and you only require 130 megabytes of RAM.

12:11.000 --> 12:13.000
Well, that's about it.

12:13.000 --> 12:20.000
Just want to say that please remember that not everyone has good computer or fast network,

12:20.000 --> 12:24.000
but I think everyone should be able to access the web.

12:24.000 --> 12:30.000
Please allow people to choose if they want to enable JavaScript or just follow up to which they know.

12:30.000 --> 12:32.000
Thank you very much.

12:32.000 --> 12:42.000
Thank you very much.

12:42.000 --> 12:43.000
Thank you.

12:43.000 --> 12:44.000
Yeah.

12:44.000 --> 12:45.000
Hello.

12:45.000 --> 12:47.000
Hello.

12:47.000 --> 12:48.000
Hello.

12:48.000 --> 12:51.000
What are the future plans for Dilo?

12:51.000 --> 12:57.000
I will try to make some time to maintain, but I didn't say,

12:57.000 --> 13:00.000
but I'm doing this in my free time.

13:00.000 --> 13:04.000
I have only limited amount of time to address it,

13:04.000 --> 13:07.000
but it will be really nice if we can get more people involved,

13:07.000 --> 13:10.000
especially developers familiar with C and C++.

13:10.000 --> 13:13.000
So I cannot provide the one on people.

13:13.000 --> 13:19.000
How do any web standards that you want to make?

13:19.000 --> 13:20.000
Yes.

13:20.000 --> 13:23.000
Any web standards I want to implement,

13:23.000 --> 13:29.000
I will try to improve the support for HTML and CSS first.

13:29.000 --> 13:32.000
One question?

13:32.000 --> 13:35.000
Yeah, in the back.

13:35.000 --> 13:39.000
I understand that JavaScript will not be implemented in the reason.

13:39.000 --> 13:42.000
But still, this is both C and CSS.

13:42.000 --> 13:44.000
It is limited to a lot of time.

13:44.000 --> 13:52.000
So if the question is, if I'm going to try to improve the CSS support,

13:52.000 --> 13:54.000
or keep it simple, yes.

13:54.000 --> 13:58.000
I will try to support those features that prevent us from

13:58.000 --> 14:01.000
running websites, basically.

14:01.000 --> 14:02.000
Yes?

14:02.000 --> 14:05.000
Do you mention the reason I want to do C++ code?

14:05.000 --> 14:08.000
Do you have a code that's happy to move that whole time?

14:08.000 --> 14:11.000
Okay, so the question is, if we can remove C++ code,

14:11.000 --> 14:13.000
and now, because the whole rendering, anything else,

14:13.000 --> 14:15.000
we have to remove C++ and this MS,

14:15.000 --> 14:21.000
and plus FLDK is treating C++, so it's really hard to move.

14:21.000 --> 14:24.000
Next, questions?

14:24.000 --> 14:25.000
Yep.

14:26.000 --> 14:28.000
Sorry?

14:30.000 --> 14:33.000
I cannot hear.

14:33.000 --> 14:35.000
In BDK?

14:35.000 --> 14:36.000
In BDK?

14:36.000 --> 14:40.000
In BDK?

14:40.000 --> 14:41.000
In BDK?

14:41.000 --> 14:46.000
No, they have to open them in some kind of program.

14:46.000 --> 14:51.000
Yes?

14:51.000 --> 14:53.000
Yes.

14:53.000 --> 14:56.000
Yes?

14:56.000 --> 14:57.000
Yes?

14:57.000 --> 14:58.000
Yes?

14:58.000 --> 14:59.000
Yes.

14:59.000 --> 15:02.000
Does Kilo support rendering text from likes to left,

15:02.000 --> 15:05.000
or what's their support as many code as that?

15:05.000 --> 15:07.000
Very poorly.

15:07.000 --> 15:12.000
Question is, if Kilo supports text from right to left,

15:12.000 --> 15:15.000
not really, but it will improve

15:15.000 --> 15:18.000
on the next versions of FLDK?

15:19.000 --> 15:21.000
Okay.

15:21.000 --> 15:23.000
So, if anyone wants to come back,

15:23.000 --> 15:26.000
I have some floppy disks with Lilo.

15:26.000 --> 15:27.000
Please.

15:27.000 --> 15:28.000
Thanks.

15:33.000 --> 15:34.000
Okay.

15:34.000 --> 15:35.000
I'll try this one.

15:35.000 --> 15:36.000
Hello.

15:36.000 --> 15:37.000
Hello.

15:37.000 --> 15:38.000
Yes?

15:38.000 --> 15:39.000
Yes.

15:39.000 --> 15:40.000
Oh, yes.

15:40.000 --> 15:42.000
Really nice presentation.

15:43.000 --> 15:46.000
Okay.

15:46.000 --> 15:48.000
That would be a spirit.

15:48.000 --> 15:50.000
That would be a spirit on this one.

