WEBVTT
00:00:07.299 --> 00:00:07.799
I think it's still going up.
00:00:11.200 --> 00:00:11.700
All right. I think we should be live now.
00:00:12.900 --> 00:00:13.139
So hi, everyone. And hi,
00:00:13.780 --> 00:00:14.280
Michael. How are you doing?
00:00:18.080 --> 00:00:18.340
Hi. Hello, EmacsConf. I'm pretty excited to
00:00:22.420 --> 00:00:22.800
be live at this year's EmacsConf and getting
00:00:25.640 --> 00:00:25.960
a chance to talk about my favorite program or
00:00:29.140 --> 00:00:29.439
our favorite program. Well,
00:00:30.439 --> 00:00:30.820
yeah, I'm doing pretty fine,
00:00:32.680 --> 00:00:32.900
and I'm excited. Well,
00:00:35.020 --> 00:00:35.520
so are we. So without further ado,
00:00:37.640 --> 00:00:37.760
the floor is yours. Present for as much as
00:00:39.200 --> 00:00:39.700
you want. We've already discussed the timings
00:00:41.380 --> 00:00:41.880
so I'll let you on your own.
00:00:44.059 --> 00:00:44.380
Okay so let's get started.
00:00:46.560 --> 00:00:46.760
The topic of the talk is the browser in a
00:00:49.920 --> 00:00:50.420
buffer or Poltus, a periodic web weaver.
00:00:53.540 --> 00:00:53.700
Poltus is a kind of spider and the name of
00:00:55.680 --> 00:00:56.180
the project I'm going to show you.
00:01:01.400 --> 00:01:01.900
But first let's set the stage for this
00:01:04.940 --> 00:01:05.440
project. Here we have Emacs I'm presenting
00:01:07.240 --> 00:01:07.740
from and here we have Firefox.
00:01:09.600 --> 00:01:09.960
I'm inside and there's a video.
00:01:12.720 --> 00:01:13.220
Okay, let's do this. Don't do the inception.
00:01:14.900 --> 00:01:15.400
Put it over there somewhere.
00:01:17.940 --> 00:01:18.440
Okay. So here's Firefox.
00:01:20.760 --> 00:01:21.260
It's not, it's, It's in a buffer,
00:01:23.560 --> 00:01:24.060
but it's pretty disconnected from Emacs.
00:01:27.700 --> 00:01:28.200
It's in an XWM buffer.
00:01:30.880 --> 00:01:31.320
So you can use it from inside Emacs,
00:01:35.320 --> 00:01:35.440
but they don't talk. Emacs doesn't talk to
00:01:36.860 --> 00:01:37.120
the browser and the browser doesn't talk
00:01:40.320 --> 00:01:40.820
back. And I'm going to show you something
00:01:42.720 --> 00:01:43.220
that changes this. But first,
00:01:45.100 --> 00:01:45.280
I think for many of you,
00:01:47.080 --> 00:01:47.200
it's the same, like there's Emacs and the
00:01:49.120 --> 00:01:49.620
other important program is the browser.
00:01:55.340 --> 00:01:55.840
So how do you do something?
00:01:57.880 --> 00:01:58.180
Let's continue with the stage.
00:01:59.640 --> 00:02:00.140
We have some research session.
00:02:03.400 --> 00:02:03.680
We have this EmacsConf we found this year and
00:02:04.960 --> 00:02:05.460
there are a lot of talks.
00:02:07.500 --> 00:02:07.700
This is the 1 we're watching right now and
00:02:09.520 --> 00:02:10.020
let's have a look. What else is interesting?
00:02:11.980 --> 00:02:12.480
Ah, this was yesterday.
00:02:15.060 --> 00:02:15.560
So have a look at today.
00:02:17.980 --> 00:02:18.480
There is a world of possibilities.
00:02:20.320 --> 00:02:20.600
That sounds great. Oh,
00:02:23.340 --> 00:02:23.840
that is right now. So greetings to you.
00:02:27.800 --> 00:02:28.080
Yes, the browser and the buffer and other
00:02:30.200 --> 00:02:30.700
stuff. So now we have a lot of talks,
00:02:35.900 --> 00:02:36.080
tabs open and we're going to go back to
00:02:40.800 --> 00:02:41.300
Emacs. I can't switch buffers in a dedicated
00:02:43.580 --> 00:02:43.940
window. So apparently I can't do that.
00:02:50.500 --> 00:02:50.600
Here's Emacs again. Now I'm in Emacs and I
00:02:51.900 --> 00:02:52.400
want to have something from my browser,
00:02:56.080 --> 00:02:56.200
maybe like the open tabs or I want to
00:02:59.180 --> 00:02:59.380
annotate them. I'm in org mode right now,
00:03:02.400 --> 00:03:02.900
so I would like to do it from Org Mode maybe.
00:03:05.380 --> 00:03:05.740
How do I get the tab? Okay,
00:03:08.940 --> 00:03:09.440
let's tap back. I want to annotate this page.
00:03:11.860 --> 00:03:12.360
Let's get the link, put it here.
00:03:13.660 --> 00:03:13.940
Oh, that wasn't a link.
00:03:15.420 --> 00:03:15.920
That was something totally different.
00:03:19.540 --> 00:03:19.960
So let's use the mouse.
00:03:22.540 --> 00:03:23.040
There's the link. Now we could put a title
00:03:30.060 --> 00:03:30.560
and so on. What I'm showing you here is it is
00:03:34.160 --> 00:03:34.640
pretty, no it's not too difficult,
00:03:36.680 --> 00:03:36.820
but it could be easier interacting with the
00:03:40.380 --> 00:03:40.580
browser. And there are helpers to do
00:03:41.980 --> 00:03:42.480
something like this. I had,
00:03:46.440 --> 00:03:46.640
for example, I used for a long time this
00:03:50.400 --> 00:03:50.660
extension. It's called export tabs URLs and
00:03:53.000 --> 00:03:53.400
you got a list of your tabs and you can just
00:03:54.280 --> 00:03:54.780
copy them to clipboard.
00:03:55.900 --> 00:03:56.280
So now we have the tabs,
00:03:58.620 --> 00:03:58.940
copy them to clipboard and there they are.
00:04:00.640 --> 00:04:01.140
So now we can do something with the tabs,
00:04:03.240 --> 00:04:03.740
rearrange them, take notes and so on.
00:04:14.320 --> 00:04:14.640
Okay. And there's even other stuff for while
00:04:17.519 --> 00:04:18.019
researching for this talk on this extension,
00:04:21.060 --> 00:04:21.260
I found this tab session manager where you
00:04:23.080 --> 00:04:23.300
can have a look at your tabs it does
00:04:26.540 --> 00:04:27.040
snapshots it exports it in Brazilian
00:04:29.820 --> 00:04:30.320
different formats and yeah that's even more
00:04:35.600 --> 00:04:35.740
luxurious no better but it's still not an
00:04:41.380 --> 00:04:41.880
emacs okay so how could we get it into Emacs?
00:04:44.040 --> 00:04:44.540
Maybe this thing called Pultus could help.
00:04:49.000 --> 00:04:49.180
The theme is from a browser extension and a
00:04:52.440 --> 00:04:52.760
manual workflow. As I showed you right now,
00:04:54.400 --> 00:04:54.860
we want to go to an interactive Emacs
00:04:57.620 --> 00:04:57.800
interface. How to deal with the browser and
00:04:59.280 --> 00:04:59.780
its tabs from inside Emacs.
00:05:05.860 --> 00:05:06.360
And we're gonna do just that right now.
00:05:08.880 --> 00:05:09.340
So we had this research session over there.
00:05:10.320 --> 00:05:10.820
So now it's demo time.
00:05:12.620 --> 00:05:13.120
We had this research session.
00:05:14.620 --> 00:05:15.120
Let's open it again. Here is it.
00:05:18.340 --> 00:05:18.840
And now we want to do it from inside Emacs.
00:05:22.940 --> 00:05:23.300
We say please Emacs insert this or please
00:05:28.000 --> 00:05:28.200
Poltis insert this. And now we have the
00:05:30.020 --> 00:05:30.040
browser session inside Emacs.
00:05:35.280 --> 00:05:35.760
It's a little bit roomy so you can see it
00:05:40.200 --> 00:05:40.380
over the internet. And we learned that
00:05:44.120 --> 00:05:44.280
BigBooplotten doesn't set a title or has a
00:05:46.160 --> 00:05:46.360
new line in it. I'm not actually sure what
00:05:49.740 --> 00:05:50.120
happened here. So let's have this browser
00:05:51.940 --> 00:05:52.440
session and what can we do with it?
00:05:57.860 --> 00:05:58.320
For once you can just copy stuff here,
00:06:01.560 --> 00:06:01.720
you can take notes and it updates with the
00:06:03.900 --> 00:06:04.040
browser. If you change something in the
00:06:06.020 --> 00:06:06.420
browser, maybe switch these tabs,
00:06:07.720 --> 00:06:08.220
they switch over there.
00:06:12.340 --> 00:06:12.560
Or you say, okay, I don't want to have
00:06:17.340 --> 00:06:17.500
HyperDrive in here. And I don't need the
00:06:19.440 --> 00:06:19.540
instructions for speakers because I'm not a
00:06:22.500 --> 00:06:22.800
speaker so I have a live sync to Emacs from
00:06:29.440 --> 00:06:29.640
the browser in this Org Mode interface and we
00:06:31.180 --> 00:06:31.420
can do more stuff with it,
00:06:37.640 --> 00:06:37.800
for example we could I already showed you how
00:06:41.880 --> 00:06:42.380
to rearrange stuff. We can open new tabs.
00:06:46.220 --> 00:06:46.720
We can have a look at let's say emacs-conf
00:06:53.480 --> 00:06:53.680
again and they're just updating and now it
00:06:57.040 --> 00:06:57.540
says a new tab, add another 1,
00:07:02.000 --> 00:07:02.500
okay. So I think you get the gist.
00:07:05.220 --> 00:07:05.720
Now let's take a note on this.
00:07:11.460 --> 00:07:11.960
This conference sounds interesting.
00:07:20.820 --> 00:07:21.140
Have a look. Maybe thumbs up.
00:07:23.420 --> 00:07:23.920
Okay I can do this. So now there's a link,
00:07:30.920 --> 00:07:31.420
not a link, a note. If I close it and reopen
00:07:33.900 --> 00:07:34.400
it, There's the note again.
00:07:39.000 --> 00:07:39.500
So we have persistent notes for browser tabs
00:07:42.040 --> 00:07:42.400
or not actually browser tabs,
00:07:46.240 --> 00:07:46.560
it's actually URLs. Use the browser tab.
00:07:49.600 --> 00:07:50.100
I'm gonna open another URL.
00:07:51.500 --> 00:07:52.000
Now it's not without a node.
00:07:54.480 --> 00:07:54.980
Going back, the node is back there.
00:08:01.260 --> 00:08:01.760
That's how far I can show you Politis because
00:08:05.720 --> 00:08:06.220
the interface isn't finished otherwise.
00:08:11.680 --> 00:08:12.100
But the backend is pretty cool and I'm gonna
00:08:13.180 --> 00:08:13.580
tell you more about that.
00:08:15.360 --> 00:08:15.860
The interface is right now just browser
00:08:18.640 --> 00:08:18.940
interaction 1 way from the browser into org
00:08:22.240 --> 00:08:22.740
mode, an org mode interface and it has nodes.
00:08:25.080 --> 00:08:25.580
But it's not too difficult to imagine,
00:08:30.420 --> 00:08:30.920
for example, adding tags or...
00:08:32.020 --> 00:08:32.500
I just remembered Or I just remembered
00:08:39.400 --> 00:08:39.900
something. Okay. So for example,
00:08:45.060 --> 00:08:45.220
adding texts or scheduling information or
00:08:47.360 --> 00:08:47.720
what else, all the stuff you do with org
00:08:51.920 --> 00:08:52.420
mode. Or go the other way around and sync
00:08:54.920 --> 00:08:55.320
from the org mode buffer to the browser.
00:09:01.440 --> 00:09:01.560
So I could delete this heading or rename it
00:09:03.280 --> 00:09:03.420
or stuff like that. So it's reflected in the
00:09:04.840 --> 00:09:05.000
browser. I'm not going to do it right now
00:09:05.640 --> 00:09:06.140
because it's not implemented.
00:09:10.240 --> 00:09:10.440
But just to give you an outlook of the
00:09:14.960 --> 00:09:15.200
possibilities. Good. So let's leave this
00:09:24.000 --> 00:09:24.500
browser session here. Browser session below.
00:09:35.280 --> 00:09:35.500
Okay. Change the outline structure or stuff
00:09:39.380 --> 00:09:39.880
like this. So get the browser back,
00:09:43.420 --> 00:09:43.740
debugging. Yep, this talks,
00:09:44.800 --> 00:09:45.060
I could change something here,
00:09:47.920 --> 00:09:48.420
go back to the talks page and still working.
00:09:56.920 --> 00:09:57.120
Now I showed you what it does and what can
00:10:01.560 --> 00:10:01.720
you use it for or What is it intended to be
00:10:02.660 --> 00:10:03.040
used for if it's finished,
00:10:04.640 --> 00:10:05.140
because it isn't finished as I said.
00:10:07.240 --> 00:10:07.740
Manage your open tabs.
00:10:12.340 --> 00:10:12.840
So for example my use case is I do something,
00:10:16.080 --> 00:10:16.580
have a big collection of tabs open And then I
00:10:22.800 --> 00:10:22.940
need RAM. This PC here has just 4 GB of it,
00:10:25.080 --> 00:10:25.580
so sometimes I need to close the browser too.
00:10:27.260 --> 00:10:27.760
I don't have to close the PC.
00:10:32.540 --> 00:10:32.740
And in this case I'd like to save the
00:10:37.240 --> 00:10:37.740
session. So far I just copied this clipboard
00:10:40.380 --> 00:10:40.880
thing I showed you earlier in an org mode and
00:10:44.640 --> 00:10:44.900
Captured it away and this should be the
00:10:48.120 --> 00:10:48.300
future for this workflow You just capture the
00:10:49.520 --> 00:10:49.700
browser session rearrange it.
00:10:51.760 --> 00:10:51.860
However, you like it and then you make make
00:10:54.160 --> 00:10:54.520
it offline. So this is the thing I didn't
00:10:57.840 --> 00:10:58.340
show you. You can, if you were looking here
00:11:04.020 --> 00:11:04.160
you can you see that this heading is open in
00:11:08.560 --> 00:11:09.060
tab 37, window 1. So if you would remove
00:11:14.120 --> 00:11:14.480
this, it's offline. And you keep just the org
00:11:16.300 --> 00:11:16.700
structure. It's a simple text file then.
00:11:25.940 --> 00:11:26.100
And the plan future feature is to go back to
00:11:27.540 --> 00:11:28.040
the online state. So you have a session,
00:11:28.900 --> 00:11:29.400
maybe a browser window,
00:11:30.920 --> 00:11:31.420
you save it to Org Mode,
00:11:34.600 --> 00:11:34.960
close the window and some days later or weeks
00:11:38.080 --> 00:11:38.580
later you return to this research session,
00:11:40.240 --> 00:11:40.740
maybe something about Emacs or whatever
00:11:43.740 --> 00:11:44.180
spikes your interest, and you can just reopen
00:11:46.500 --> 00:11:46.920
it from the browser, from Org Mode.
00:11:48.820 --> 00:11:49.000
So Org Mode becomes the controller of the
00:11:50.320 --> 00:11:50.820
browser. And it's not,
00:11:52.440 --> 00:11:52.680
it doesn't have to be Org Mode,
00:11:53.860 --> 00:11:54.360
but for the demo purpose,
00:11:58.260 --> 00:11:58.760
Org Mode was the most easy interface.
00:12:02.540 --> 00:12:02.800
That easy. I don't know if you're doing more
00:12:05.600 --> 00:12:05.860
complex interactive stuff in Org Mode,
00:12:08.640 --> 00:12:09.140
but there's some tricky edge cases.
00:12:12.560 --> 00:12:12.920
I just finished this demo half an hour ago,
00:12:15.360 --> 00:12:15.520
maybe an hour ago, and I'm really lucky that
00:12:18.580 --> 00:12:19.080
it worked in the end. Org mode,
00:12:23.000 --> 00:12:23.400
pretty great. So maybe you could do another
00:12:25.200 --> 00:12:25.700
interface, does not matter.
00:12:29.760 --> 00:12:30.260
Easy access to more info from inside Emacs.
00:12:32.360 --> 00:12:32.580
Yeah, Of course, you can imagine like we have
00:12:34.700 --> 00:12:35.200
just the title URL here,
00:12:39.160 --> 00:12:39.360
but you could even get at the text of the
00:12:41.120 --> 00:12:41.280
buffer. I'd show you in the,
00:12:42.340 --> 00:12:42.840
in the, how is it done section,
00:12:44.540 --> 00:12:44.960
manage and research session,
00:12:48.460 --> 00:12:48.620
tab groups. I already showed you this and
00:12:49.240 --> 00:12:49.740
browse all your links.
00:12:54.780 --> 00:12:54.960
I also showed you. So let's go over to how is
00:12:57.340 --> 00:12:57.840
it done. How is it done then?
00:13:08.760 --> 00:13:08.940
It should be quite apparent that somehow the
00:13:11.660 --> 00:13:11.820
browser has to sync its state to Emacs and
00:13:13.680 --> 00:13:14.180
Emacs has to know about the browser and
00:13:15.660 --> 00:13:16.120
there's like a bidirectional state
00:13:17.560 --> 00:13:18.060
synchronization going on here.
00:13:21.480 --> 00:13:21.980
And there's a browser side and an Emacs side.
00:13:28.080 --> 00:13:28.580
The browser side is a add-on,
00:13:31.080 --> 00:13:31.580
a web extension add-on.
00:13:38.940 --> 00:13:39.380
I first tried to use WebDriver by DIY.
00:13:40.760 --> 00:13:41.040
I don't know if you know it,
00:13:43.440 --> 00:13:43.780
you open a web socket and then you can talk
00:13:47.460 --> 00:13:47.860
to the browser, but It was so frustrating to
00:13:50.440 --> 00:13:50.940
actually get it to do what I wanted to do
00:13:54.000 --> 00:13:54.280
that I changed to the web extension and this
00:13:55.580 --> 00:13:56.080
wasn't that much better,
00:13:58.520 --> 00:13:58.840
but I finally had all the features I needed
00:14:02.660 --> 00:14:02.780
because WebDriver is like all in flux and you
00:14:04.200 --> 00:14:04.540
have to look at the Firefox bug tracker.
00:14:05.860 --> 00:14:06.360
Do they have implemented this already?
00:14:09.900 --> 00:14:10.400
And no, most often they don't.
00:14:13.580 --> 00:14:13.940
So now it's a web extension add-on and it
00:14:16.280 --> 00:14:16.480
just tells Emacs little facts about the
00:14:20.060 --> 00:14:20.560
browser. And for you to make,
00:14:23.500 --> 00:14:23.720
to, that this facts make more sense for you,
00:14:27.180 --> 00:14:27.680
I think I have to explain how the Emacs side
00:14:31.560 --> 00:14:32.060
of this works. So the Emacs side,
00:14:37.160 --> 00:14:37.460
at first I thought I make it quite simple and
00:14:38.800 --> 00:14:39.300
then I over engineered it.
00:14:42.040 --> 00:14:42.540
And now it's great, but also not finished.
00:14:44.540 --> 00:14:45.040
So the Emacs site is a database.
00:14:52.580 --> 00:14:53.080
It's a triple store or RDF database.
00:14:57.800 --> 00:14:58.300
It stores all information in triples.
00:14:58.980 --> 00:14:59.480
So you have a subject,
00:15:04.280 --> 00:15:04.780
subject, predicate, and an object.
00:15:10.440 --> 00:15:10.940
And you can query this database.
00:15:14.920 --> 00:15:15.060
For those of you who watched last year's talk
00:15:19.740 --> 00:15:20.240
of Andrew Hyatt about SQL in Emacs.
00:15:23.100 --> 00:15:23.300
He presented such a database if you want to
00:15:24.960 --> 00:15:25.380
have a closer look. And sorry,
00:15:26.520 --> 00:15:27.020
Andrew, I didn't use yours.
00:15:29.540 --> 00:15:29.860
I had to make my own. I'm not sure it's
00:15:31.320 --> 00:15:31.820
better, but it was fun.
00:15:36.220 --> 00:15:36.720
And it has some different design decisions.
00:15:41.040 --> 00:15:41.200
For those of you who don't know what's up
00:15:42.440 --> 00:15:42.940
with a database like this,
00:15:47.020 --> 00:15:47.360
maybe you know web apps like all this new Org
00:15:51.960 --> 00:15:52.460
Mode clones. How are they called?
00:15:56.480 --> 00:15:56.820
Obsidian, Roam, and so on and so on.
00:15:58.260 --> 00:15:58.760
All of these are possible because,
00:16:01.300 --> 00:16:01.640
I don't know if Obsidian too,
00:16:04.360 --> 00:16:04.540
but stuff like Roam is possible because they
00:16:07.760 --> 00:16:08.000
have a triple store in the browser and use
00:16:10.520 --> 00:16:11.020
this to power their knowledge base.
00:16:14.280 --> 00:16:14.540
And if you have had a look at Org Rome,
00:16:17.160 --> 00:16:17.400
you know it's uses a database too,
00:16:19.340 --> 00:16:19.640
because if this knowledge gets bigger,
00:16:21.360 --> 00:16:21.860
database is better to handle.
00:16:27.860 --> 00:16:28.360
And now here's a triplet store or a database
00:16:31.920 --> 00:16:32.420
to manage your browser session inside Emacs,
00:16:34.240 --> 00:16:34.740
but it's not limited to browser session.
00:16:37.440 --> 00:16:37.940
You could do nodes and stuff.
00:16:40.900 --> 00:16:41.120
I don't have a project for this,
00:16:52.620 --> 00:16:53.120
but you can look at this project from Andrew
00:16:56.380 --> 00:16:56.880
Hyatt. Has a pretty interesting notes
00:16:59.620 --> 00:17:00.120
project. So here is it in Emacs.
00:17:03.960 --> 00:17:04.460
There's the link. You can have a look.
00:17:09.560 --> 00:17:10.060
Okay. So now we have this database in Emacs.
00:17:12.319 --> 00:17:12.440
It's possible to do something like this in
00:17:15.800 --> 00:17:16.300
Emacs now because the database has Emacs
00:17:21.220 --> 00:17:21.700
SQLite integrated And the browser logs inside
00:17:22.900 --> 00:17:23.359
into this database via Emacs.
00:17:26.579 --> 00:17:26.839
It sends Emacs, it connects to Emacs via
00:17:32.380 --> 00:17:32.580
WebSocket. Emacs is a WebSocket server and
00:17:35.580 --> 00:17:35.800
then it sends little snippets like this
00:17:46.420 --> 00:17:46.920
window shows these tabs or this tab shows
00:17:51.060 --> 00:17:51.300
this URL And Emacs has triggers in this
00:17:53.600 --> 00:17:53.760
database. It can install Elisp triggers and
00:17:58.420 --> 00:17:58.920
the trigger powered the org mode frontend.
00:18:06.040 --> 00:18:06.540
Okay, so that's how it's done.
00:18:08.780 --> 00:18:09.280
It's not finished, but it does something.
00:18:13.540 --> 00:18:13.820
Now I want to do some closing remarks and
00:18:14.440 --> 00:18:14.940
maybe some more remarks.
00:18:17.120 --> 00:18:17.400
First off, an interesting concept I thought
00:18:23.240 --> 00:18:23.680
up while implementing this is cheesy garbage
00:18:28.100 --> 00:18:28.580
collect. For all you fans of dynamic
00:18:31.000 --> 00:18:31.340
languages, you know what garbage collect is.
00:18:33.720 --> 00:18:34.220
And Emacs users probably know it.
00:18:38.060 --> 00:18:38.380
Cleans up after you. You are using this Emacs
00:18:40.280 --> 00:18:40.780
and you are making lots of little objects and
00:18:42.540 --> 00:18:42.920
after some time Emacs says,
00:18:45.260 --> 00:18:45.580
okay, I'm doing some cleanup for you.
00:18:46.260 --> 00:18:46.760
That's garbage collect.
00:18:49.040 --> 00:18:49.360
And I thought why not have garbage collect
00:18:52.000 --> 00:18:52.500
for the browser? You're doing this browsing
00:18:55.120 --> 00:18:55.320
and opening all these tabs and after some
00:18:58.020 --> 00:18:58.200
time there are lots of tabs and someone has
00:19:00.660 --> 00:19:01.160
to close them. So there's the C programmers,
00:19:03.160 --> 00:19:03.340
they do all the closing themselves and
00:19:03.960 --> 00:19:04.460
they're really meticulous,
00:19:06.060 --> 00:19:06.560
but it takes some time.
00:19:08.520 --> 00:19:09.020
And there's like my style,
00:19:12.880 --> 00:19:13.100
I just let it collect stuff and after some
00:19:16.220 --> 00:19:16.720
time I close the browser and start a new 1.
00:19:19.080 --> 00:19:19.280
And now there's the garbage collect that
00:19:20.800 --> 00:19:21.180
says, let it collect the browser,
00:19:22.640 --> 00:19:23.000
let the browser collect and then garbage
00:19:25.520 --> 00:19:25.960
collect. Let's say every morning the browser
00:19:28.140 --> 00:19:28.480
closes, Emacs closes all the browser tabs,
00:19:30.520 --> 00:19:30.860
but it keeps the information And it keeps
00:19:32.840 --> 00:19:33.340
text. Maybe you said like a tag yesterday
00:19:36.340 --> 00:19:36.840
like reading. I want to read this.
00:19:39.720 --> 00:19:39.960
And next time and then after that it's in the
00:19:42.720 --> 00:19:43.140
reading list. So garbage collector
00:19:45.020 --> 00:19:45.520
compaction. However you want to know this.
00:19:50.740 --> 00:19:51.240
1 thing I thought of while doing this is
00:19:57.380 --> 00:19:57.620
also, oh my time's up,
00:19:59.120 --> 00:19:59.620
so we're almost at Q&A.
00:20:04.120 --> 00:20:04.620
1 last thing, this whole project or program
00:20:06.360 --> 00:20:06.660
works via the Emacs event loop.
00:20:08.720 --> 00:20:08.880
So there's a server listening for the
00:20:11.840 --> 00:20:12.340
browser, waiting for infos from it.
00:20:16.320 --> 00:20:16.820
It works quite fine. I wasn't sure how much
00:20:20.940 --> 00:20:21.440
performance it will cost the browser,
00:20:23.120 --> 00:20:23.440
Emacs, but it works fine.
00:20:26.920 --> 00:20:27.240
But I wonder what's the limits of Emacs event
00:20:31.880 --> 00:20:32.280
loop. Like, can I go on forever adding server
00:20:34.440 --> 00:20:34.940
stuff? How big a server can Emacs get?
00:20:43.580 --> 00:20:44.080
I don't know. So that's some open questions
00:20:47.120 --> 00:20:47.620
to ponder. With that, thank you for listening
00:20:49.860 --> 00:20:50.360
and for your interest.
00:20:54.380 --> 00:20:54.640
I'd be pretty delighted to take some
00:20:57.740 --> 00:20:57.980
questions now. Great! Well,
00:20:58.680 --> 00:20:59.160
thank you so much, Michael.
00:21:01.280 --> 00:21:01.400
Thanks for the talk. And also thanks for
00:21:02.960 --> 00:21:03.460
going a little more in depth at the end.
00:21:05.800 --> 00:21:06.040
Is that what the extra stuff that you wanted
00:21:08.000 --> 00:21:08.500
to mention? Is it what you've done just now?
00:21:11.400 --> 00:21:11.900
Sorry, I didn't understand your last,
00:21:14.700 --> 00:21:14.860
your question. When we were preparing for
00:21:15.820 --> 00:21:16.320
your presentation with Sliv,
00:21:18.340 --> 00:21:18.420
you told me that you wanted to go perhaps a
00:21:20.380 --> 00:21:20.740
little more in-depth into the garbage
00:21:22.500 --> 00:21:22.640
collection. Is it what you wanted to do or do
00:21:24.080 --> 00:21:24.580
you still have some more to tell us about?
00:21:27.080 --> 00:21:27.580
I could tell more in-depth.
00:21:29.540 --> 00:21:30.040
Yes, garbage collection is just an idea.
00:21:35.740 --> 00:21:36.240
It's maybe... I don't know.
00:21:39.140 --> 00:21:39.480
Are there questions? There are questions,
00:21:41.720 --> 00:21:41.880
that's why. We have about 13 minutes to
00:21:43.380 --> 00:21:43.880
answer as many questions as possible.
00:21:46.960 --> 00:21:47.120
By the way, Sorry for the people who were
00:21:47.560 --> 00:21:48.040
watching the presentation.
00:21:49.040 --> 00:21:49.540
There's been a little bit of manipulation
00:21:51.820 --> 00:21:52.040
trying to get all the screens in order,
00:21:53.860 --> 00:21:54.360
but it's because I've got a very shitty ping
00:21:56.360 --> 00:21:56.600
to the streaming server that we use
00:21:59.380 --> 00:21:59.860
currently. So everything is like composite
00:22:00.360 --> 00:22:00.600
everything, But don't worry,
00:22:02.240 --> 00:22:02.440
Michael, everything will be very clean once
00:22:03.160 --> 00:22:03.660
we publish it afterwards.
00:22:05.140 --> 00:22:05.640
So what I'm going to do...
00:22:09.660 --> 00:22:10.160
Sorry, could you repeat?
00:22:13.020 --> 00:22:13.380
So it was not at my end because my internet
00:22:15.560 --> 00:22:16.060
connection is not the best 1 either.
00:22:17.800 --> 00:22:18.080
No, absolutely not. Oh,
00:22:19.640 --> 00:22:19.840
by the way, this reminds me as I am
00:22:20.740 --> 00:22:21.180
compositing the windows,
00:22:23.000 --> 00:22:23.300
you might remember in the talk by Bob earlier
00:22:25.380 --> 00:22:25.880
today, I said, oh, there's a phone vibrating.
00:22:28.680 --> 00:22:28.840
I thought it was coming from the big blue
00:22:30.600 --> 00:22:30.760
button, like the room in which we are right
00:22:32.960 --> 00:22:33.080
now. And I wasn't hallucinating just to be
00:22:34.440 --> 00:22:34.940
clear. It's just that 1 of the co-organizers
00:22:37.320 --> 00:22:37.820
behind on mumble had their phone vibrating
00:22:38.720 --> 00:22:39.160
and I was very confused.
00:22:41.440 --> 00:22:41.600
Anyway that's for the Okay,
00:22:42.440 --> 00:22:42.600
so everything is set up now.
00:22:43.280 --> 00:22:43.500
So what I'm gonna do, Michael,
00:22:44.760 --> 00:22:45.040
I'm gonna... If you're okay with this,
00:22:46.560 --> 00:22:46.960
Can I read you the question from the pad and
00:22:48.780 --> 00:22:48.960
can you answer them? Yes,
00:22:50.160 --> 00:22:50.660
of course. I would love to.
00:22:53.740 --> 00:22:53.940
Okay, lovely. I'm going to try my best to
00:22:56.380 --> 00:22:56.720
display the questions on the stream.
00:22:58.140 --> 00:22:58.440
Give me just a second and in the meantime
00:22:59.440 --> 00:22:59.940
I'll read you the first 1.
00:23:02.180 --> 00:23:02.680
So, have you seen the next browser?
00:23:05.020 --> 00:23:05.240
It is the Emacs of web browsers and would
00:23:07.540 --> 00:23:07.940
probably be easier to work with as it matches
00:23:08.900 --> 00:23:09.400
a lot closer to Emacs.
00:23:11.400 --> 00:23:11.640
I think you can tag your browser tabs for
00:23:16.880 --> 00:23:17.380
example. I saw it, I never tried it.
00:23:20.940 --> 00:23:21.360
I think you can do all the stuff and I think
00:23:23.620 --> 00:23:23.940
it's pretty good idea to use it if you want
00:23:26.480 --> 00:23:26.980
because have a look at this.
00:23:30.700 --> 00:23:31.200
This lovely thing is JavaScript and it's the
00:23:35.080 --> 00:23:35.320
browser side. It was quite tricky to get
00:23:40.180 --> 00:23:40.680
working so maybe it's easier if you use Nixt
00:23:47.460 --> 00:23:47.660
but I like to use Firefox and yeah there has
00:23:49.820 --> 00:23:50.000
to be a solution for Firefox too,
00:23:53.040 --> 00:23:53.480
I think. So next question,
00:23:55.900 --> 00:23:56.320
please. Lovely. All right,
00:23:59.480 --> 00:23:59.980
so nice ideas. Needs a better name though,
00:24:00.840 --> 00:24:01.280
to attract people to it.
00:24:02.920 --> 00:24:03.420
What about Browsys or Webnote?
00:24:08.400 --> 00:24:08.900
Browsys spelled B-R-O-W-S-Y-S or Webnote?
00:24:12.720 --> 00:24:13.220
Clearer this 1. Webnote and Browsys?
00:24:17.260 --> 00:24:18.300
With a Y, yes. So instead of an IAY.
00:24:21.140 --> 00:24:21.420
Ah, okay. Yes, why not?
00:24:25.240 --> 00:24:25.520
I take note. The name is maybe a little bit
00:24:28.020 --> 00:24:28.460
confusing. It's the name of a spider.
00:24:30.860 --> 00:24:31.160
It's like a spider that does an orb web.
00:24:31.920 --> 00:24:32.420
I found it via Wikipedia.
00:24:34.360 --> 00:24:34.480
I just wanted to have like something with the
00:24:37.640 --> 00:24:37.840
web because it's weaving something and
00:24:38.680 --> 00:24:39.180
there's also the web involved.
00:24:41.600 --> 00:24:41.980
I'm not set on the name.
00:24:44.640 --> 00:24:45.040
I'm not even set on the project yet how it
00:24:47.360 --> 00:24:47.520
will turn out. So what you're seeing now is
00:24:49.760 --> 00:24:49.940
something else than what I imagined when I
00:24:51.060 --> 00:24:51.560
was planning this talk.
00:24:54.880 --> 00:24:55.280
Yeah. That's right. Keep an open mind.
00:24:56.880 --> 00:24:57.140
Next question. You know what I'm going to say
00:24:58.900 --> 00:24:59.340
about the marketing of project names?
00:24:59.900 --> 00:25:00.400
You know, they're not,
00:25:01.640 --> 00:25:02.040
they don't make sense and they're not popular
00:25:02.880 --> 00:25:03.340
until they actually are.
00:25:06.040 --> 00:25:06.260
Like what would have predestined maggots to
00:25:07.680 --> 00:25:08.180
work as a name? Perhaps nothing.
00:25:10.940 --> 00:25:11.420
I mean it felt close to magic or maggots
00:25:12.540 --> 00:25:12.880
depending on the people you ask.
00:25:16.000 --> 00:25:16.160
So you know maybe your name Pultis will be a
00:25:18.160 --> 00:25:18.280
household name give or take 6 months or a
00:25:23.120 --> 00:25:23.260
year? Yes, maybe. Because- All right,
00:25:23.980 --> 00:25:24.340
moving on to the next question.
00:25:25.400 --> 00:25:25.900
Oh, unless you wanna add something.
00:25:28.740 --> 00:25:29.240
To expand a little bit on this name,
00:25:33.140 --> 00:25:33.640
I'm not sure where it stops.
00:25:35.460 --> 00:25:35.600
Like, is it really, it's just about the
00:25:37.740 --> 00:25:38.240
browser, What I just built is something more?
00:25:42.340 --> 00:25:42.580
So I'm not sure if I should limit the name
00:25:44.380 --> 00:25:44.880
here. Okay, now let's go on.
00:25:47.440 --> 00:25:47.700
You know what? You know what they say about
00:25:48.700 --> 00:25:49.180
programming, there's only 1 fundamental
00:25:50.720 --> 00:25:51.220
problem, no sorry, 2 fundamental problems,
00:25:53.400 --> 00:25:53.860
garbage collection and naming things.
00:25:55.200 --> 00:25:55.320
So you're stuck in the second 1 and you
00:25:56.200 --> 00:25:56.700
mentioned the first 1 as well.
00:25:59.580 --> 00:26:00.080
Alright, moving on to the next question.
00:26:01.860 --> 00:26:02.080
Can you use browser extensions with this,
00:26:03.700 --> 00:26:03.840
for example uBlock, SponsorBlock or
00:26:06.780 --> 00:26:07.120
Darkreader? Yes, of course.
00:26:09.020 --> 00:26:09.320
I think someone was maybe a little bit
00:26:11.140 --> 00:26:11.640
confused that the browser is inside Emacs.
00:26:14.540 --> 00:26:15.040
This is something totally normal for us ex-WM
00:26:18.040 --> 00:26:18.220
users. It's like every program for me is
00:26:21.040 --> 00:26:21.540
inside Emacs. This is just a normal Firefox.
00:26:24.320 --> 00:26:24.640
It just doesn't have like the window
00:26:26.580 --> 00:26:27.080
decoration. So there's of course there's,
00:26:31.360 --> 00:26:31.860
no, This is the ad blocker.
00:26:33.840 --> 00:26:34.340
I don't know why it's not working here.
00:26:38.560 --> 00:26:39.060
But you can have all you have in Firefox.
00:26:44.820 --> 00:26:44.920
OK. OK, lovely. Are you ready to move on to
00:26:45.920 --> 00:26:46.080
the next question? Or do you want to add
00:26:47.600 --> 00:26:48.100
something else? Yes, next question please.
00:26:51.100 --> 00:26:51.600
All right. So are there any inherent security
00:26:53.000 --> 00:26:53.500
issues with this, like bidirectional
00:26:55.640 --> 00:26:55.960
synchronization? Sounds like a possible
00:26:57.120 --> 00:26:57.620
issue. How are they solved?
00:27:00.660 --> 00:27:00.760
Can a malicious website impact Emacs or the
00:27:10.520 --> 00:27:11.020
host system? No, the website has no intro.
00:27:15.120 --> 00:27:15.620
It can do little stuff.
00:27:20.200 --> 00:27:20.700
There's this, it's a web extension,
00:27:22.880 --> 00:27:23.300
it's a browser extension inside the browser
00:27:24.800 --> 00:27:25.300
and it has like a limited interface.
00:27:27.440 --> 00:27:27.920
It uses a web extension API,
00:27:30.980 --> 00:27:31.480
there's a tabs API, you can listen on tabs,
00:27:33.820 --> 00:27:34.320
here you can tabs, browser tabs,
00:27:36.340 --> 00:27:36.820
Please notify me if there's 1 created,
00:27:37.600 --> 00:27:38.040
updated, moved, detached,
00:27:40.240 --> 00:27:40.520
attached, removed. So the people I think
00:27:44.020 --> 00:27:44.440
working at Google Chrome put some thought
00:27:49.540 --> 00:27:49.920
into it and at least this part seems quite
00:27:52.960 --> 00:27:53.300
well designed. Okay, next question,
00:27:56.880 --> 00:27:57.100
please. All right. So when do you think
00:27:57.880 --> 00:27:58.380
you'll make a first release?
00:28:00.220 --> 00:28:00.420
I hate needing browser extensions and would
00:28:01.680 --> 00:28:02.180
love to control my tabs in Emacs.
00:28:07.340 --> 00:28:07.540
Yes, I don't know. I would like to do it
00:28:09.400 --> 00:28:09.900
soon, but I have stuff to do.
00:28:13.260 --> 00:28:13.760
This is not the simplest project.
00:28:18.660 --> 00:28:19.020
What I can tell you, I will put the code
00:28:20.480 --> 00:28:20.980
online in the next days,
00:28:25.080 --> 00:28:25.360
maybe even next week, because it's not
00:28:27.980 --> 00:28:28.080
pretty, but it's also not bad and there's a
00:28:28.940 --> 00:28:29.440
lot of stuff there already.
00:28:32.120 --> 00:28:32.620
And For those who don't mind looking at
00:28:35.500 --> 00:28:36.000
unfinished things for inspiration or maybe
00:28:39.320 --> 00:28:39.820
their own work, I want to put it online.
00:28:43.620 --> 00:28:44.020
And if it's released, I will do some bigger
00:28:46.560 --> 00:28:46.860
announcement. And if it's getting released,
00:28:48.840 --> 00:28:49.040
can you write it back in Emacs console or
00:28:51.760 --> 00:28:51.940
conf, of course? Well,
00:28:53.440 --> 00:28:53.600
no pressure. Next year you need to have it
00:28:55.320 --> 00:28:55.580
released and you'll need to give us a GitHub
00:28:59.900 --> 00:29:00.060
page. Alright, moving on to the next
00:29:01.560 --> 00:29:01.880
question. What happened to the Sway
00:29:03.040 --> 00:29:03.540
compositor you showed last year?
00:29:06.720 --> 00:29:07.220
Yeah, that's like, this is the perfect
00:29:10.680 --> 00:29:11.180
question for like after the last 1.
00:29:12.600 --> 00:29:13.100
It's also not finished.
00:29:16.960 --> 00:29:17.120
And it's also not finished Because while I
00:29:19.160 --> 00:29:19.660
did a tech demo like I did this time,
00:29:20.740 --> 00:29:21.220
I'm sorry it's not finished,
00:29:23.480 --> 00:29:23.600
but I don't have that big a need for it and
00:29:25.080 --> 00:29:25.580
it's a lot of work to get it finished.
00:29:28.140 --> 00:29:28.640
Because it's a similar architecture,
00:29:31.940 --> 00:29:32.440
like this different server clients
00:29:35.640 --> 00:29:35.980
architecture stuff and Emacs is still in the
00:29:42.140 --> 00:29:42.640
callback hell time as you call it.
00:29:46.260 --> 00:29:46.440
So it's not that easy to get it working and I
00:29:49.540 --> 00:29:49.920
don't have that much need for a valent window
00:29:52.720 --> 00:29:52.920
manager because the other 1 still works and
00:29:54.520 --> 00:29:55.020
there's more interesting stuff to do.
00:29:58.020 --> 00:29:58.180
But also I know it has a lot of potential if
00:30:00.840 --> 00:30:01.000
it works and if it is released And I know a
00:30:02.320 --> 00:30:02.520
lot of people are waiting for it,
00:30:04.200 --> 00:30:04.700
so I have it in the back of my mind.
00:30:06.720 --> 00:30:07.220
And if someone else feels compelled,
00:30:10.460 --> 00:30:10.680
please take a look at the code and do
00:30:12.980 --> 00:30:13.340
something. Yeah, whoever asked the question,
00:30:14.120 --> 00:30:14.620
this is your task now.
00:30:17.580 --> 00:30:17.900
All right, moving on to the last question.
00:30:18.900 --> 00:30:19.140
We have about 4 minutes left,
00:30:20.160 --> 00:30:20.660
so it looks like we are...
00:30:22.660 --> 00:30:22.760
By the way, Michael was worried that he
00:30:24.200 --> 00:30:24.700
wouldn't have many questions to answer,
00:30:27.380 --> 00:30:27.560
and I am very proud to say and to prove you
00:30:29.540 --> 00:30:30.040
wrong. All right, next question.
00:30:31.920 --> 00:30:32.080
Does the browser have to be Firefox for
00:30:33.480 --> 00:30:33.980
syncing or is there a choice there?
00:30:39.020 --> 00:30:39.340
I think it's not. There's a choice.
00:30:42.180 --> 00:30:42.440
You can use any browser who supports web
00:30:43.940 --> 00:30:44.440
extensions. I think it's like a standardized
00:30:49.900 --> 00:30:50.080
interface. You can use any browser who does
00:30:52.440 --> 00:30:52.640
it. Chrome does it. But they're moving to a
00:30:55.260 --> 00:30:55.760
new web extension API to block ad blockers.
00:30:59.680 --> 00:31:00.040
I don't know if that does any turmoil for my
00:31:02.860 --> 00:31:03.360
extension and I frankly don't care that much.
00:31:05.680 --> 00:31:06.180
All right, fair answer.
00:31:09.960 --> 00:31:10.280
I don't see anyone who's joined us on BBB,
00:31:11.940 --> 00:31:12.080
by the way, we're going to move on with the
00:31:13.020 --> 00:31:13.480
stream to the next talk.
00:31:15.380 --> 00:31:15.660
But if you've got any questions for Michael,
00:31:17.320 --> 00:31:17.480
Feel free to join on BBB and ask your
00:31:19.280 --> 00:31:19.440
questions. I've said before that people tend
00:31:22.420 --> 00:31:22.860
to be shy and only join when the stream goes
00:31:25.900 --> 00:31:26.040
to a next talk. But I like to remind those
00:31:27.720 --> 00:31:27.880
people, eventually those talks are going to
00:31:28.280 --> 00:31:28.620
be published. Obviously,
00:31:30.480 --> 00:31:30.680
we'll make sure that nothing private was
00:31:31.720 --> 00:31:32.220
divulged during these discussions.
00:31:34.640 --> 00:31:34.760
But, you know, it's, if you can muster up the
00:31:35.580 --> 00:31:35.740
courage to go on the scene,
00:31:38.940 --> 00:31:39.160
it's always nice to have people join and ask
00:31:41.100 --> 00:31:41.400
questions. Michael, we have about 3 minutes
00:31:43.080 --> 00:31:43.580
left. Do you have any last words on perhaps
00:31:45.860 --> 00:31:46.240
anything to add on what you've presented
00:31:49.780 --> 00:31:50.160
today? Yeah, I just thought about maybe I
00:31:55.260 --> 00:31:55.760
show something. But there's this portals.
00:32:00.140 --> 00:32:00.380
Another thing, if someone has some more
00:32:02.540 --> 00:32:02.920
names, I would be quite interested because
00:32:03.900 --> 00:32:04.400
naming stuff is difficult.
00:32:11.600 --> 00:32:12.100
And this defines the database.
00:32:14.200 --> 00:32:14.700
There's the database definition.
00:32:16.440 --> 00:32:16.920
I call the database thingy,
00:32:19.600 --> 00:32:19.760
it's called Sponti. So I don't know what
00:32:20.840 --> 00:32:21.340
you're thinking about this name.
00:32:23.220 --> 00:32:23.720
So I think I want to have a database,
00:32:25.360 --> 00:32:25.860
it's called, it's this database.
00:32:28.360 --> 00:32:28.740
And then I define the database and I define
00:32:29.820 --> 00:32:30.060
the subject predicate object.
00:32:31.060 --> 00:32:31.560
So I have a browser session,
00:32:32.520 --> 00:32:33.020
browser session has tabs,
00:32:36.820 --> 00:32:37.320
a tab has, it comes from another tab maybe,
00:32:39.860 --> 00:32:40.360
or it shows an URL. A window,
00:32:42.180 --> 00:32:42.680
a session can also have a window,
00:32:44.600 --> 00:32:44.760
a window shows tabs. And then you can
00:32:46.120 --> 00:32:46.380
annotate stuff. You can say,
00:32:49.920 --> 00:32:50.100
okay, I have a node or a URL and I can tag it
00:32:51.600 --> 00:32:52.100
with a title, date, tag,
00:32:54.940 --> 00:32:55.440
or with another node or with body text.
00:32:58.640 --> 00:32:58.780
And I have an environment that's like a
00:33:01.420 --> 00:33:01.840
machine, the PC that's running on or Emacs
00:33:03.640 --> 00:33:03.840
itself. And then you have stuff about the
00:33:04.900 --> 00:33:05.280
machine and you have a client,
00:33:06.660 --> 00:33:07.160
this is the process session actually.
00:33:08.680 --> 00:33:09.180
So maybe I should change this.
00:33:17.680 --> 00:33:18.180
Okay. And 1 last thing.
00:33:20.020 --> 00:33:20.220
I have something I wanted to show you,
00:33:21.600 --> 00:33:22.100
but it didn't finish in time.
00:33:23.240 --> 00:33:23.480
Okay, Michael, just to be clear,
00:33:24.720 --> 00:33:25.220
you've got only 1 minute left.
00:33:27.880 --> 00:33:28.380
Yes, it's not that difficult.
00:33:30.140 --> 00:33:30.640
I wanted to integrate highlight.
00:33:32.300 --> 00:33:32.780
You just go to a web page,
00:33:35.660 --> 00:33:35.800
highlight stuff, do a right click and then it
00:33:39.320 --> 00:33:39.820
says save to Emacs. And you saved it to Emacs
00:33:42.500 --> 00:33:42.940
and it's there inside the node.
00:33:45.400 --> 00:33:45.900
But no, this 1 is not finished yet.
00:33:47.960 --> 00:33:48.240
You could do it live but there's no time
00:33:49.540 --> 00:33:50.040
left. So thank you for watching.
00:33:51.960 --> 00:33:52.180
Yes, and thank you so much,
00:33:54.000 --> 00:33:54.280
Michael, for taking the time to present and
00:33:54.960 --> 00:33:55.460
to answer the questions.
00:33:57.340 --> 00:33:57.540
The stream is going to move to the next talk
00:34:00.680 --> 00:34:01.080
in about 45 seconds. It's a talk by Wasem
00:34:02.680 --> 00:34:03.180
Masa, which I'm very excited about.
00:34:05.740 --> 00:34:06.240
And other than that, Michael,
00:34:08.239 --> 00:34:08.460
I'm looking forward to seeing you again next
00:34:10.760 --> 00:34:11.000
year with new GitHub repositories to share
00:34:12.500 --> 00:34:13.000
with us. Right? No pressure.
00:34:17.500 --> 00:34:17.900
And on that note, I wish you a very good day
00:34:19.400 --> 00:34:19.600
and I'll see you next time,
00:34:21.820 --> 00:34:22.199
I suppose. Yes, of course.
00:34:24.080 --> 00:34:24.580
I would like to do it next time again.
00:34:25.679 --> 00:34:26.179
It's a lot of fun. All right.
00:34:27.280 --> 00:34:27.780
Okay. Bye-bye, Michael.
00:34:33.580 --> 00:34:34.080
Bye-bye and thanks. All right.
00:34:35.540 --> 00:34:35.880
I think, yes. Okay. We finished.
00:34:36.460 --> 00:34:36.600
So, thank you so much,
00:34:38.199 --> 00:34:38.400
Michael. I need to get ready for the next
00:34:39.340 --> 00:34:39.840
talk. So I'll see you later.
00:34:40.920 --> 00:34:41.420
I'll see you later, sorry.
00:34:45.060 --> 00:34:45.560
Yes, see you. Bye-bye.
00:34:47.280 --> 00:34:47.560
You are currently the only person in this
00:34:47.560 --> 00:34:48.060
conference.