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.