From 6c7ecbdf7a14417ae7744dad92c25c47ce8e95a8 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Sat, 27 Nov 2021 16:32:59 -0500 Subject: update --- ...h-the-power-of-a-lisp-browser--andrea--main.vtt | 532 +++++++++++++++++++++ 1 file changed, 532 insertions(+) create mode 100644 2021/captions/emacsconf-2021-nyxt--emacs-with-nyxt-extend-your-editor-with-the-power-of-a-lisp-browser--andrea--main.vtt (limited to '2021/captions') diff --git a/2021/captions/emacsconf-2021-nyxt--emacs-with-nyxt-extend-your-editor-with-the-power-of-a-lisp-browser--andrea--main.vtt b/2021/captions/emacsconf-2021-nyxt--emacs-with-nyxt-extend-your-editor-with-the-power-of-a-lisp-browser--andrea--main.vtt new file mode 100644 index 00000000..d595fc1b --- /dev/null +++ b/2021/captions/emacsconf-2021-nyxt--emacs-with-nyxt-extend-your-editor-with-the-power-of-a-lisp-browser--andrea--main.vtt @@ -0,0 +1,532 @@ +WEBVTT + +00:00.000 --> 00:01.783 +Welcome to my talk "Emacs with Nyxt: + +00:01.783 --> 00:02.823 +extend your editor with + +00:02.823 --> 00:04.623 +the power of a Lisp browser". + +00:04.623 --> 00:06.583 +Who am I? I'm Andrea. I work as + +00:06.583 --> 00:08.303 +a Clojure software engineer somewhere + +00:08.303 --> 00:09.743 +in the middle of the UK. + +00:09.743 --> 00:11.743 +And I inherited my passion for Emacs + +00:11.743 --> 00:13.703 +from my Ph.D. supervisor, and from that + +00:13.703 --> 00:15.943 +moment on Emacs became a core tool + +00:15.943 --> 00:17.863 +of my daily routine. + +00:17.863 --> 00:20.863 +You can find more about me and my interests + +00:20.863 --> 00:23.983 +at ag91.github.io, that is my blog. + +00:23.983 --> 00:25.183 +Let's get into the talk. + +00:25.183 --> 00:28.183 +So, why Nyxt? Nyxt is an extensible + +00:28.183 --> 00:29.543 +Common Lisp browser. + +00:29.543 --> 00:31.903 +Fundamentally, it's Emacs for web browsing. + +00:31.903 --> 00:34.063 +And why do I say that? I say that + +00:34.063 --> 00:36.063 +because is a…, this is Nyxt. + +00:36.063 --> 00:40.223 +You can see that is organized with buffers, + +00:40.223 --> 00:44.063 +and you can see that I can invoke command, + +00:44.063 --> 00:47.183 +like, I was in Emacs with this. + +00:47.183 --> 00:48.983 +So, I'm using even the same keybindings, + +00:48.983 --> 00:52.783 +so, for that I used M-x. + +00:52.783 --> 00:55.983 +And some of the features of Nyxt + +00:55.983 --> 01:00.103 +are just amazing. For example, say that + +01:00.103 --> 01:03.823 +you want to mark some text, this is the way, + +01:03.823 --> 01:08.703 +so, I just pressed Control space (C-SPC), + +01:08.703 --> 01:10.423 +and now I will start the marker, + +01:10.423 --> 01:13.223 +and now I can copy the text, and when + +01:13.223 --> 01:15.663 +I'm done, I can finish to use visual mode. + +01:15.663 --> 01:18.023 +Or, for example, what about…, + +01:18.023 --> 01:21.183 +I want to navigate without using my mouse. + +01:21.183 --> 01:25.183 +I can do something like follow-hint, + +01:25.183 --> 01:28.023 +and this opens the possibility to press + +01:28.023 --> 01:29.903 +AC to jump on the Articles, + +01:29.903 --> 01:33.063 +and all of a sudden I'm on the page + +01:33.063 --> 01:36.023 +with the blog posts of the Atlas team. + +01:36.023 --> 01:39.383 +Or, for example, I can extend my browser + +01:39.383 --> 01:40.783 +from within the browser. + +01:40.783 --> 01:43.223 +So, you can see I can evaluate a command, + +01:43.223 --> 01:48.663 +a Common Lisp code, + +01:48.663 --> 01:50.903 +and it produces the result. + +01:50.903 --> 01:56.183 +And then, for example, I can also auto…. + +01:56.183 --> 01:58.663 +This browser comes by default with an + +01:58.663 --> 02:01.143 +integration with your password manager, + +02:01.143 --> 02:04.223 +in my case it's pass, and I can copy + +02:04.223 --> 02:08.783 +a password. This is just as easy as is, + +02:08.783 --> 02:10.543 +it comes by default. + +02:10.543 --> 02:13.583 +Another incredibly useful feature + +02:13.583 --> 02:18.023 +that I didn't find in other browsers is + +02:18.023 --> 02:20.503 +searching between multiple buffers. + +02:20.503 --> 02:23.503 +So, this function search-buffers, + +02:23.503 --> 02:25.823 +this command lets me select + +02:25.823 --> 02:29.503 +some of my open buffers, + +02:29.503 --> 02:32.503 +and I can look for a string in there. + +02:32.503 --> 02:34.623 +And you would see that the hits are + +02:34.623 --> 02:37.423 +from the buffers that I have open, + +02:37.423 --> 02:42.583 +for example, Clojure or + +02:42.583 --> 02:46.103 +the YouTube video about Clojure. + +02:46.103 --> 02:49.623 +Let me get into something very interesting. + +02:49.623 --> 02:52.783 +How can I make Emacs speak to Nyxt. + +02:52.783 --> 02:55.103 +And for that, let me show you something + +02:55.103 --> 02:57.143 +in the literate programming approach. + +02:57.143 --> 03:00.183 +So, this Org mode source block is + +03:00.183 --> 03:04.423 +linked to this Nyxt REPL. + +03:04.423 --> 03:06.983 +I can define a new command, + +03:06.983 --> 03:09.343 +and when I go in Nyxt, + +03:09.343 --> 03:10.863 +I can find this new command, + +03:10.863 --> 03:12.503 +and I can invoke it, and you can see + +03:12.503 --> 03:16.943 +there is something in the minibuffer. + +03:16.943 --> 03:21.543 +I can use it from Nyxt, but I can do it here. + +03:21.543 --> 03:24.703 +I can also use it directly from the REPL. + +03:24.703 --> 03:27.743 +You can see that the same thing is logged + +03:27.743 --> 03:30.423 +in the REPL. + +03:30.423 --> 03:32.663 +And then with something that I would speak + +03:32.663 --> 03:36.423 +about in another talk in the conference + +03:36.423 --> 03:39.143 +— Moldable Emacs. I can also just + +03:39.143 --> 03:42.823 +evaluate JavaScript outside. Let's create + +03:42.823 --> 03:46.703 +a playground that allows me to write some + +03:46.703 --> 03:49.903 +JavaScript code. And if I evaluate this code, + +03:49.903 --> 03:52.023 +I get the title of the webpage + +03:52.023 --> 03:54.583 +that is currently open in Nyxt. + +03:54.583 --> 03:58.343 +The cool thing is that I can do it also + +03:58.343 --> 04:02.263 +directly in Lisp, this is Parenscript + +04:02.263 --> 04:05.223 +that evaluates to the same thing, + +04:05.223 --> 04:07.823 +(it) is just the same, just document.title, + +04:07.823 --> 04:10.743 +only that is in Common Lisp. + +04:10.743 --> 04:14.343 +You see that Emacs can speak to Nyxt, + +04:14.343 --> 04:16.103 +but also the reverse is true. + +04:16.103 --> 04:19.023 +Nyxt can speak to Emacs. So, for example, + +04:19.023 --> 04:21.943 +if I'm in Nyxt, and for example, + +04:21.943 --> 04:26.623 +let me go to my blog, if I press here, + +04:26.623 --> 04:30.863 +this is an email link, automatically in Emacs + +04:30.863 --> 04:33.943 +it will let me compone a message + +04:33.943 --> 04:35.943 +using my email manager. + +04:35.943 --> 04:39.823 +Or, say that always in my blog I want + +04:39.823 --> 04:43.543 +to write something here in the searchbar, + +04:43.543 --> 04:46.303 +I think that I don't want to write it in + +04:46.303 --> 04:50.623 +the browser but in my Emacs because + +04:50.623 --> 04:52.903 +I have some template for search. + +04:52.903 --> 04:55.503 +If I do this, all of a sudden + +04:55.503 --> 04:59.103 +the text is added. + +04:59.103 --> 05:03.423 +Or say I'm watching that Clojure video, + +05:03.423 --> 05:06.343 +and I get to this point, and then I say + +05:06.343 --> 05:09.703 +"Yuu! This is a very interesting thing, + +05:09.703 --> 05:12.783 +let me take a note". So, I take some note + +05:12.783 --> 05:16.903 +with some text, and if I go back in Emacs, + +05:16.903 --> 05:19.023 +tadam! I found the note, + +05:19.023 --> 05:21.903 +and I found it with the duration, + +05:21.903 --> 05:25.063 +so I can just jump to the same point. + +05:25.063 --> 05:28.743 +And what else? + +05:28.743 --> 05:31.903 +There is something even bigger + +05:31.903 --> 05:32.663 +that we can do, + +05:32.663 --> 05:34.063 +this is a bit more advanced, + +05:34.063 --> 05:35.823 +and this is something that I do + +05:35.823 --> 05:39.023 +again with my Moldable Emacs. + +05:39.023 --> 05:41.183 +Say that you want to do some + +05:41.183 --> 05:43.223 +data visualization. + +05:43.223 --> 05:44.863 +If we use Vega-Lite…, for example, + +05:44.863 --> 05:47.823 +we want to visualize a scatter plot. + +05:47.823 --> 05:49.623 +Let me take some example data + +05:49.623 --> 05:52.423 +that could be interesting also to you. + +05:52.423 --> 05:55.063 +So, say that I have this playground + +05:55.063 --> 05:57.263 +that lets me evaluate + +05:57.263 --> 06:01.703 +some query on my Org-roam database. + +06:01.703 --> 06:03.663 +What I'm doing here is I'm gonna + +06:03.663 --> 06:05.703 +go through my first 100 notes + +06:05.703 --> 06:09.823 +and collect their backlinks, + +06:09.823 --> 06:13.183 +so some information that I find interesting. + +06:13.183 --> 06:16.343 +If I convert this to JSON, + +06:16.343 --> 06:18.903 +now, all of a sudden this is something + +06:18.903 --> 06:22.623 +that I can put in that Vega-Lite template + +06:22.623 --> 06:26.183 +that I showed you a moment ago. + +06:26.183 --> 06:28.343 +So, I'm gonna find out that file, + +06:28.343 --> 06:30.463 +you see that I left a question mark, + +06:30.463 --> 06:31.703 +(this is) something that I still + +06:31.703 --> 06:33.783 +didn't automate completely. + +06:33.783 --> 06:37.983 +By saving this file and opening it with Nyxt, + +06:37.983 --> 06:41.183 +you can see that now I have a scatter plot. + +06:41.183 --> 06:43.943 +And these are my actual notes, + +06:43.943 --> 06:48.343 +so you can see that if I stay on it, + +06:48.343 --> 06:53.063 +these are actually my notes. + +06:53.063 --> 06:55.343 +When I'm in Emacs, what I can do is + +06:55.343 --> 06:58.303 +I click here, and now in the background + +06:58.303 --> 07:00.903 +it opened my note, + +07:00.903 --> 07:04.303 +and it opened with all my backlinks. + +07:04.303 --> 07:07.703 +You can see that I have embedded in my + +07:07.703 --> 07:11.303 +browser some functionality of Emacs. + +07:11.303 --> 07:13.463 +You understand that this is the power of + +07:13.463 --> 07:16.983 +unifying, integrating these two experiences, + +07:16.983 --> 07:18.943 +and it opens the doors for + +07:18.943 --> 07:22.223 +a lot of interesting interactivity. + +07:22.223 --> 07:24.743 +Anyway, what is next? + +07:24.743 --> 07:29.023 +This was my talk, what is next is + +07:29.023 --> 07:32.143 +continue merging it with Moldable Emacs. + +07:32.143 --> 07:34.023 +(This) is something I will present in + +07:34.023 --> 07:37.463 +another talk in this conference with web, + +07:37.463 --> 07:39.263 +so that we can extract meaning from + +07:39.263 --> 07:41.103 +the web, and we can bring it in Emacs. + +07:41.103 --> 07:43.583 +And from Emacs bringing back stuff + +07:43.583 --> 07:46.543 +like a picture into a web page, + +07:46.543 --> 07:48.903 +so that we can do fancy visualization. + +07:48.903 --> 07:51.063 +Another thing I want to do is to + +07:51.063 --> 07:54.263 +automate the boring browser flows + +07:54.263 --> 07:55.543 +that I do, like, for example, + +07:55.543 --> 07:58.263 +if I periodically buy something, + +07:58.263 --> 08:00.863 +I could do it from within Emacs + +08:00.863 --> 08:05.263 +instead of always clicking around. + +08:05.263 --> 08:08.383 +And then I'm just gonna cross fingers, + +08:08.383 --> 08:10.023 +I hope that this browser will + +08:10.023 --> 08:11.783 +become mainstream. + +08:11.783 --> 08:13.263 +So, this was my talk, + +08:13.263 --> 08:14.663 +thank you for listening, + +08:14.663 --> 08:17.343 +and you can find more about it at + +08:17.343 --> 08:19.823 +ag91.github.io, my blog, + +08:19.823 --> 08:22.680 +and enjoy the rest of the conference, bye! + +08:22.680 --> 08:25.520 +[captions: bhavin192 (Bhavin Gandhi)] -- cgit v1.2.3